ラベルラベル

動的配列・スピル入門

CHOOSECOLS関数を見て理解する

配列から指定した列だけを選び、その列を新しい配列として返す関数です。

3つのポイント

  1. 元になる配列を指定する
  2. 取り出したい列番号を指定する
  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 の仕様を基準にしています。

「3列の配列から指定した1列を取り出す」のサンプルデータ。引数番号は正式引数と教材要素の対応、小さな角丸数字は処理順を表します。
ABCDEFG
1商品売上在庫 列番号 結果
2りんご1208  120
3バナナ9512   95
4みかん1106   110
5ぶどう1404   140
配列列番号起点セルスピル結果
①・② 正式引数 / 教材要素1–3 処理の流れ

E2に値を入力すると、結果と処理順が変わります。

2つの引数

色付きの丸数字は、サンプル数式と引数ガイドで同じ引数を示しています。表にも同じ番号があれば、その引数で指定しているセルを示します。

  1. A2:C5表のセル: A2:C5

    取り出し元になる配列です。この例ではA2:C5の4行×3列を使います。

  2. E2表のセル: E2

    どの列を取り出すか指定します。正の値は左端、負の値は右端から数えます。

この数式を日本語にすると

A2:C5の3列から、E2の2を使って左から2列目だけを取り出します。選んだ列はG2:G5へ自動的に広がります。

この説明は、最初に表示されているサンプルデータをもとにしています。入力値を変更しても説明文は変わりません。

処理の流れ

手順1〜3を順番に確認しましょう。表内の小さな角丸数字は、対応する手順を示します。

  1. 元の配列を確認する

    A2B2C2A3B3C3A4B4C4A5B5C5

    A2:C5の4行×3列を列を取り出す元配列として使います。

  2. 列番号を確認する

    E2

    2なので、左端から2列目を選びます。

  3. 指定した列を取り出す

    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], ...)
公式資料・確認範囲

実機確認

  • Excel for the web / Google スプレッドシート計算結果・入力の扱い・エラーを確認済み

未確認

配列展開

次に学ぶ関数

CHOOSEROWS

列を選ぶ次は、同じ考え方で行を選びます。

次に学ぶ