下図の [商品リスト1] テーブル (オレンジ) と [商品リスト2] テーブル (緑) のデータを 1 つの表にまとめます。 もちろん商品リストは 3 つでもよいですがここでは 2 つでやります。

XLOOKUP や VLOOKUP 関数で参照したい表が 2 つに分かれてしまっている、単純に 2 つに分かれている表を 1 つにして表示したいなど、くっつけてその後どうしたいのかは様々だと思います。
1 回こっきりでその後データも増えない、というのならコピーでもよいと思うけれど、テーブルのデータが増えたり減ったりした場合に、コピーしなおさないといけません。それが嫌なのでここでは VSTACK 関数で対応してみます。
VSTACK 関数は、ヘルプによると「配列を垂直方向に順番に追加して、より大きな配列を返します。」とのこと。 縦方向に並んでいる範囲が 2 つあるとき、1 つ目の範囲の下に 2 つ目以降の範囲をくっつけて縦長にした結果を返してくれる、ということですね。

VSTACK 関数の構文はこちら。
=VSTACK( array1 , [array2] , ...)
array1 : 1 つ目の配列 (範囲)
[array2] : 2 つ目の配列 (範囲)
3 つ目の範囲があるのなら「=VSTACK( array1 , array2 , array3)」のように指定する、ということ。 結果はスピルされて表示されます。
引数に指定する配列について念のため書いておくと、
結果を表示したいセルに数式を入力して確定します。ここではテーブル名で指定しているので数式は下記です。 ドラッグで範囲を選択するのなら、見出し部分は含めずにドラッグすればテーブル名だけ (すなわちデータ部分だけ) が指定されます。
=VSTACK(商品リスト1 , 商品リスト2)

配列をテーブル名で指定できるということは、テーブルに行が追加されて範囲が拡張されても対応できる、ということです。 もとのテーブルのデータが増減することが想定されるのならセル範囲 (A4:B9 など) で配列を指定するのではなく、テーブルに変換してテーブルの構造で指定したほうがよいでしょう。
たとえば下図の [商品リスト1] に 1 行増やしてみると、VSTACK の結果も 1 行増えます。
テーブルの結合なら Power Query でもよいのでは?と。それはそうです。 手順は省くけれど、下図では [商品リスト1] と [商品リスト 2] を [接続の作成のみ] で作成して、クエリの追加で 1 つにまとめて [商品リスト] クエリを作り、ワークシートに読み込もうとしています。
読み込み先のセルを指定したいので [閉じて次に読み込む] を実行しています。

この場合はもとのテーブルにデータが増えるなどの変更が加わっても即座には結合したテーブルには反映されないので更新します。

列数が少ないマスター テーブルだし、金額 (単価) だから合計しても意味がないんだけれど、、、ピボットテーブルで読み込んでいるのが下図です。

結合したいテーブルが異なるブックや csv など、あちこちのファイルにある、読み込むときに列の追加や削除などの加工をしたい、テーブルはいらないからピボットテーブルで読み込みたい、というときは Power Query を使っています。
ただただシンプルにくっつけて一覧を表示したい、というときは VSTACK 関数を使っています。 VSTACK の結果を参照した XLOOKUP の使い方についてはまた別で書きます。
石田 かのこ
営業時間:平日9:00~18:00