Google SpreadSheet で2つの配列をクロス結合したい場合があります。
例えば、メンバー各々に決まった属性を割り当てた表を作る場合に、メンバー追加時に属性行も追加する作業は非常に面倒です。
メンバーを追加する時は、メンバー一覧にメンバーの名前だけ追加すれば、あとは各属性行も追加されるようにできれば楽になります。
公式のドキュメントに方法が載っていたのですが、初見だと理解ができなかったので、式の要素を分解して理解してみました。
要素ごとに記事を書いています。
やってみる
公式の手法にしたがってやってみます。
Filter 関数を使用して、空の値をスキップさせます。
=arrayformula(split(flatten(filter(W2:W,not(isblank(W2:W)))&"|"&transpose(filter(X2:X,not(isblank(X2:X))))),"|"))
メンバーと属性の一覧を作成します。
(上式のW列がメンバー列、X列が属性列)
メンバーと属性のクロス結合した一覧が作成されました。
メンバーを追加してみます。
追加したメンバーの各属性が追加されました。