動的配列・スピル入門
CHOOSECOLS関数を見て理解する
配列から指定した列だけを選び、その列を新しい配列として返す関数です。
3つのポイント
- 元になる配列を指定する
- 取り出したい列番号を指定する
- 選んだ列を複数セルへスピルする
3列の配列から指定した1列を取り出す
サンプル数式
- 配列
- 列番号
いまの結果:
4行 × 1列
計算結果結果セル:G2スピル範囲:G2:G5
先頭行:120
入力・条件:配列 A2:C5(4行 × 3列) / 列番号 2
- 配列A2:C5(4行 × 3列)先頭行:「りんご」 | 120 | 8
- 列番号E2:2
この結果になる理由
指定した列を選んだ結果です。
サンプルデータ
列番号を変えてみよう
※ Excel と Google スプレッドシートで結果や挙動が異なる場合、Excel の仕様を基準にしています。
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | 商品 | 売上 | 在庫 | 列番号 | 結果 | ||
| 2 | りんご | 120 | 8 | 120 | |||
| 3 | バナナ | 95 | 12 | 95 | |||
| 4 | みかん | 110 | 6 | 110 | |||
| 5 | ぶどう | 140 | 4 | 140 |
①配列②列番号✓起点セル↘スピル結果
①・② 正式引数 / 教材要素1–3 処理の流れ
E2に値を入力すると、結果と処理順が変わります。
2つの引数
色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。
A2:C5表のセル: A2:C5取り出し元になる配列です。この例ではA2:C5の4行×3列を使います。
E2表のセル: E2どの列を取り出すか指定します。正の値は左端、負の値は右端から数えます。
この数式を日本語にすると
A2:C5の3列から、E2の2を使って左から2列目だけを取り出します。選んだ列はG2:G5へ自動的に広がります。
この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。
処理の流れ
手順1〜3を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。
元の配列を確認する
A2B2C2A3B3C3A4B4C4A5B5C5A2:C5の4行×3列を列を取り出す元配列として使います。
列番号を確認する
E22なので、左端から2列目を選びます。
指定した列を取り出す
G2:G5列番号2の指定順に取り出し、4行×1列の結果をG2:G5へスピルします。
対応アプリ
- Excel
- Google スプレッドシート
関数自体が対応するアプリです。教材例の数式や再計算が、両アプリで同じように動くことを保証するものではありません。
この例の注意点
- 列番号は1から数え、正の値は左端から指定します。
- 負の列番号を指定すると、右端から列を数えて取り出せます。
- 0または配列の列数を超える列番号を指定すると#VALUE!になります。
- CHOOSECOLSは複数の列番号を指定して、任意の順番で複数列を返すこともできます。
- この教材では1つの列番号を変更しながら、選ばれる列とスピル結果の変化を確認できます。
一般構文
対応:Excel / Google スプレッドシート ・ 構文:構文は同じ
- 列番号引数では、Excelが受理して列番号へ変換する数値文字列・全角数値文字列などを、Google スプレッドシートでは#VALUE!として扱うケースがあります。
- 複数の列番号引数でcoercion・typed error・domain不正が競合する場合、ExcelとGoogle スプレッドシートで返されるエラーが異なるケースがあります。
Excel
=CHOOSECOLS(array, col_num1, [col_num2], ...)Google スプレッドシート
=CHOOSECOLS(array, col_num1, [col_num2], ...)公式資料・確認範囲
公式資料
- Microsoft Excel 公式構文
- Google スプレッドシート 公式対応状況・構文
実機確認
- Excel for the web / Google スプレッドシート計算結果・入力の扱い・エラーを確認済み
未確認
配列展開
次に学ぶ関数
CHOOSEROWS
列を選ぶ次は、同じ考え方で行を選びます。
次に学ぶ