Формула функции разделения массива листов Google - PullRequest
0 голосов
/ 26 мая 2020

У меня есть этот лист Google:

Я использую эту формулу для разделения строк на столбцы

=ARRAYFORMULA(IFERROR(IF(D2:D=1, SPLIT(A2:A, "+"), SPLIT(C2:C, "+"))))


 Molecules                               ID  NAME                           Vitamin_in_name     NAME1            NAME2         NAME3
 VITAMIN B1 + VITAMIN B6 + VITAMIN B12    1  VITAMIN B1,B6,B12                       1         VITAMIN B1       VITAMIN B6    VITAMIN B12
                                          2  LIDOCAINE + VITAMIN B4,B8,B10           1         
                                          3  SALICYLIC ACID + TALC                   0         SALICYLIC ACID   TALC 

Я хотел бы вернуть этот лист. ЕСЛИ слово «витамин_в_имя» = 1 и строка «молекулы» пусто, чтобы переформатировать данные, как в столбце ID2 имя1, имя2, имя3. как мне изменить формулу массива для этого?

 Molecules                               ID  NAME                           Vitamin_in_name     NAME1            NAME2         NAME3         NAME4
 VITAMIN B1 + VITAMIN B6 + VITAMIN B12    1  VITAMIN B1,B6,B12                       1         VITAMIN B1       VITAMIN B6    VITAMIN B12
                                          2  LIDOCAINE + VITAMIN B4,B8,B10           1         LIDOCAINE        VITAMIN B4       VITAMIN B8    VITAMIN B10
                                          3  SALICYLIC ACID + TALC                   0         SALICYLIC ACID   TALC 

1 Ответ

1 голос
/ 28 мая 2020

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

  • Molecules столбец не пуст.
  • Vitamin_in_name не 1.

Я предположил, что в этом случае значения должны поступать из столбца C, поэтому Vitamin_in_name для этого не нужен.

В любом случае я бы сделал следующее:

  • Проверьте, не заполнен ли столбец A с помощью ISBLANK .
  • Если столбец A пуст, то (1) используйте REGEXREPLACE , чтобы заменить все , из столбца C на +VITAMIN и (2) SPLIT , используя + в качестве разделителя.
  • Если столбец A не является пустым, используйте простой SPLIT в столбце A с + в качестве разделителя.

Полученная формула может быть такой:

=ARRAYFORMULA(IFERROR(IF(ISBLANK(A2:A),SPLIT(REGEXREPLACE(C2:C,",","+VITAMIN "),"+"),SPLIT(A2:A,"+"))))

enter image description here

...