説明
この関数を使用して、複数の範囲または配列を 1 つの範囲に垂直方向にスタックします。
構文
VSTACK(array_1, [array_2], ..., [array_29])
入力
この関数は以下の引数を承認します:
| 名称 | 必須 | 説明 | 有効入力 |
|---|---|---|---|
array_1 |
はい | 縦方向にスタック(結合)する最初の範囲または配列。 | セル参照、セル範囲、またはこれらのいずれかになる数式。 |
[array_2], ..., [array_29]. |
いいえ | 垂直方向にスタックする追加の範囲または配列。最大29配列まで追加可能。 | セル参照、セル範囲、またはこれらのいずれかになる数式。 |
例
サンプルデータ
データセット1
| A | B | C | D | ||
|---|---|---|---|---|---|
| 1 | 名称 | 売上高 | 地域 | コミッション | |
| 2 | Q1 | ||||
| 3 | ジョン | 45000 | 北 | 4500 | |
| 4 | アリス | 52000 | 南 | 5200 | |
| 5 | ボブ | 49500 | 西 | 4500 | |
| 6 | Q2 | ||||
| 7 | ジョン | 48000 | 北 | 4800 | |
| 8 | アリス | 55000 | 南 | 5500 | |
| 9 | ボブ | 51250 | 西 | 5100 |
データセット2
シート 1(名前は "Employees_Q1")
| 名称 | 年齢 | 市区町村 | 給与 | ||
|---|---|---|---|---|---|
| 1 | ジョン | 35 | ニューヨーク | 75000 | |
| 2 | アリス | 28 | シカゴ | 65000 | |
| 3 | ボブ | 42 | ロサンゼルス | 85000 |
シート 2(名前は "Employees_Q2")
| 名称 | 年齢 | 市区町村 | 給与 | ||
|---|---|---|---|---|---|
| 1 | ジョージ | 22 | デンバー | 55000 | |
| 2 | ヘレン | 30 | スコッツデール | 71000 |
数式のサンプル
| 使用例 | 数式 | 説明と結果 | |||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2つの水平配列を1つのテーブルに結合します。 | =vstack(a2:d4, a6:d8) |
この数式は、タブ上の2つの範囲を読み取り、Q1とQ2のデータを1つの範囲に結合します。データセット1を使用すると、次のようになります:
|
|||||||||||||||||||||||||||||||||||
| 2つの別々のシートのデータを1つのテーブルに結合します。 | =VSTACK(Employees_Q1!A2:D4, Employees_Q2!A2:D3) |
この数式はシート 1(Employees_Q1!A2:D4)から Q1 の従業員データを抽出しシート 2(Employees_Q2!A2:D3)から Q2 の従業員データを抽出する。VSTACK を使用して抽出された両方の配列を垂直方向に結合して 1 つのリストにする。縦方向の順序は、数式内の式の順序によって決まります。データセット2を使用すると、次のようになります:
|
|||||||||||||||||||||||||||||||||||
| 1つのテーブルのデータを、2つ目のテーブルのフィルター設定と結合します。 1つのテーブルのデータと2つ目のテーブルのフィルター設定を結合するユースケースは、プライマリテーブルのデータに関連テーブルの特定の情報を追加したい場合です。 |
=VSTACK(A2:D4, FILTER(A6:D8, B6:B8>50000)) |
Q1 データとフィルタリングされた Q2 データ(Sales が 50000 より大きい)を結合する。データセット1を使用すると、次のようになります:
|
|||||||||||||||||||||||||||||||||||
| 2 つの別々の範囲からデータを結合し、一意の名前を抽出し両方の期間にわたる各個人の値を合計する。 | =HSTACK(UNIQUE(VSTACK(A2:A4, A6:A8)), SUMIF(VSTACK(A2:A4, A6:A8), UNIQUE(VSTACK(A2:A4, A6:A8)), VSTACK(B2:B4, B6:B8))) |
この数式は、VSTACK を使用して、Q1 と Q2 の Name 列を 1 つの垂直リストに結合し、その後、UNIQUE が結合されたリストからそれぞれ異なる名前を返す。VSTACK が再度使用されて Q1 と Q2 の Sales 列が結合され SUMIF が両方の期間にわたる各名前の Sales の値を合計する。その後 HSTACK が一意の名前とその合計を横に並べて配置する。データセット1を使用すると、次のようになります:
注:UNIQUE は重複する行のみを削除する。計算は実行しない。各名前の Sales の値を合計するには上記のように UNIQUE とともに SUMIF(または類似の関数)を使用する必要がある。 |
メモ
- すべての配列関数と同様、VSTACKは、VSTACK関数を含むセルを起点として、隣接するセルに結果を動的に入力します。
- VSTACK:
- VSTACK: 複数のシートから垂直方向に複数の範囲を単一の垂直範囲に結合。配列の順序は、積み重ねの順序を決定します。関数内の最初の配列が常に先頭になります。
- 異なる幅を持つ範囲をスタックできます。
- 複数の期間またはソースのデータを結合するのに便利です。
- マニュアルで再フォーマットすることなく新規レコードを追加するのに便利です。
- データをダイナミックに保ちます (新規行が追加されると、出力が更新されます)。
ヒント
- ヘッダー行があり、ヘッダーを含めたくない場合は、配列の値を1つ下の行から開始します(例えば、上記のデータセットでは、A1ではなくA2から開始します)。
- VSTACKは以下を含む他の関数と結合できます:
配列数式関数
Workiva スプレッドシートで対応可能なその他の配列数式関数を示します。