Як підрахувати лише негативні, справа наліво, лише в послідовності, зупинити підрахунок, якщо з'явиться додатне значення


1

У таблиці Excel у мене є шість комірок ( A1- F1), що містять числа. Я хочу порахувати послідовні (суміжні) негативні значення справа наліво. наприклад,

A1=2,  B1=6,  C1=-3, D1=-5, E1=-6, F1=-9  : Answer G1=4  (four continuous negative values)
A1=2,  B1=6,  C1=3,  D1=5,  E1=-6, F1=-9  : Answer G1=2
A1=2,  B1=-6, C1=3,  D1=5,  E1=-6, F1=-9  : Answer G1=2
A1=-2, B1=-6, C1=-3, D1=5,  E1=6,  F1=-9  : Answer G1=1
A1=-2, B1=-6, C1=-3, D1=3,  E1=-6, F1=-9  : Answer G1=2

Або схожа ситуація, але зі словами, я хочу порахувати, скільки комірок поспіль містяться RED, починаючи справа:

A1=GREEN, B1=GREEN, C1=GREEN, D1=GREEN, E1=RED,   F1=RED  : Answer G1=2
A1=GREEN, B1=GREEN, C1=RED,   D1=GREEN, E1=RED,   F1=RED  : Answer G1=2
A1=GREEN, B1=RED,   C1=RED,   D1=GREEN, E1=GREEN, F1=RED  : Answer G1=1
A1=GREEN, B1=RED,   C1=RED,   D1=RED,   E1=RED,   F1=RED  : Answer G1=5

Я хочу рахувати справа наліво, поки не розірветься конкретна серія.


Чи є інші послідовності? Як щодо A1 = 4, B1 = 6, C1 = 15, D1 = 3, E1 = 7, F1 = 2: Відповідь G1 = 3, оскільки три значення праворуч є простими числами.
Блеквуд

@Blackwood: Чому ви запитуєте, чи є в ОП ще якесь питання, крім того, яке він насправді задав?
Скотт

Відповіді:


1

Тип

=6-MAX(IF(A1:F1>=0, COLUMN(A1:F1), 0))

в G1і натисніть Ctrl+ Shift+ Enter. З огляду на ваш перший приклад (A1 = 2, B1 = 6, C1 = −3, D1 = −5, E1 = −6, F1 = −9), підвираз створює віртуальний масив, який має вигляд (1, 2, 0, 0, 0, 0) - заміна негативних чисел на їхні номери стовпців та заміна негативних чисел нулем. Якщо взяти це , ми отримуємо останній (найправіший) стовпець, який містить негативне число - тому все, що перевищує це, має бути негативним. Таким чином, віднімаючи, що з 6 вказує нам, скільки (послідовних) від’ємних чисел є в правому кінці ряду.IF(X>=0, COLUMN(X), 0)MAX

Ctrl+ Shift+ Enter Робить його формула масиву. Це необхідно, щоб мати можливість створити подібний віртуальний масив.

Для альтернативної версії питання рішення майже точно таке:

=6-MAX(IF(A1:F1<>"RED", COLUMN(A1:F1), 0))

        електронну таблицю з вхідними даними OP та бажаними результатами


0

Для формули, яку можна ввести як звичайну формулу, спробуйте:

=IFERROR(LOOKUP(2,1/(A1:F1>=0),{5,4,3,2,1,0}),6)

LOOKUP відповідає останньому тестуванню, який перевіряється. TRUE Потім ми повертаємо відповідне число з масиву.

Однак якщо всі значення є <0, то LOOKUPповертає помилку, тому у нас повинно бути шість.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.