Arrayformula для нумерации пустых ячеек между непустыми от 0 до n - PullRequest
1 голос
/ 21 июня 2019

Я хочу проверить массив / строку,

  1. игнорирование непустых ячеек (установка на ""),

  2. нумерация пустых ячеек от 0 до n,

  3. сброс числа на 0, если найдена следующая непустая ячейка.

  4. остановка в последней ячейке

Итак, это будет выглядеть так:

        A       B
 0  APPLE   
 1              0
 2              1
 3  BANANA  
 4              0
 5              1
 6              2
 7  CHERRY  
 8  DURIAN  
 9              0
 10 EGG 

A - оригинал, а B - то, для чего применяется функция.

Ответы [ 2 ]

1 голос
/ 21 июня 2019
=ARRAYFORMULA(TEXT(ROW(A1:A11)-MATCH(ROW(A1:A11),IF(A1:A11<>"",ROW(A1:A11),),1)-1,"[<0];0"))
  • IF, чтобы заменить все непустые строки на соответствующие номера строк 1,,,4,,,,...
  • MATCH, чтобы получить все предыдущие номера строк, заполненные приблизительным соответствием 1,1,1,4,4,4,4,...
  • ВЫЧИТАЙТЕ вышеуказанный массив из его соответствующих номеров строк и 1 -1,0,1,-1,0,1,2,3,...
  • TEXT чтобы изменить все отрицательные числа на ""
0 голосов
/ 21 июня 2019
=ARRAYFORMULA(IF(INDIRECT("A2:A"&MAX(IF(A:A<>"", ROW(A:A), )))="",
 MMULT(N(ROW(A2:A)>=TRANSPOSE(ROW(A2:A))), N(A2:A=""))-
 HLOOKUP(0, MMULT(N(ROW(A2:A)>TRANSPOSE(ROW(A2:A))), N(A2:A="")), MATCH(
 VLOOKUP(ROW(A2:A), IF(N(A2:A<>A1:A), ROW(A2:A), ), 1, 1),
 VLOOKUP(ROW(A2:A), IF(N(A2:A<>A1:A), ROW(A2:A), ), 1, 1), 0), 0)-1, ))

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...