Имеется список повторяющихся фамилий, требуется в отдельной колонке вывести номер повторения для каждой фамилии, например: ____А____ В 34|Иванов |1| 56|Иванов |2| 67|Иванов |3|
Обратите внимание на "ПРИВЯЗКУ" формулы... Есть логика в том, чтобы ее результат читать как "первый" в блоке, "второй"... ps Просьбу, как и ответ, и результат проверки ответа лучше представлять в реальном файле, однако...
Эту же самую формулу =СЧЁТЕСЛИ($B$1:B1;B1) можно усовершенствовать так, чтобы онa параллельно искалa идентичные ячейки не только в столбце В, но и в A,B,C,D,E,F,G,H,I,J,K? То есть, чтобы сходство строк по столбцам А-K было 100%-ным.
для диапазона А2-К2 но натыкается на ошибку. Почему так? У меня такая таблица. Тут повторов нет, но вы можете для теста скопировать и вставить внизу 2 строки чтобы проверить найдет ли повторы. PooHkrd, возможно ошибку выдает из-за того, что вы привели формулу СЧЁТЕСЛИМН($A$1:A1;A1;$B$1:B1;B1;$C$1:C1;C1; и т.д. до K) не до конца (прервав ee в середине). Главное, правильно прописать концовку формулы (одна скобка, две скобки или другие знаки), а их нет. Казанский, как вы привели, написал и потянул вниз - везде показывает нули. Там были 2 повторные строки, а пишет ноль. Почему?
И еще. В этой формуле =СУМПРОИЗВ(($A$2:A2=A2)*($B$2:B2=B2)*($E$2:E2=E2)*($G$2:G2=G2)) , которая проверяет построчно ячейки по колонкам A,B,E,G где-то вкралась ошибка и потому она спотыкается на моем примере. Кто может ее подкорректировать?
В Excel-2003 нет функции СЧЕТЕСЛИМН =СУММПРОИЗВ(--($A$2:A2=A2);--($B$2:B2=B2);--($C$2:C2=C2);--($E$2:E2=E2);--($F$2:F2=F2);--($G$2:G2=G2);--($D$2:D2=D2))
vikttur, благодарю подошло. Вообще, я проверял несколько формул для подобного построчного сравнения. Если таблицы большие, более 63000 строк, то компьютер подолгу (30-50 минут) всё перебирает или вовсе зависает и приходится отменить задачу. Как-то проверял 2 схожие (большие, 63000 строк) таблицы (вариант с 2-мя файлами Эксель) и пару раз даже получилось, но там вероятность ошибки очень велика и потому я ею не пользуюсь. Мне нравиться как быстро в огромной таблице находит Эксель штучные слова через Данные - Фильтр - Автофильтр, выводя только их. А есть формула которая в приведенной мной маленькой таблице высветит (также как Автофильтр) только одинаковые строки A,B,C,D,E,F,G?Но чтобы и в большой таблице она также быстро находила одинаковые строки.
vikttur, я имел ввиду, что суцествуют другие формулы, которые проверял, и когда таблицы очень большие, Эксель долго выполняет операцию либо намертво зависает и приходится отказаться от задачи.
Excaz написал: Если таблицы большие, более 63000 строк, то компьютер подолгу (30-50 минут) всё перебирает
Попробуйте макрос. Он работает немного не так, как формулы выше, но может подойдет. Стиль ссылок должен быть А1!
Код
Sub Ex()
Dim v(), di As Object, i&, x
Set di = CreateObject("scripting.dictionary")
v = Evaluate(Replace( _
"A2:A#&B2:B#&C2:C#&D2:D#&E2:E#&F2:F#&G2:G#&H2:H#" _
, "#", Cells(Rows.Count, 1).End(xlUp).Row))
For Each x In v
di(x) = di(x) + 1
Next
For i = 1 To UBound(v)
v(i, 1) = di(v(i, 1))
Next
Range("J2").Resize(i - 1).Value = v
End Sub
Казанский, благодарю, хорошая формула. Только во избежании путанницы, желательно только повторную строку обозначить цифрой 2 (3,4...). А у вас обe одинаковые строки помечены, как 2 и 2.
Excaz, да, я предупредил, что результат будет другой. А в таком варианте будет то же самое, что с формулами.
Код
Sub Ex()
Dim v(), di As Object, i&, x
Set di = CreateObject("scripting.dictionary")
v = Evaluate(Replace( _
"A2:A#&B2:B#&C2:C#&D2:D#&E2:E#&F2:F#&G2:G#&H2:H#" _
, "#", Cells(Rows.Count, 1).End(xlUp).Row))
ReDim w&(1 To UBound(v), 1 To 1)
For Each x In v
di(x) = di(x) + 1
i = i + 1
w(i, 1) = di(x)
Next
Range("J2").Resize(i).Value = w
End Sub
Казанский,опять неправильно. В таблице 2 одинаковые строки (Будем жить и Проводы), но у вас стоят единицы тогда как должно быть 1 и 2 (типа первая исходник, а вторая дубликат)..
вы, конечно вольны "поправлять" мэтров — культа личности на этом сайте нет, однако, предлагаю вам задуматься (на будущее) по поводу формулировки проблемы и соответствию примера решаемой задаче Заметьте, что поддерживал вашу тему, кроме модераторов, только Казанский — теперь же, вы лишились единственного (на данный момент), заинтересованного в помощи вам, лица
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Казанский, прошу прощения, последняя таблица (после исправления) правильная. Просто у меня сработало со второго нажатия на кнопку Счет. Еще раз извиняюсь за невнимательность и поспешность.