Страница 1 из 1

Как определить наличие строки в существующем списке.

Добавлено: 01 окт 2007, 12:15
SunKiSSka
Доброго дня!!!

А кто-нибудь может подсказать, как сделать сравнение информации построчно (т.е. чтобы данные в каждой ячейке строки совпадали соответственно)? Никак не могу найти на форуме, помогите.
Допустим на отдельном листе есть одна строка с данными, эти данные надо сравнить со всеми строками на определенном листе, и если совпадение нашлись, то строчку, которая уже содержится на листе, где осуществлялся поиск, - скопировать на тот же лист, где была задана строка для поиска, но через несколько строк ниже.
Если соответствий не найдено, то вывести, допустим строку "Соответствий НЕТ".

Re: Как определить наличие строки в существующем списке.

Добавлено: 02 окт 2007, 00:55
Naeel Maqsudov
В приложении "Книга1.zip", к данным на листе "Данные" применена формула, которая подсчитывает количество совпадений между текущей строкой и эталоном.

Код: Выделить всё

=СУММ(ЕСЛИ(Эталон!A$7 :D $7=Данные!A3 :D 3;1;0))
(Введена как формула-массив (Ctrl+Enter), и раскопирована вниз на все данные)
Нетрудно видеть, что строки, где имеет место быть полное совпадение с эталоном отмечены значением 4 (так как 4) поля.

Теперь воспользуемся автофильтром, чтобы прямо online оставить на листе только данные, совпадающие с эталоном.

Это решение гибче макроса, так как позвоялет свободно редактировать эталон и данные, а затем мгновенно получить требуемую выборку даных.

Re: Как определить наличие строки в существующем списке.

Добавлено: 03 окт 2007, 15:41
SunKiSSka
формула, которая подсчитывает количество совпадений между текущей строкой и эталоном. [code писал(а): =СУММ(ЕСЛИ(Эталон!A$7 :D $7=Данные!A3 :D 3]
очень удобно, но у меня почему-то в столбце "Признак", даже для пустрых строк, получаются одинаковые значения???, т.е., допустим
6
6
6
6
...
Всего у меня столбцов 13...

Re: Как определить наличие строки в существующем списке.

Добавлено: 03 окт 2007, 15:43
SunKiSSka
формула, которая подсчитывает количество совпадений между текущей строкой и эталоном.

Код: Выделить всё

=СУММ(ЕСЛИ(Эталон!A$7 :D $7=Данные!A3 :D 3;1;0))
очень удобно, но у меня почему-то в столбце "Признак", даже для пустрых строк, получаются одинаковые значения???, т.е., допустим
6
6
6
6
...
Всего у меня столбцов 13...

Re: Как определить наличие строки в существующем списке.

Добавлено: 04 ноя 2008, 22:24
Naeel Maqsudov
Такой результат получится если формула-массив введена на всю высоту таблицы.
Обращаю внимание, что формула должна быть введена как формула-массив в одну ячейку, а уже потом обычным образом раскопирована на все остальные ячейки.

Re: Как определить наличие строки в существующем списке.

Добавлено: 06 ноя 2008, 18:54
Aent
А я бы добавил в лист колонку с функцией считающей что нибудь вроде CRC32 по столбцам
с данными. А ещё лучше рассчитывать СRC32 по строке при изменении ячеек.

Re: Как определить наличие строки в существующем списке.

Добавлено: 06 ноя 2008, 23:37
Naeel Maqsudov
Не понял, зачем CRC?

Re: Как определить наличие строки в существующем списке.

Добавлено: 07 ноя 2008, 00:26
Aent
зачем CRC?
Что бы вместо кучи значений сравнивать одно. CRC32 отлично трансформирует значения из ячеек строки в уникальный ID строки