Excelで膨大なデータから必要なところだけを抜き出す際、コピー&ペーストを繰り返していないだろうか。CHOOSECOLS関数とCHOOSEROWS関数を使えば、元の表を汚さず、必要な列や行だけを自在に抽出できる。データの更新にも自動で追従するため、手作業によるミスや二度手間を劇的に減らすことが可能だ。本Tech TIPSでは、このCHOOSECOLS/CHOOSEROWS関数の使い方を解説しよう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Excel 2021/2024/365
CHOOSECOLS/CHOOSEROWS関数で表作成の無駄をゼロにする「Microsoft Excel(エクセル)」でデータを操作していると、特定の列や行だけを表示して分析したい、という場面は日常茶飯事である。このようなとき、不要な列や行を非表示にしたり、必要や行や列をコピーして新しい表を作成したりしていないだろうか? 実は、これらにはデメリットが伴う。
マスターとなる表の行や列を非表示にしてしまうと、非表示になっている部分を参照する際にまた非表示を解除しなければならず面倒だ。一方、行や列をコピーして新しい表を作成してしまうと、マスターの値が変更されたり、行や列が追加されたりした場合にコピーし直さなければならなくなる。場合によっては、変更のたびに新しい表を追加していった結果、何が最新の表なのか分からなくなるといったことも起きる。
こうした問題を解決するのが、Excel 2021以降やMicrosoft 365で利用可能になったCHOOSECOLS関数とCHOOSEROWS関数だ。本Tech TIPSでは、このCHOOSECOLS関数とCHOOSEROWS関数の使い方を取り上げる。
CHOOSECOLS関数とCHOOSEROWS関数は、配列(表)から番号で指定した「列(Column)」または「行(Row)」を抽出するものだ。
関数の書式は以下のようになっている。
●列の抽出
=CHOOSECOLS(配列, 列番号1, [列番号2], ……)
●行の抽出
=CHOOSEROWS(配列, 行番号1, [行番号2], ……)
注意が必要なのは、引数として指定する列番号/行番号は、配列の先頭を「1」とした番号で指定することだ。例えば、「A1」セルから開始する表では、「A列」が列番号で「1」、「B列」が列番号で「2」となる。「C5」セルから開始する表では、「C列」が「1」、「D列」が「2」になるので注意してほしい(行の場合も同様)。
最大のメリットは、抽出結果が「スピル」されることだ。新しい表を作成したい位置の左上となるセルにこの関数を入力するだけで、表を作成できる。
また、元の表が更新されれば、抽出先のデータもリアルタイムで更新されるので、マスターのデータが変更されると自動的に抽出した表も更新される。逆に表の作成時点のデータで集計したいような場合は、マスターデータの変更に注意が必要になる。
具体的な例で使い方を見ていこう。ここでは、利用されることが多い、列で抽出するCHOOSECOLS関数を例に解説していく。CHOOSEROWS関数も列と行の違いだけで使い方は同じだ。
例えば、下画面のような6列の「販売管理マスター」から、報告に必要な「日付」「商品名」「売上金額」だけを抽出したいとする。「A」列、「C」列、「F」列をコピーして新しい表を作っているのではないだろうか。
CHOOSECOLS関数を使えば、以下の数式を新しい表を作成したいセル(例えば、「A15」セル)に入力すればよい。
=CHOOSECOLS(A1:F6, 1, 3, 6)
この数式を入力するだけで、不要な列(担当者や単価など)を飛ばした新しい表が瞬時に生成される。ただし、セルの書式設定は一緒に抽出されないので注意してほしい。そのため、日付などはシリアル値となってしまうので、CHOOSECOLS関数で抽出した表でもセルの書式設定を適用する必要がある。
CHOOSECOLS関数やCHOOSEROWS関数を使うと、簡単に必要な列や行だけを抽出して別の表を作成できることが分かる。
CHOOSECOLS関数やCHOOSEROWS関数をさらに活用するための応用テクニックを紹介しておこう。
上の例では、同じシート上に抽出した表を作成したが、多くの場合は別のシートに作成することになるだろう。そのような場合は、指定する「配列」にシート名を含めて「Sheet1!A1:F6」というように指定すればよい。
シート名を含めるのが面倒な場合は、表に「名前の定義」で名前を付ければ簡単に参照できるようになる(「名前の定義」については、Tech TIPS「Excelの『名前の定義』でセルの範囲に名前を付ける」参照のこと)。
マスターデータの表(セル範囲)内のセルを選択してから、[Ctrl]+[A]キーを押して表全体を選択する。数式バーの左側にある「名前ボックス」に「販売管理」といった名称を記入することで、名前を定義しておく。
新しいシートで表を作成したいセル範囲の左上を選択して、以下の数式を入力すればよい。ブック内ならば、シート名を指定しなくても定義した名前が使えるので、数式がシンプルになる。
=CHOOSECOLS(販売管理, 1, 3, 6)
「顧客管理マスター」では、性別や電話番号、メールアドレスなど多くの情報が入力されていることが多い。ここから新製品の案内(ダイレクトメール)を発送するための住所録を抽出したいということもあるだろう。
そのような場合も、CHOOSECOLS関数を使うと簡単だ。「顧客管理マスター」から、CHOOSECOLS関数で「郵便番号」「住所」「名前」の列を抽出すればよい。ただ、「顧客管理マスター」ではこの順番に並んでいないことの方が多いだろう。CHOOSECOLS関数では、引数の「列番号」の順番を変えるだけでよい。
=CHOOSECOLS(顧客管理, 8, 9, 1)
いちいち列を選択してコピーして、新しい表に貼り付けるという手間が大幅に省ける。
列の順番を入れ替えた表を作成する(1)
列の順番を入れ替えた表を作成する(2)Copyright© Digital Advantage Corp. All Rights Reserved.