ExcelでDROP/TAKE関数が使えない原因と代替策|2021・365の違いと実用式を解説

ExcelでDROP/TAKE関数が使えないとき、いちばん多い原因は「Excelの世代が対応していない」ことです。Microsoftの関数一覧では、DROPとTAKEは2024導入の関数として案内され、個別サポートページの適用先も Excel for Microsoft 365、Excel for the web、Excel 2024 です。つまり、Excel 2021/2019/2016 では、数式が悪いのではなく、関数そのものが未対応の可能性が高いということです。さらに、対応版でもテーブル内入力、スピル範囲の詰まり、互換モードのせいで「使えない」ように見えるケースがあります。 (Microsoft サポート)

この記事では、ExcelでDROP/TAKE関数が使えない原因を切り分けながら、Excel 2021での代替式、Excel 2019/2016で現実的な回避策、やってはいけないハマりどころまで、すぐ実務で使える形で整理します。

目次

DROP/TAKEが使えない最大の原因は「未対応バージョン」

Microsoftの関数一覧では、バージョンマーカーは「その関数が導入されたExcelの世代」を示し、それ以前では使えません。日本語の一覧では DROP と TAKE が 2024、FILTER や SORT は 2021 と表示されています。つまり、Excel 2021でFILTERやSORTが使えても、DROP/TAKEだけ使えないのは不具合ではなく仕様です。 (Microsoft サポート)

しかも買い切り版Officeは、セキュリティ更新は受けられても新機能は追加されません。Excel 2021を使っているなら、「更新すればDROP/TAKEが来る」と期待するより、代替策に切り替えた方が早いです。 (Microsoft サポート)

環境判断補足
Microsoft 365基本的に使えるただしWindows版は更新チャネルや段階配信の差で見え方がずれる
Excel 2024使える買い切り版でも対象
Excel for the web使えるブラウザ版も対象
Excel 2021使えない2024導入関数のため
Excel 2019 / 2016使えない対象外
.xls の互換モード新機能は使えない.xlsx へ変換して確認

この整理は、Microsoftの関数一覧の導入マーカー、DROP/TAKEの個別サポートページ、互換モードの説明に基づくものです。 (Microsoft サポート)

対応版でも使えないときの症状別チェック

症状はエラー表示でかなり絞れます。#NAME? は関数名の誤記や未対応関数で起きやすく、#SPILL! は出力先の詰まりやテーブル内入力で起きます。DROP/TAKE自体は、行数や列数に 0 を渡すと #CALC!、配列が大きすぎると #NUM! を返します。互換モードでは新機能が使えません。 (Microsoft サポート)

症状ありがちな原因最初の対処
#NAME?関数名の打ち間違い、または未対応バージョンバージョン確認、関数名の打ち直し
#SPILL!スピル先に値がある、全列参照、テーブル内入力空白セルへ移動、参照範囲を絞る、テーブル外に置く
#CALC!rows / columns に 0 を指定している0 以外に直す
#NUM!返す配列が大きすぎる元範囲を小さくする
ファイル名に [互換モード].xls 形式で開いている.xlsx に変換する

とくに見落としやすいのは「テーブルの中に式を入れている」ケースです。Microsoftは、スピルする動的配列数式はExcelテーブル内ではサポートされず、テーブル外のグリッドに置くよう案内しています。また、全列参照はワークシート端まで結果が広がって #SPILL! を起こしやすいです。 (Microsoft サポート)

3分で終わる確認手順

  1. まずExcelを開き、ファイル > アカウント で製品名とバージョン番号を確認します。Windows版ではここでビルド番号まで確認できます。 (Microsoft サポート)
  2. 製品名が Excel 2021 / 2019 / 2016 なら、DROP/TAKE未対応の可能性が高いです。関数を直すより、代替策へ切り替える方が早いです。 (Microsoft サポート)
  3. Microsoft 365 または Excel 2024 なのに使えないなら、Windows版では ファイル > アカウント > 更新オプション > 今すぐ更新 を試します。 (Microsoft サポート)
  4. Windowsの社用PCなら、更新チャネルも確認対象です。Current Channel は機能が段階配信され、Semi-Annual Enterprise Channel は新機能追加が年2回です。個人PCでは使えるのに会社PCでは使えない、はここで起きやすい差です。 (Microsoft Learn)
  5. ファイル名に [互換モード] が付いていたり、拡張子が .xls なら、.xlsx へ変換します。古い版と共有する必要があるなら、ファイル > 情報 > 問題のチェック > 互換性チェック で事前確認します。 (Microsoft サポート)
  6. 数式はテーブル外の空白セルに置き、A:A や 1:1 のような全列・全行参照は避けます。実データ範囲だけを参照する方が安定します。 (Microsoft サポート)

Excel 2021でDROP/TAKEを代用するなら INDEX+SEQUENCE が第一候補

Excel 2021では、INDEXはもちろん、SEQUENCEも使えます。そのため、INDEX+SEQUENCE で DROP/TAKE のかなりの部分を置き換えられます。逆に、CHOOSEROWS や CHOOSECOLS も 2024 マーカーなので、Excel 2021 の代替候補にはなりません。 (Microsoft サポート)

先頭5行を取り出す

