Как мне получить первые n ненулевых значений подряд?

#excel #excel-formula

Вопрос:

В настоящее время у меня есть эта формула, но она возвращает ненулевые значения в обратном порядке, в котором я хочу.

Вот формула:

 =INDEX($R275:$BE275,LARGE(IF($R275:$BE275<>0,COLUMN($R275:$BE275)- MIN(COLUMN($R275:$BE275)) 1),COLUMNS($A:A)))
 

Это возвращает первое ненулевое значение из столбца, возвращающегося к R, когда я хочу, чтобы оно работало в другую сторону, первый экземпляр справа налево. Когда я набрасываю формулу справа, я хочу, чтобы она принимала следующее ненулевое значение справа налево.

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

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

1. Измените LARGE на SMALL

2. Для заголовка измените значение =INDEX($R275:$BE275, на =INDEX($R$1:$B$1, то, где находится ваш заголовок в строке 1.

Ответ №1:

Скриншот/здесь см..

Приведенная вами формула возвращает последнее ненулевое значение, которое, как вы также утверждаете, вы пытаетесь найти:

«Я хочу…первый экземпляр справа налево».

Чтобы избежать двусмысленности, я предлагаю решения для первого такого случая (и соответствующего заголовка), а также пересмотренный метод определения последнего случая (или первого случая «справа налево»).

Первое появление (работает слева направо)

Функция может быть значительно упрощена до следующего:

 =INDEX(A2:H2,0,MATCH(1,--(A2:H2<>0),0))
 

Первое появление - работа слева направо

Соответствующий заголовок:

 =INDEX($A$1:$H$1,0,MATCH(1,--(A2:H2<>0),0))
 

Согласно @ScottCraner, это также работает (хотя и использует ту же излишне длинную функцию).:

 =INDEX($R275:$BE275,SMALL(IF($R275:$BE275<>0,COLUMN($R275:$BE275)- MIN(COLUMN($R275:$BE275)) 1),COLUMNS($A:A)))
 

Последнее происшествие

Пересмотренная функция для рассмотрения (требуется версия Excel, совместимая с Office 365, и настройка для возврата соответствующего заголовка)..

 =LET(reverse,INDEX(A2:H2,0,SEQUENCE(1,COUNTA(A2:H2),COUNTA(A2:H2),-1)),INDEX(reverse,MATCH(1,--(reverse<>0),0)))
 

Первое появление - работа справа налево