Concat Массивы в Excel - PullRequest
       33

Concat Массивы в Excel

1 голос
/ 11 ноября 2019

У меня есть 3 одноклеточных массива (без текста, см .: https://support.office.com/en-us/article/guidelines-and-examples-of-array-formulas-7d94a64e-3ff3-4686-9372-ecfd5caa57c7)

A1 = {"A","B","C"}

B1 = {"1","2","3"}

C1 = {"X","Y","Z"}

Мне нужно их объединить

D1 = "A 1 X , B 2 Y , C 3 Z"

Формула должна работать для больших массивов,нет только 3 элемента. Я не могу использовать VB.

Спасибо, вы можете взглянуть на https://www.freelancer.com/contest/Excel-Formula-1660332

1 Ответ

1 голос
/ 11 ноября 2019

У меня нет функции TEXTJOIN на домашнем компьютере. Поэтому, когда я попытался со следующими ограничениями

  • Там будет три ячейки.

  • Каждая ячейка будет иметь 3 записи с выше константной структурой.

Тогда можно использовать следующую очень длинную формулу.

=""""&TRIM(SUBSTITUTE(CONCATENATE(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&A1,",",REPT(" ",99)),"{",""),"}",""),99,99)),TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&B1,",",REPT(" ",99)),"{",""),"}",""),99,99)),TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&C1,",",REPT(" ",99)),"{",""),"}",""),99,99))," , ",TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&A1,",",REPT(" ",99)),"{",""),"}",""),198,99)),TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&B1,",",REPT(" ",99)),"{",""),"}",""),198,99)),TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&C1,",",REPT(" ",99)),"{",""),"}",""),198,99))," , ",TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&A1,",",REPT(" ",99)),"{",""),"}",""),297,99)),TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&B1,",",REPT(" ",99)),"{",""),"}",""),297,99)),TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&C1,",",REPT(" ",99)),"{",""),"}",""),297,99))),""""," "))&"""

В своей основе следующая логика извлечения использовалась многократно.

TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&A1,",",REPT(" ",99)),"{",""),"}",""),99,99))

Мое предложение: Используйте VBA, если у вас нет опции TEXTJOIN.

...