Подсчет дубликатов по появлению - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть 2 столбца. В одном из столбцов у меня есть текст «Multi-Drop» и пробелы (столбец 2).

В другой у меня есть "Первая линия" и пробелы (столбец-1)

Я бы хотел посчитать дубликаты от col-2 до появления первой строки из col-1, оставляя пропуски в col-3

Это должно быть гибким, поскольку я не буду выбирать определенный диапазон, а весь столбец.

Я уже пытался поэкспериментировать с показанным ниже и смещением, но я смог только посчитать весь столбец.

=IF(B2=A1,C1,C1+1)

Это демонстрация моих данных и ожидаемый результат (пробел между 1-й строкой текста и второй строкой является пробелом)

Как видите, первая строка возникает в первых экземплярах Multi-Drop, но она основана на другой формуле.

col-1            col-2          Expected Result  


First Line       Multi-Drop      2



                 Multi-Drop     2
First Line       Multi-Drop     5
                 Multi-Drop     5
                 Multi-Drop     5
                 Multi-Drop     5
                 Multi-Drop     5
First Line       Multi-Drop     4
                 Multi-Drop     4
                 Multi-Drop     4
                 Multi-Drop     4
First Line       Multi-Drop     2
                 Multi-Drop     2

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Предполагая, что данные находятся в A2:B17, введите FormulaArray в C2 копию до C17:

Массив формул вводится нажатием [Ctrl] + [Shift] + [Enter] одновременно, вы увидите { и } вокруг формулы, еслиВведено правильно

= IF( EXACT( B2, "" ), "",
IF( EXACT( A2, "First Line" ),
COUNTIF( INDEX(B:B, ROW() )
:INDEX(B:B, IFERROR( - 1 + ROW() + MATCH( "First Line", A3:A$1048576, 0 ), 1048576 ) ), "Multi-Drop" ),
IF( NOT( EXACT( C1, "" ) ), C1,
INDEX(C:C, MAX( ( ( C1:C$2 <> "" ) * 1 ) * ROW( C1:C$2 ) ) ) ) ) )

enter image description here

Предлагаем ознакомиться со следующими страницами для получения дополнительной информации об используемых функциях: Функции Excel (в алфавитном порядке))

Функция IFERROR Функция INDEX Функция MATCH Функция ROW

1 голос
/ 11 апреля 2019

Это не делает 100% того, что вы хотите, но вы можете взять это оттуда.

Для ячейки C2:

=IF(A2="First Line",C3,IF(A1="",C1,Match("First Line",A2:A500,0)))

Это прекрасно работает, если в столбце B нет пустых пятен.

Последние дубликаты работать не будут, так как он проверяет количество ячеек между 2 вхождениями «первой строки». Так как 2-ая «Первая линия» не приходит, выдает ошибку.

Это достаточно помощи или вы можете взять ее отсюда? Вместо этого я бы оставил комментарий, но у меня пока недостаточно очков, поэтому я могу только публиковать ответы.

Это фрагмент того, что я пробовал

Edit: Забыл, что английский Excel использует вместо

Исправлено в моем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...