СОГЛАСОВАТЬ строку с ArrayFormula

9

У меня есть следующая строка в столбце H и I.

H2="http://"
I2="aaa"
H3="http://"
I3="bbb"

Я хочу иметь автоматически сгенерированный столбец J, который приводит к следующему:

J2="http://aaa"
J3="http://bbb"

Поэтому я поместил следующую формулу в J1:

= ARRAYFORMULA (IF(ROW(J:J)=1;"formulaTest";CONCATENATE(H:H1, I:I1 ) ))

Но результат, который я получил:

J2="http://http://aaabbb"
J3="http://http://aaabbb"

Что не так с моей формулой?

srjohnhuang
источник

Ответы:

14

Это то, что вы ищете:

=ARRAYFORMULA((IF(ROW(J:J)=1,"formulaTest",H1:H & I1:I)))
Джейкоб Ян Туинстра
источник
3
Большой! Наконец-то это работает! Хотя я до сих пор не знаю, почему я не могу использовать «CONCATENATE», мне нужно использовать «&» в этой формуле.
3
@srjohnhuang С помощью CONCATNATE, весь диапазон столбцов подается на ARRAYFORMULA. Используя амперсанд, подаются только отдельные записи, что дает желаемый результат.
Джейкоб Ян Туинстра
3
Причина, по которой вы можете использовать &, но не concatenate (), заключается в том, что concatenate может принимать диапазон, тогда как & может присоединять только определенные дискретные значения.
8

В Google Sheets самое простое решение - просто использовать CONCAT вместо CONCATENATE.

=ARRAYFORMULA(CONCAT(H1:H,I1:I))

CONCAT вернет только два значения и может использоваться таким образом для формулы массива. Вы не можете использовать CONCATENATE, потому что (как упоминалось другими) он вернет весь массив.

craig_in_jp
источник
2
Или даже короче,=arrayformula(H1:H & I1:I)