VBA を使わずに Excel で 2 つの配列を連結する方法はありますか? [重複] 質問する

VBA を使わずに Excel で 2 つの配列を連結する方法はありますか? [重複] 質問する

長さの異なる 2 つの配列の連結を返す数式を作成しようとしています。この連結は別の数式の一部に必要なので、可能であれば「ヘルパー」行を避けたいと思います。

サンプルデータについては以下を参照してください。

ここに画像の説明を入力してください

目標は、出力を にすることです{10;11;12;13;20;21;22}。もちろん、これは数式に簡単にハードコードできますが、これらの値は動的であるため、これはオプションではありません。

次のことを試しました:

{A1:A4;B1:B3}

しかし、これはどうやら有効な Excel 構文ではないようです。

解決策はありますか?

ベストアンサー1

2 つの配列を連結するだけでよく、最新バージョンの Excel を使用している場合は、これが配列の元の順序を維持する最短の答えだと思います。

この答えは、s配列(2つの目標配列を合わせた長さ)を生成し、if文を使用して配列を出力するかどうかを決定します。として要素または配列bの要素。

この数式をコピーしてワークブックに貼り付けるには、次の値を変更するだけです。A2#B2#連結したい 2 つの配列に追加します。

マルチラインバージョン

=LET(
    a, A2#,
    b, B2#,
    s, SEQUENCE(ROWS(a) + ROWS(b)),
    IF(s > ROWS(a), 
        INDEX(b, s - ROWS(a)), 
        INDEX(a, s)
    ))

縮小版:

=LET(a,A2#,b,B2#,s,SEQUENCE(ROWS(a)+ROWS(b)),IF(s>ROWS(a),INDEX(b,s-ROWS(a)),INDEX(a,s)))

おすすめ記事