Как я могу увеличивать на 1 каждую 5-ю строку всякий раз, когда другая строка такая же?

#excel #excel-formula

Вопрос:

У меня есть данные, состоящие из информации о здании. этаж_арея_нум.

A B
Этаж Floor_Area_Num
001 1-1
001 1-2
001 1-3
001 1-4
001 1-5
001 1-6
001 1-7
001 1-8
002 2
002 2-2
002 2-3

Мне бы хотелось еще один столбец, который может увеличиваться на 1 с 0 в каждой 5-й строке (где столбец «Этаж» одинаков), но он должен уменьшаться до 0, когда это новый этаж. вот так:

A B C
Этаж Floor_Area_Num номер
001 1-1 0
001 1-2 0
001 1-3 0
001 1-4 0
001 1-5 0
001 1-6 1
001 1-7 1
001 1-8 1
002 2 0
002 2-2 0
002 2-3 0

Итак, пока я использую это: =INT((ROW(C2)-2)/5) 1 что позволяет мне увеличивать 1 на каждую 5-ю строку. Но я не уверен, как изменить его обратно на 0, когда изменится значение пола. Есть какие-нибудь советы?

Отредактировано: не во всех номерах Floor_Area_Num есть цифры через дефис. Некоторые этажи также содержат буквы в начале, например:

A B C
Floor Floor_Area_Num num
A01 A101
A01 A102
A01 A103
A01 A104
A01 A105
А01 А106
А02 А201
А02 А202
А02 А203
А02 А204
А02 А205
А02 А206
МБ1 MB101-A
МБ1 MB101-B
МБ1 MB101-C
МБ1 MB101-D
МБ1 MB101-E

теперь, отражая вышесказанное, столбец Num выше должен быть таким:

  -------- ----------------- ------ 
|   A    |        B        |   C  |
 -------- ----------------- ------ 
| Floor  |  Floor_Area_Num |  num |
| A01    |  A101           | 0    |
| A01    |  A102           | 0    |
| A01    |  A103           | 0    |
| A01    |  A104           | 0    |
| A01    |  A105           | 0    |
| A01    |  A106           | 1    |
| A02    |  A201           | 0    |
| A02    |  A202           | 0    |
| A02    |  A203           | 0    |
| A02    |  A204           | 0    |
| A02    |  A205           | 0    |
| A02    |  A206           | 1    |
| MB1    |  MB101-A        | 0    |
| MB1    |  MB101-B        | 0    |
| MB1    |  MB101-C        | 0    |
| MB1    |  MB101-D        | 0    |
| MB1    |  MB101-E        | 0    |
 -------- ----------------- ------ 
 

Всякий раз, когда это новый этаж, число должно быть равно 0, как вы можете видеть выше, и увеличиваться только на 1 после 5-го шага того же этажа.

Ответ №1:

В C2 попытке:

 =IF(A2<>A1,0,INT((COUNTIF(A$2:A2,A2)-1)/5))
 

введите описание изображения здесь

Комментарии:

1. Кажется, это работает! Как я мог отредактировать это, чтобы подогнать полы с буквами? например, если бы у меня был B01, а также этажи с SB1?

2. Можете ли вы расширить свой вопрос дополнительными подробностями @doh2122. Включите желаемое поведение и результаты, чтобы я мог понять, что вы имеете в виду. Ответ даже не смотрит на 2-ю колонку для номеров этажей.

3. отредактирую вопрос!

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

5. @doh2122, это отлично работает для меня, так как вся функция, которую я предоставил, заключается в том, чтобы посмотреть, отличается ли значение в столбце A от его предыдущего значения. Не имеет значения, являются ли они цифровыми или им предшествуют буквы.

Ответ №2:

Вы можете попробовать что-то вроде

 =IF(IFERROR(LEFT(B2,SEARCH("-", B2)-1), "!")<>
IFERROR(LEFT(B1,SEARCH("-", B1)-1), "!"), 0,
IF(MOD(NUMBERVALUE(RIGHT(B1, LEN(B1)-SEARCH("-", B1))),5)=0, C1 1, C1))
 

Во-первых, мы проверяем, меняется ли пол. Если это произойдет, мы перезапустимся в 0.
Затем мы получаем номер области, используя обычные строковые функции, такие как RIGHT , LEN , и SEARCH . Если предыдущая область была кратна 5, то мы добавляем 1 к счетчику, если нет, мы повторяем счетчик.

Например: введите описание изображения здесь

Комментарии:

1. Спасибо за совет! Кажется, это почти работает. Как насчет мест, где у меня нет дефиса в номере этажа? ` 1 1-1 1-2 » на данный момент я получаю ошибку #ЗНАЧЕНИЕ! места, где у меня нет дефиса на номере этажа.

2. Если случаи без дефисов не являются последовательными, вы можете попробовать обернуть первый тест в IFERROR , см. Правка