2017-10-19 11 views
0
=ARRAYFORMULA(if(isblank(B2:B),"",B2:B)) 

は列を複製します。しかし、arrayformulaは最上位のネストレベルでのみ動作するようです。

=ARRAYFORMULA(if(isblank(B2:B),"",CONCATENATE("B=",B2:B))) 

B=始まる値の列を生成するが、結果列の各セルにおけるB列の全ての行の値の並置しました。

2つのネストレベルがダウンしても、左側のB2:Bの効果は正しい結果(各行でB列が空白でない場合のみの値)を生成しますが、B2の影響は次のようになります。 Bは右側にあり、異なる効果を持ち、私が理解できない条件、場合によっては単一の値、時には全体の配列に展開されることがあります。これにより、ARRAYFORMULAは私のアプリケーションにとって非常に限られた有用性を持っています。結果の列には列Bの対応する行の値が1つしかないことを期待していました。ARRAYFORMULAの使い方について何か不足していますか?

B=を結果列の各セルの前に追加するという目的を達成する別の方法はありますか? (実際には、私の目標は、セル値と他のテキストのより洗練された組み合わせを行うことですが、私は理解できないほど単純な場合に減らしました。もしこれを理解すれば、ものも)

答えて

2

CONCATENATEは、すべての配列を単一の値にマージします。これはあなたが探しているものだと思います。

=ARRAYFORMULA(if(B2:B="","",("B="&B2:B))) 

ここにいくつかの考えがあります。あなたは次の式が何を期待していますか?

=ARRAYFORMULA(CONCATENATE(if(isblank(B2:B),"",("B="&B2:B&"")))) 

またCONCATJOINTEXTJOINを試してみてください。それぞれが同じように見えるかもしれません。しかし、それらの微妙な違いは、世界のすべての違いを生み出します。

+0

はい、CONCATENATEではなくCONCATを使用すると私の問題が解決し、より複雑なものも処理できました。ありがとう。 – Victoria

関連する問題