TAKE(A2:D100,5) 相当です。

=INDEX(A2:D100,SEQUENCE(5),SEQUENCE(1,COLUMNS(A2:D100)))

末尾5行を取り出す

TAKE(A2:D100,-5) 相当です。

=INDEX(A2:D100,SEQUENCE(5,1,ROWS(A2:D100)-5+1),SEQUENCE(1,COLUMNS(A2:D100)))

先頭2行を捨てる

DROP(A2:D100,2) 相当です。

=INDEX(A2:D100,SEQUENCE(ROWS(A2:D100)-2,1,3),SEQUENCE(1,COLUMNS(A2:D100)))

行数・列数をセルで指定して先頭を削る

H1 に削る行数、H2 に削る列数を入れておくと、DROP(A2:D100,H1,H2) に近い動きになります。

=INDEX(A2:D100,SEQUENCE(ROWS(A2:D100)-H1,1,H1+1),SEQUENCE(1,COLUMNS(A2:D100)-H2,H2+1))

この方法のポイントは、INDEXで元データ範囲を参照し、SEQUENCEで「何行目・何列目を返すか」を作ることです。実務では、取り出し件数をセル参照にしておくと、月次レポートでも使い回しやすくなります。なお、指定件数が元データの行数や列数以上になると壊れやすいので、入力値の上限は決めておくのが安全です。

「位置」ではなく「条件」で取りたいなら FILTER の方がいい

本当にやりたいことが「先頭を落とす」ではなく、「空白行を除外する」「特定の商品だけ残す」なら、DROP/TAKEの再現より FILTER の方が式が短く、保守もしやすいです。FILTER は Excel 2021 でも使え、Microsoftの例でも単一条件・複数条件の抽出が案内されています。 (Microsoft サポート)

空白行を除外したいなら、たとえば次の式です。

=FILTER(A2:D100,A2:A100<>"","")

特定の条件で絞りたいなら、次のように使えます。

=FILTER(A2:D100,C2:C100="東京","")

「見出し行を捨てたい」と思っていても、実際には「空白以外だけ残したい」「特定条件の行だけ欲しい」ことは多いです。この場合、DROPの代替を考えるよりFILTERへ発想を切り替えた方が、あとで壊れにくくなります。

Excel 2019/2016や共有ファイルなら Power Query が堅実

Excel 2019/2016 まで含む混在環境では、Power Query が現実的です。Power Query関連のサポート記事は Excel 2021 / 2019 / 2016 を対象にしており、データを読み込んで整形したあと、シートへロードできます。さらに、整形後のクエリはあとから更新できるので、毎回同じ加工をやり直す手間も減らせます。 (Microsoft サポート)

やりたいことPower Query の操作
先頭 n 行を削除したいHome > Remove Rows > Remove Top Rows
末尾 n 行を削除したいHome > Remove Rows > Remove Bottom Rows
先頭 n 行だけ残したいHome > Keep Rows > Keep Top Rows
末尾 n 行だけ残したいHome > Keep Rows > Keep Bottom Rows
特定範囲だけ残したいHome > Keep Rows > Keep Range of Rows

Power Queryでは、読み込んだデータに対して Query > Edit で編集を開き、必要な整形をしたら Close & Load でシートへ戻す流れが基本です。Microsoftの案内でも、固定レイアウトのレポートから「先頭の見出し行を飛ばして途中のデータだけ残す」例が紹介されています。毎月ダウンロードするCSVや、見出し・注意書きが混ざる帳票にはとくに向いています。 (Microsoft サポート)

失敗しやすいポイント

  • CHOOSEROWS / CHOOSECOLS を代替だと思わないこと。これらも 2024 世代の関数なので、Excel 2021では一緒に使えません。 (Microsoft サポート)
  • A:A や 1:1 の全列・全行参照で済ませないこと。動的配列は結果が大きくなりすぎると #SPILL! になりやすいです。 (Microsoft サポート)
  • テーブル列の中で完結させようとしないこと。スピル数式はテーブル内でサポートされません。出力はテーブル外に置くのが基本です。 (Microsoft サポート)
  • .xls のまま共有し続けないこと。互換モードでは新機能が使えず、古い版と共存させるなら互換性チェックを先に通す方が安全です。 (Microsoft サポート)

迷ったらこの選び方で十分

状況向く方法
Microsoft 365 / Excel 2024 を使っているまず DROP / TAKE をそのまま使う
Excel 2021 で数式運用したいINDEX + SEQUENCE
Excel 2019 / 2016、または共有相手の版が混在しているPower Query
条件で行を残したいFILTER
テーブル中心で運用しているスピル式はテーブル外、テーブル内は従来のコピー式

ExcelでDROP/TAKE関数が使えないときは、最初に「その関数が未対応なのか」「対応版なのに配置やファイル形式で失敗しているのか」を切り分けるのが最短です。Excel 2021 / 2019 / 2016 なら代替策へ、Microsoft 365 / Excel 2024 なら更新・チャネル・互換モード・スピル範囲を確認してください。個人利用や2021環境なら INDEX+SEQUENCE、条件抽出なら FILTER、混在環境や定例整形なら Power Query を選ぶと、作り直しが少なくなります。 (Microsoft サポート)

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次