powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение строк в таблице
9 сообщений из 9, страница 1 из 1
Сравнение строк в таблице
    #36370449
Rivendell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста найти решение проблемы.
Имеется таблица.
Необходимо сравнить ее строки на предмет совпадения строк. В строках содержится и текст и числа. Строки одинаковы, если они полностью идентичны. В случае совпадения определенной строки, в последнем столбце необходимо указать, с какой строкой совпадает данная строка.
Прикрепил пример чтобы было понятнее.
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36370559
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если оригинал таблицы не сложнее, и строк не тысячи,то можно сделать так:
1. В свободном столбце пронумеровываем строки с первой до последней.
2. В другом свободном столбце (например I) пишем формулу =C1&D1&E1&F1, тянем вниз.
3. Сортируем по этому столбцу. Дубликаты ищем глазами или с помощью формулы =ЕСЛИ(I2=I1;1;0) - формула начиная со 2 ячейки. анализирует столбец I, тянем вниз, затем заменяем формулы на значения.
4. Где 1, там совпадение с вышестоящим значением. Можно поставить вручную в G номер этой строки ( шаг 1).
5. Сортируем назад по номерам, проставленным в шаге 1.

Конечно, если строк больше или работа не разовая, можно сочинить одну сложную формулу или простой макрос...
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36370586
Rivendell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

да, это как раз тот случай для одной сложной формулы) Макросами не владею, Basic уже забыл. Хотя бы направление может подскажете, какими функциями, куда копать?
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36370729
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я больше по макросам:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub SearchDublikates()
Set wb = ThisWorkbook.Sheets( 1 )
For Each rr In wb.UsedRange.Rows
    For Each rrr In wb.UsedRange.Rows
        If Cells(rr.Row,  3 ).Value & Cells(rr.Row,  4 ).Value & Cells(rr.Row,  5 ).Value & Cells(rr.Row,  6 ).Value = Cells(rrr.Row,  3 ).Value & Cells(rrr.Row,  4 ).Value & Cells(rrr.Row,  5 ).Value & Cells(rrr.Row,  6 ).Value Then
            If rr.Row <> rrr.Row Then Cells(rrr.Row,  7 ).Value = rr.Row
        End If
    Next
Next
End Sub
Эта версия пометки ставит в обоих совпадающих строках (по примеру в 8 и10), если лишнее, заменить 6-ю строку на эту:
Код: plaintext
1.
            If rr.Row <> rrr.Row And Cells(rr.Row,  7 ).Value = "" Then Cells(rrr.Row,  7 ).Value = rr.Row
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36370738
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Формела массива (вводится не нажатием enter, a нажатием ctrl shift enter) для G7 (потом протягиваем вниз)

=ЕСЛИ(ЕОШИБКА(ПОИСКПОЗ(C7&D7&E7&F7;$C$1:$C6&$D$1:$D6&$E$1:$E6&$F$1:$F6;0));"";ПОИСКПОЗ(C7&D7&E7&F7;$C$1:$C6&$D$1:$D6&$E$1:$E6&$F$1:$F6;0))
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36370750
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для 2007

{=ЕСЛИОШИБКА(ПОИСКПОЗ(C7&D7&E7&F7;$C$1:$C6&$D$1:$D6&$E$1:$E6&$F$1:$F6;0);"")}
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36370777
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Если оригинал таблицы не сложнее, и строк не тысячи,то можно сделать так:
1. В свободном столбце пронумеровываем строки с первой до последней.
2. В другом свободном столбце (например I) пишем формулу =C1&D1&E1&F1, тянем вниз.
3. Сортируем по этому столбцу. Дубликаты ищем глазами или с помощью формулы =ЕСЛИ(I2=I1;1;0) - формула начиная со 2 ячейки. анализирует столбец I, тянем вниз, затем заменяем формулы на значения.
4. Где 1, там совпадение с вышестоящим значением. Можно поставить вручную в G номер этой строки ( шаг 1).
5. Сортируем назад по номерам, проставленным в шаге 1.

Конечно, если строк больше или работа не разовая, можно сочинить одну сложную формулу или простой макрос...

Согласен, проще без макроса пройти по этому пути (см. Пример)
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36372800
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порассуждать захотелось Подправьте, если не согласны, могу ошибаться.
Почему неприемлемы доп. столбцы? Записали формулы и скрыли от любопытных глаз. Нормальное решение, тем более что отказ от доп. столбцов влечет за собой необходимость использования формул массива, которые «тяжелее» в работе и понимании и имеют некоторые неудобства в применении. И чем больше таблица, тем больше тормоза.
Но автору виднее. Вдруг у него на листе всего десяток столбцов или исчерпан лимит на используемые?
Чтобы пост не считался оффтопом. Если уж применять «массивную» формулу, советую использовать логическую цепочку (назовем ее ЛЦ):
($C$6:C6=C7)*($D$6:D6=D7)*($E$6:E6=E7)*($F$6:F6=F7)
Почему?
1. Преобразование в текст (СЦЕПИТЬ) – медленная операция, притормаживает пересчеты.
2. Показанную конструкцию можно использовать более гибко.
Например:
=СУММ(ЛЦ) – если повторов больше - количество повторов проверяемой строки;
=МАКС(ЛЦ*СТРОКА($6:6)) – номер последней идентичной строки (это точно по заданию автора);
=НАИБОЛЬШИЙ(ЛЦ*СТРОКА($6:6));N) – номер любой идентичной строки.
Если нужна информация не только о строках выше проверяемой, диапазоны ЛЦ нужно растянуть и закрепить (типа $C$6:$C$10).
Последний пример – порядковый номер повторения из общего числа повторений строки:
=СУММ(($C$7:C7=C7)*($D$7:D7=D7)*($E$7:E7=E7)*($F$7:F7=F7))&" из "&СУММ(($C$7:$C$11=C7)*($D$7:$D$11=D7)*($E$7:$E$11=E7))
...
Рейтинг: 0 / 0
Сравнение строк в таблице
    #36373105
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikttur,

Нифига себе, а меня такие мысли в 2 час.45 мин . не посещают !!! :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение строк в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]