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

コメント