У меня есть набор данных, в котором записаны значения потребления в течение 100+ дней для отдельных животных. Я хочу применить формулу к каждому идентификатору животного и определить, сколько раз животное съело 0 в течение 2, 3, 4 и т.д. Дней. Я применил следующую формулу, но мне не повезло (DK3 - это число последовательных нулей).

=SUM(IF(FREQUENCY(IF(B5:DE5=0,COLUMN(B5:DE5)),IF(B5:DE5<>0,ROW(B5:DE5)))=DK3,1))

Как я могу это исправить?

1 ответ1

2

Я ответил на аналогичный вопрос здесь для смежных чисел и критериев соответствия:найдите наибольшее количество последовательных результатов для каждого человека в списке

ПРИМЕЧАНИЕ: я надеюсь, что ОП получает это. Я сделал это для имени животных. Если оно помогает животному сообщить кому-то, сколько дней оно не съело, то это то, что вам нужно знать. ♥ ♥ Животные! ♥ ♡

Для смежных номеров используйте только это:
Поставьте свои первые 0 в A1: затем продолжайте в col(A) ваши данные уменьшаются
Поместите эту формулу в B1: скопируйте эту формулу рядом с каждым счетом; col(B)

Let searchNumber=0,1,2,3,...n

=IF(  NOT(ISERROR(OFFSET(A1,-1,0))), IF(  AND(A1=OFFSET(A1,-1,0),A1=searchNumber),OFFSET(B1,-1,0)+1,IF(A1=searchNumber,1,0)  ),   IF(A1=searchNumber,1,0)  )

This is the count(ate?) formula for each cell in col(B)

Чтобы посчитать Максимум последовательных данных (ваш случай: 0), в соседней ячейке используйте эту формулу: =MAX(B:B) даст вам НАИБОЛЬШЕЕ количество дней '0'

Используйте другие ячейки с этой формулой:
=COUNTIF(B:B, 2) это даст вам, сколько раз животное съело НОЛЬ два дня подряд.

Вот как выглядят данные:
Пусть хх = Собака "Чарли"
Пусть ели = 0,1: 0 = нет, 1 = да

     col(A)       col(B)          
ID   ate?         formula:count(ate?)   count formula
---------------------------------------------------------
xx   0            1                     Max(b:b)=3
xx   0            2                     countif(b:b,2)=2
xx   1            0                     countif(b:b,2)=3
xx   1            0
xx   0            1
xx   0            2
xx   0            3

Чарли съел НОЛЬ, максимум 3 дня подряд. Также он у ZERO два дня подряд 2-раза, а ZERO три дня подряд 1-раз.

Примечание:=OFFSET(ref, row, col) строка = -1 = предыдущая строка, col = -1 = столбец слева

Так что, если ваши данные выглядят так:

  A               B     C    D    E        CW      CX (or another page)
1 ID              Day1  Day2 Day3 Day4 ... Day100
2 XX              1     0    0    1        1       
3 xx-count(ate?)  0     1    2    0        0       countif(b2:cw,2)=2
4 zz
5 zz-count(ate?)

Then the formula would look at column data instead of row data:
=IF(NOT(ISERROR(OFFSET(B2,-1,0))),IF(AND(B2=OFFSET(B2,0,-1),B2=searchNumber),OFFSET(B3,0,-1)+1,IF(B2=searchNumber,1,0)),IF(B2=searchNumber,1,0))

This formula would go into, starting at B3, then copying into C3,D3...




Лучший способ использовать формулу для нескольких COUNTIF и MAX: иллюстрация

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