CONCATENER une chaîne avec un ArrayFormula

9

J'ai la chaîne suivante dans les colonnes H et I.

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

Je veux avoir une colonne J générée automatiquement, qui se traduit par:

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

J'ai donc mis la formule suivante dans J1:

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

Mais le résultat que j'ai obtenu est:

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

Qu'est-ce qui ne va pas avec ma formule?

srjohnhuang
la source

Réponses:

14

Voici ce que vous recherchez:

=ARRAYFORMULA((IF(ROW(J:J)=1,"formulaTest",H1:H & I1:I)))
Jacob Jan Tuinstra
la source
3
Génial! Cela fonctionne enfin maintenant!. Bien que je ne sache toujours pas pourquoi je ne peux pas utiliser "CONCATENATE", j'ai plutôt besoin d'utiliser "&" dans cette formule.
3
@srjohnhuang Avec le CONCATNATE, la gamme complète de colonnes est envoyée au ARRAYFORMULA. En utilisant l'esperluette, seules les entrées individuelles sont introduites, vous donnant le résultat souhaité.
Jacob Jan Tuinstra
3
La raison pour laquelle vous pouvez utiliser & mais pas concaténer () est que concaténer peut prendre une plage alors que & ne peut joindre que des valeurs discrètes spécifiques.
8

Dans Google Sheets, la solution la plus simple consiste à simplement utiliser CONCAT au lieu de CONCATENATE.

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

CONCAT ne renverra que deux valeurs et peut être utilisé de cette manière pour une formule matricielle. Vous ne pouvez pas utiliser CONCATENATE car (comme mentionné par d'autres), il renverra tout le tableau.

craig_in_jp
la source
2
Ou encore plus court,=arrayformula(H1:H & I1:I)