|
|
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста найти решение проблемы. Имеется таблица. Необходимо сравнить ее строки на предмет совпадения строк. В строках содержится и текст и числа. Строки одинаковы, если они полностью идентичны. В случае совпадения определенной строки, в последнем столбце необходимо указать, с какой строкой совпадает данная строка. Прикрепил пример чтобы было понятнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 22:09 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Если оригинал таблицы не сложнее, и строк не тысячи,то можно сделать так: 1. В свободном столбце пронумеровываем строки с первой до последней. 2. В другом свободном столбце (например I) пишем формулу =C1&D1&E1&F1, тянем вниз. 3. Сортируем по этому столбцу. Дубликаты ищем глазами или с помощью формулы =ЕСЛИ(I2=I1;1;0) - формула начиная со 2 ячейки. анализирует столбец I, тянем вниз, затем заменяем формулы на значения. 4. Где 1, там совпадение с вышестоящим значением. Можно поставить вручную в G номер этой строки ( шаг 1). 5. Сортируем назад по номерам, проставленным в шаге 1. Конечно, если строк больше или работа не разовая, можно сочинить одну сложную формулу или простой макрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 00:12 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Hugo121, да, это как раз тот случай для одной сложной формулы) Макросами не владею, Basic уже забыл. Хотя бы направление может подскажете, какими функциями, куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 01:23 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Я больше по макросам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:21 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Формела массива (вводится не нажатием 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)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:26 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Для 2007 {=ЕСЛИОШИБКА(ПОИСКПОЗ(C7&D7&E7&F7;$C$1:$C6&$D$1:$D6&$E$1:$E6&$F$1:$F6;0);"")} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:30 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Hugo121Если оригинал таблицы не сложнее, и строк не тысячи,то можно сделать так: 1. В свободном столбце пронумеровываем строки с первой до последней. 2. В другом свободном столбце (например I) пишем формулу =C1&D1&E1&F1, тянем вниз. 3. Сортируем по этому столбцу. Дубликаты ищем глазами или с помощью формулы =ЕСЛИ(I2=I1;1;0) - формула начиная со 2 ячейки. анализирует столбец I, тянем вниз, затем заменяем формулы на значения. 4. Где 1, там совпадение с вышестоящим значением. Можно поставить вручную в G номер этой строки ( шаг 1). 5. Сортируем назад по номерам, проставленным в шаге 1. Конечно, если строк больше или работа не разовая, можно сочинить одну сложную формулу или простой макрос... Согласен, проще без макроса пройти по этому пути (см. Пример) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:44 |
|
||
|
Сравнение строк в таблице
|
|||
|---|---|---|---|
|
#18+
Порассуждать захотелось Подправьте, если не согласны, могу ошибаться. Почему неприемлемы доп. столбцы? Записали формулы и скрыли от любопытных глаз. Нормальное решение, тем более что отказ от доп. столбцов влечет за собой необходимость использования формул массива, которые «тяжелее» в работе и понимании и имеют некоторые неудобства в применении. И чем больше таблица, тем больше тормоза. Но автору виднее. Вдруг у него на листе всего десяток столбцов или исчерпан лимит на используемые? Чтобы пост не считался оффтопом. Если уж применять «массивную» формулу, советую использовать логическую цепочку (назовем ее ЛЦ): ($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)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 02:45 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=176&tid=2178698]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 361ms |

| 0 / 0 |
