web-dev-qa-db-ja.com

配列式内で使用された場合のCONCATENATEの問題

この数式を更新して、「arrayformula」内で機能するようにしています。

これは単独で機能し、私がそれを埋めるときに機能します。

=if(E2>0,CONCATENATE(B2, " | ",C2," | ",D2), "")

これは、スプレッドシートに行が追加されている場合は機能しません。

=arrayformula(if(E2:E>0,CONCATENATE(B2, " | ",C2," | ",D2), ""))

行2の値を何度も繰り返します。

行の数が増えるにつれてrow3、4、5などに合わせて調整するには、「b2」、「c2」、「d2」をどのように記述する必要がありますか?

1
Mr. B

してみてください:

=ArrayFormula(if(E2:E>0,B2:B&" | "&C2:C&" | "&D2:D,""))

私は期待していただろう:

=arrayformula(if(E2:E>0,CONCATENATE(B2:B," | ",C2:C," | ",D2:D),""))

上記と同じ結果を生成しますが、そうではありません。通常、CONCATENATEではなく&は個人的な好みの問題ですが、完全に互換性はないようです。 CONCATENATE でそれについて言及していません。

ただし、Google Spreadsheetsには CONCAT があり、「&演算子と同等」isが記載されています。この:

2つの値の連結を返します。

したがって、&の代わりになります... ...一度に1つの「ペア」を連結するために提供されます。したがって:

=arrayformula(if(E2:E>0,(concat(concat(concat(B2:B," | "),concat(C2:C," | ")),D2:D)),""))

上記と同じ結果が得られます。

Excel 2016でリリースされたCONCATを支持するCONCATENATEのM $の非推奨(同様にdoesがより多くの結合を許可するように) 2つの文字列を合わせて)。

2
pnuts