Страницы: 1
RSS
Возврат номера повтора элемента списка
 
Здравствуйте!

Имеется список повторяющихся фамилий, требуется в отдельной колонке вывести номер повторения для каждой фамилии, например:
____А____ В
34|Иванов |1|
56|Иванов |2|
67|Иванов |3|

Спасибо.
Изменено: SergeyTN - 19.07.2013 15:34:25
 
Код
=СЧЁТЕСЛИ($B1:B1;B1)
Учимся сами и помогаем другим...
 
Похоже эта формула возвращает количество повторений, это не то. Получается

____А____ В
34|Иванов |3|
56|Иванов |3|
67|Иванов |3|
Изменено: SergeyTN - 31.03.2018 01:04:10
 
Цитата
SergeyTN пишет: возвращает количество повторений
Обратите внимание на "ПРИВЯЗКУ" формулы... Есть логика в том, чтобы ее результат читать как "первый" в блоке, "второй"...
ps Просьбу, как и ответ, и результат проверки ответа лучше представлять в реальном файле, однако...  ;)
Изменено: Z - 19.07.2013 15:42:03
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
=СЧЁТЕСЛИ($B$1:B1;B1)
работает!
 
_А___В___С
34|Иванов |  |
56|Иванов |  |
67|Иванов |  |

в С1 пишем
Код
=СЧЁТЕСЛИ($B$1:B1;B1)

и тянем формулу вниз.
Учимся сами и помогаем другим...
 
Эту же самую формулу =СЧЁТЕСЛИ($B$1:B1;B1) можно усовершенствовать так, чтобы онa параллельно искалa идентичные ячейки не только в столбце В, но и в A,B,C,D,E,F,G,H,I,J,K? То есть, чтобы сходство строк по столбцам А-K было 100%-ным.
Изменено: Excaz - 30.03.2018 14:27:16
 
Excaz, в J1 формулу =A1&B1&...&K1 , в L1 =СЧЁТЕСЛИ($K$1:K1;K1) и протянуть оба столбца.
 
Ну, или если без дополнительных столбцов, то через СЧЁТЕСЛИМН
Код
СЧЁТЕСЛИМН($A$1:A1;A1;$B$1:B1;B1;$C$1:C1;C1; и т.д. до K)
Вот горшок пустой, он предмет простой...
 
Пишу в L2 формулу
Код
=СЧЁТЕСЛИМН($A$1:A1;A1;$B$1:B1;B1;$C$1:C1;C;$E$1:E1;E1;$F$1:F1;F1;$G$1:G1;G1)
для диапазона А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 где-то вкралась ошибка и потому она спотыкается на моем примере. Кто может ее подкорректировать?
Изменено: Excaz - 31.03.2018 13:45:35
 
Цитата
Excaz написал:
Почему?
Не знаю
 
Казанский, благодарю, у вас все нормально. А столбец J (с формулой) разве нужен? Столбец К ведь показывает верно.

А другие формулы, что дали выше другие, вы могли бы проверить c этой же (моей) таблицей? У меня они почему-то выдают ошибку.
Изменено: Excaz - 01.04.2018 09:29:44
 
PooHkrd, вы могли-бы показать свою формулу именно в моей таблице? А то у меня все время ошибку выдает.
 
Цитата
Excaz написал:
PooHkrd, вы могли-бы показать свою формулу именно в моей таблице?
А может наоборот? - это Вы покажите, что у за ошибка у Вас.
 
Он дает формулу СЧЁТЕСЛИМН без знака равенства впереди. Но и с = у меня не получается. Вот таблица.
 
В 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? Но чтобы и в большой таблице она также быстро находила одинаковые строки.
Изменено: Excaz - 02.04.2018 14:29:12
 
Вопрос об одинаковых строках не по теме

Цитата
Excaz написал: благодарю подошло.
ага, благодарность подходящая :)
 
vikttur, я имел ввиду, что суцествуют другие формулы, которые проверял, и когда таблицы очень большие, Эксель долго выполняет операцию либо намертво зависает и приходится отказаться от задачи.
Изменено: Excaz - 02.04.2018 14:26:55
 
Цитата
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
Изменено: Казанский - 02.04.2018 14:28:06
 
А я имел ввиду, что нужно со знаками препинания дружить :)
 
Казанский, благодарю, хорошая формула. Только во избежании путанницы, желательно только повторную строку обозначить цифрой 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 (типа первая исходник, а вторая дубликат)..
Изменено: Excaz - 03.04.2018 00:59:17
 
Excaz, да ладно?! Макрос ставит 2 в J10 и J11, так же, как формулы из #11 и #16.
В любом случае, для меня тема больше не интересна.
 
OFF:
Цитата
Excaz написал:
опять неправильно
вы, конечно вольны "поправлять" мэтров — культа личности на этом сайте нет, однако, предлагаю вам задуматься (на будущее) по поводу формулировки проблемы и соответствию примера решаемой задаче  ;)
Заметьте, что поддерживал вашу тему, кроме модераторов, только Казанский — теперь же, вы лишились единственного (на данный момент), заинтересованного в помощи вам, лица
Изменено: Jack Famous - 03.04.2018 01:55:09
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Казанский, прошу прощения, последняя таблица (после исправления) правильная. Просто у меня сработало со второго нажатия на кнопку Счет. Еще раз извиняюсь за невнимательность и поспешность.
Страницы: 1
Наверх