Соедините диапазоны между пустыми ячейками, используя массив формул - PullRequest
1 голос
/ 22 июня 2019

Я пытаюсь объединить значения, пока не будет достигнута пустая ячейка, и выполнить итерацию для диапазона.

Я знаю, что могу использовать что-то вроде JOIN(",",A2: INDEX(A2:A,MATCH(TRUE,(A2:A=""),0)-1)) для одной ячейки, но я хочу знать, как использовать arrayformula, чтобы применить его к каждой ячейке.

    A   B
1       A,B,C
2   A   
3   B   
4   C   
5       D,E
6   D   
7   E   
8       F
9   F   

Столбец A - это цель, а B1 - то место, где будет применяться arrayformula.

1 Ответ

0 голосов
/ 22 июня 2019

B1:

=ARRAYFORMULA(TRANSPOSE(SPLIT(JOIN(,
  SPLIT(REGEXREPLACE(TEXTJOIN(",",0,A2:A11),",{2,}","™"),"™")&
  SPLIT(TEXTJOIN(,,IF((A1:A11="")*(A2:A12<>""),"♞","✦")),"♞")&"✦"
),"✦",1,0)))
  • A1 должно быть пустым.
  • Используется несколько JOIN/SPLIT, где вы присоединяетесь к диапазону, а затем разделяете диапазон, чтобы создать новый диапазон, сформированный по нашему желанию.
  • По сути, формула создает два массива:

    • Массив данных, представленный столбцом A

      A,B,C| E,D| F    
      
    • Соответствующий массив пробелов: количество пробелов, необходимое между каждым из вышеуказанных данных

      ✦✦✦✦| ✦✦✦| ✦✦    
      
  • СОЕДИНИТЕ / РАЗДЕЛИТЕ оба массива и ТРАНСПОЗИРУЙТЕ их, чтобы получить массив col B.

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