1

У меня есть идентификаторы в столбце A, которые я хотел бы разделить на 5 равных групп для каждого идентификатора. Я применил эту формулу, которая отлично разбивает идентификаторы на 5 равных групп в столбце B.

=CEILING((ROW()-ROW($A$2)+1) / CEILING((ROW($A$88)-ROW($A$2)+1)/5,1),1)

Проблема в том, что в ячейке $ A $ 2 и $ A $ 88 схожий ID = 1.

Я надеюсь, что есть добрая душа, которая может изменить эту формулу, чтобы я мог сделать так, чтобы 5 равных групп были разделены для каждого идентификатора для всего столбца, а не для жестких остановок для каждого идентификатора.

2 ответа2

1

Это имеет некоторое сходство с вашим другим вопросом, и использование CEILING() - отличная идея.

В вашей формуле есть два термина, которые нужно обобщить, а не жестко закодировать:

  1. Общее количество строк для текущего идентификатора. Это просто:

=COUNTIF(A:A,A2)

  1. Счетчик текущего количества строк текущего идентификатора в виде формулы заполняется. Это делается с использованием "расширяющегося" диапазона:

=COUNTIF(A$2:A2,A2)

Включение этих двух выражений в вашу формулу дает:

=CEILING((COUNTIF(A$2:A2,A2)/CEILING(COUNTIF(A:A,A2)/5,1)),1)

Вы добавили 1 к числу строк в своей формуле, и вы можете изменить эту формулу аналогичным образом, если вам нужно.

Надеюсь, это поможет, и удачи.

-1

Эта простая формула также может генерировать список идентификаторов в столбце BIN с шагом после каждой 7-й строки.

=INT(((ROW(A1)-1)/7))*1+1

Или даже эта импровизированная Формула также сгенерирует список идентификаторов в аналогичном порядке.

=CEILING(COUNTIF(A$2:A2,A2)/7,1)

В формуле OP & @Bandersnatch для приращения значение делится на 5, но в результате идентификаторы увеличиваются после каждой 7-й строки. Это единственная причина, по которой я разделил его на 7, и значение в том, что если вы хотите изменить последовательность INCREMENT, просто замените 7 на требуемое число.

NB. На снимке экрана, прикрепленном к OP, показано, что идентификаторы увеличиваются в столбце BIN после 18-й строки. Поэтому, если вам нужно изменить INCREMENT, вам просто нужно заменить 7 на 18, и ваша Формула будет иметь вид =INT(((ROW(A1)-1)/18))*1+1 .

Кроме того, в OP вы написали: «Проблема в том, что в ячейке $ A $ 2 и $ A $ 88 имеет одинаковый ID = 1».

Чтобы решить эту проблему, вы можете просто отсортировать столбец ID, чтобы все 1 были в первой группе.

Я надеюсь, что это поможет вам и другим тоже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .