1) Создаем новый список, который будет хранить номера строк, соответствующих условию задачи (в коде это "Список 1");
2) Заменяем названия переменных, которые содержат слово для посика и стоп слово, а так же название таблицы на свои;
3) Запускаем кубик.
Результатом будут id строк, которые соответствуют условию, все это будет находится в списке, который создали.
Дальше уже получаем номер строки таблицы из списка, и работаем конкретно с этой строкой используя кубики, например.
var table = project.Tables["Таблица 1"]; // Таблица с данными для обработки
var sourceList = project.Lists["Список 1"]; // Список для найденных номеров строк
// Переменная, содержащее слово, которое обязательно должно присутствовать в строке
string good_word = project.Variables["good_word"].Value;
// Переменная, содержащее слово, которое не должно присутствовать в строке
string bad_word = project.Variables["bad_word"].Value;
// Строка
string row;
// good_word и bad_word
bool gw,bw;
//sourceList.Clear(); // очистили список, перед выполнением, для теста
// Проходим по всей таблице и ищем номера строк, которые соответствуют условию задачи
for (int i = 0; i < table.RowCount; i++) {
row = string.Join(" ", table.GetRow(i));
gw = row.Contains(good_word);
bw = row.Contains(bad_word);
if (gw && !bw) {
sourceList.Add(i.ToString());
}
}
На сколько быстро будет работать данный вариант, не знаю, но надеюсь это поможет.