いまさら聞けないExcelの使い方講座

【Excel】既存の表から必要な列や行を取り出した見やすい表を一瞬で作成! コピペより効率的な方法

必要な列や行を一瞬で取り出すには、CHOOSECOLS/CHOOSEROWS関数が便利

列や行の取り出し専用の関数が登場

 作成済みの表から必要な“列だけ”を取り出したいことがありますよね。コピー&ペーストや、表を丸ごとコピーして不要な列を削除するといった操作をしている人が多いはずです。以下のような単純な表から[No][氏名][メールアドレス]の3列を取り出すだけでも、ひと手間かかります。

[No][氏名][メールアドレス]の3列を取り出したいだけですが、コピー&ペーストの作業が2~3回必要になります

 コピー元の表が別のワークシートに含まれているなら、ワークシートの切り替えの操作も加わります。難しい作業ではありませんが、コピペミスの可能性もあるので気は抜けませんね。たまにある作業としては、奇数番など1つおきの行を取り出したいことも。縦方向に長い表が一般的なので、ひたすらコピペ、もしくは削除をくり返す苦行の経験者もいるでしょう。

 今回は、必要な列や行を一瞬で取り出せるCHOOSECOLS/CHOOSEROWS関数を紹介します。Microsoft 365のExcelで利用可能です。関数名の通り、カラム(COLS)や行(ROWS)を選ぶ(CHOOSE)ための関数です。構文は以下の通り。セル範囲を指定し、左端の列と上端の行を「1」として、取り出したい列や行の番号を続けます。

CHOOSECOLS/CHOOSEROWS関数の構文。引数[範囲]に指定したデータから[列番号]や[行番号]に指定されたデータを取り出します。結果はスピルで表示されます
左端の列と上端の行を「1」として、「2,3,4……」と数えます

CHOOSECOLS関数で必要な列を取り出す

 CHOOSECOLS関数を使って必要な列を取り出してみましょう。ここでは[No][氏名][メールアドレス]を取り出すために、引数[列番号]には「1」「2」「7」と指定します。数式の結果はスピルで表示されるため、入力する数式は1つだけです。なお、元の表の見出しも含めて引数[範囲]に指定する場合は、取り出し先の見出しは不要です。

セルI2に「=CHOOSECOLS(A2:G21,1,2,7)」と入力します(①)。[No][氏名][メールアドレス]は左端から数えて、それぞれ「1」「2」「7」です
[No][氏名][メールアドレス]列のデータが取り出せました

CHOOSEROWS関数で必要な行を取り出す

 今度はCHOOSEROWS関数を使って、データの「1」「3」「5」「7」行目だけを取り出してみましょう。利用する機会は少ないかもしれませんが、動作を確認してみます。ここでは、見出し行も含めて取り出します。上端の見出し行を「1」と数えることに注意してください。

セルI1に「=CHOOSEROWS(A1:G21,1,2,4,6,8)」と入力します(②)。見出し行を「1」と数えるため、データの「1」「3」「5」「7」行目は、「2」「4」「6」「8」となります
見出し行とデータの「1」「3」「5」「7」行目が取り出せました

CHOOSECOLS/CHOOSEROWS関数を組み合わせる

 CHOOSECOLS関数とCHOOSEROWS関数を組み合わせると、必要な列と行のみをまとめて取り出すことができます。数式が長くなりますが、何列目と何行目を取り出すかを指定しているだけです。

=CHOOSEROWS(CHOOSECOLS(A2:G21,1,2,7),1,3,5,7)
見出し行は用意してあります。セルI2に「=CHOOSEROWS(CHOOSECOLS(A2:G21,1,2,7),1,3,5,7)」と入力します(③)
[No][氏名][メールアドレス]列、かつデータの「1」「3」「5」「7」行目が取り出せました

365ユーザーなら便利に使える

 本稿執筆時点で、CHOOSECOLS/CHOOSEROWSは、Microsoft 365のExcelのみで扱える関数です。結果はスピルで表示されるため、数式のコピーも不要。元のデータからコピペをくり返すより効率的です。365を使っている人はぜひ活用してください。