СОГЛАСОВАТЬ строку с 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"

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

Ответы:


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, потому что (как упоминалось другими) он вернет весь массив.


2
Или даже короче,=arrayformula(H1:H & I1:I)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.