DROP関数の使い方|先頭・末尾を削除するExcel配列関数

スポンサーリンク

DROP関数って知っていますか?配列の「いらない行」をサクッと消せる関数です。

FILTERやSORT関数の結果にヘッダー行が残ってしまう。手動で消すのも面倒だし、行が増えるたびに調整するのも現実的じゃないですよね。こういう小さなストレスを放置すると、数式がどんどん複雑になっていきます。

この記事では、DROP関数の基本的な使い方から実務での活用パターンまでまとめて解説します。先頭行の削除、末尾行の削除、列方向の削除まで、具体的な数式とあわせて紹介するので、ぜひ参考にしてください。

この記事は次のような人におすすめ

  • DROP関数の引数や構文を知りたい
  • FILTER結果のヘッダー行を削除したい
  • DROP・TAKE・EXPANDの違いを整理したい

「Excel関数ってなに?」「よくわからないな」という方は、こちらの記事を先に読んでおくとわかりやすいですよ。

DROP関数とは?先頭・末尾を削除する動的配列関数

DROP関数の読み方

読み方は「ドロップ関数」です。英語の「Drop(落とす・除外する)」が由来です。

DROP関数では何ができるの?

DROP関数は、配列やセル範囲から先頭または末尾の行・列を削除して、残りのデータを返す関数です。

たとえば10行のデータがあるとき、「先頭2行を除いた残り8行」を取り出す、といった操作がたった1つの数式でできます。動的配列関数なので、元データが増えても結果が自動で更新されるのがポイントです。

従来のExcelでは、OFFSET関数やINDEX関数を組み合わせて行の除外を行っていました。DROP関数を使えば、こうした複雑な数式がシンプルになります。

DROP関数が使える環境

DROP関数が使えるのは以下の環境です。

  • Microsoft 365(Windows / Mac)
  • Excel for the web(Web版Excel)

買い切り版のExcel 2021やExcel 2019では使えません。数式を入力すると #NAME? エラーになるので注意してください。

TAKE・EXPANDと並ぶ配列操作関数の一つ

DROP関数は、2022年にMicrosoft 365へ追加された配列操作関数グループの一つです。同じタイミングで追加された関数として、以下の2つがあります。

  • TAKE関数: 配列から先頭・末尾のN行(N列)を取り出す
  • EXPAND関数: 配列のサイズを指定した行数・列数に拡大する

DROPは「削除して残りを返す」、TAKEは「指定した分だけ取り出す」、EXPANDは「足りない分を埋めて広げる」。それぞれ役割がちがうので、場面に応じて使い分けるのがコツです。使い分けの詳細は記事の後半で紹介します。

DROP関数の使い方(構文と引数の詳細)

基本構文

DROP関数の構文は次のとおりです。

=DROP(配列, 行数, [列数])
引数必須/省略可説明
配列必須削除対象のセル範囲または配列
行数必須削除する行数。正の数で先頭から、負の数で末尾から削除
列数省略可削除する列数。正の数で左から、負の数で右から削除

第1引数に対象の配列を指定し、第2引数で削除する行数を指定します。第3引数の列数は省略できます。

行数に正の数を入れると先頭から削除・負の数で末尾から削除

DROP関数の動きを決めるのは、第2引数の符号(正・負)です。

  • 正の数(例: 2)→ 先頭から2行を削除し、残りを返す
  • 負の数(例: -2)→ 末尾から2行を削除し、残りを返す
  • 0 → 行方向の削除をスキップ(列だけ削除したいときに使う)

たとえばA2:D10の9行データがあるとします。=DROP(A2:D10, 3) と書けば、先頭3行が削除されて4行目以降の6行が返ります。

=DROP(A2:D10, -3) なら末尾3行が消えて、先頭6行が返ります。符号を変えるだけで削除方向が切り替わるので、覚えやすいですよね。

第3引数で列方向の削除もできる

第3引数(列数)を指定すると、列方向の削除もできます。

=DROP(A2:E10, 0, 1)

この数式では、行方向の削除を0(スキップ)にして、左から1列だけ削除しています。たとえばA列がID番号の列で不要な場合、この書き方でA列を除いたB〜E列のデータだけ取り出せます。

行と列を同時に削除することもできます。

=DROP(A1:E10, 1, 1)

これは「先頭1行」と「左1列」を同時に削除します。ヘッダー行とID列をまとめて除去したいときに便利です。

DROP関数の基本的な使用例

先頭N行を削除する

もっとも基本的な使い方です。たとえばA1:C6のデータから先頭2行を除きたい場合は、次のように書きます。

=DROP(A1:C6, 2)

先頭の2行が削除され、3行目以降のデータが返ります。ヘッダー行を1行だけ除きたいなら =DROP(A1:C6, 1) でOKです。

末尾N行を削除する(負の数を使う)

末尾から削除するには、第2引数に負の数を指定します。

=DROP(A2:D11, -1)

たとえば集計表の最終行に合計行がある場合、この数式で合計行を除いたデータ部分だけを取り出せます。

先頭N列・末尾N列を削除する(第3引数)

列方向だけ削除したいときは、行数を0にして第3引数を指定します。

=DROP(A2:F20, 0, 2)

左から2列を削除して、3列目以降を返します。右から削除したい場合は負の数を使います。

=DROP(A2:F20, 0, -1)

これで右端の1列が削除されます。

DROP関数の実務活用例

基本を押さえたところで、実務でよく使うパターンを紹介します。

FILTER結果からヘッダー行を除去する

FILTER関数の結果にヘッダー行が含まれてしまうケースがあります。たとえば列全体を対象にフィルターをかけたとき、見出し行まで結果に入ってしまうことがありますよね。

こんなとき、DROPで先頭1行を除去すれば解決します。

=DROP(FILTER(A:C, B:B="東京"), 1)

FILTER関数の結果をそのままDROPに渡しているだけなので、数式もシンプルです。

集計行(合計行)を除いてデータだけ取り出す

テーブルの最終行に合計や平均の集計行がある場合、データ部分だけ取り出したいことがあります。

=DROP(A2:D11, -1)

末尾1行を削除するだけで、集計行を除いた純粋なデータが手に入ります。SORT関数UNIQUE関数に渡す前処理として使うと、集計行が混ざる事故を防げます。

直近N件を除いた過去データを抽出する

売上データを日付の新しい順に並べ替え、直近3件を除いた残りを取り出したい場面があります。SORTとDROPを組み合わせます。

=DROP(SORT(A2:B20, 1, -1), 3)

SORT関数で日付の降順に並べ替えたあと、DROPで先頭3行(=直近3件)を削除しています。ちょっとむずかしく見えますが、「並べ替えてから先頭を切る」という2ステップで考えるとわかりやすいです。

応用として、TAKEとDROPを組み合わせれば「中間のレコードだけ」を取り出すこともできます。

=TAKE(DROP(A2:A100, 10), 10)

先頭10行を削除したあと、そこから10行だけ取り出す。つまり11行目〜20行目が返ります。

DROP・TAKE・EXPANDの使い分け

3関数の役割比較表

関数役割配列サイズの変化
DROP指定した行・列を削除して残りを返す小さくなる
TAKE指定した行・列を取り出して返す小さくなる
EXPAND配列を指定サイズに拡大する大きくなる

DROPとTAKEは「配列を縮小する」という点では同じですが、アプローチが逆です。

  • DROP(A1:A10, 2) → 先頭2行を捨てて、3〜10行目を返す
  • TAKE(A1:A10, 2) → 先頭2行を取り出して返す

どちらを使っても同じ結果が得られるケースはありますが、「不要な部分を消す」のか「必要な部分を取る」のか、意図が明確になる方を選ぶと数式が読みやすくなります。

場面別おすすめの選び方

  • ヘッダー行の除去 → DROP(「1行消す」がストレートに伝わる)
  • 上位N件だけ取得 → TAKE(「N件取る」が直感的)
  • 中間レコードの抽出 → DROP + TAKE の組み合わせ
  • 配列サイズを揃えたい → EXPAND(不足分を埋めて整形)
  • ヘッダー除去→サイズ揃え → DROP → EXPAND の組み合わせ

迷ったときは「自分がやりたい操作はどっち?消す?取る?」と考えてみてください。

DROP関数のエラーと対処法

#CALC!エラーが出るケース

DROP関数で最もよく遭遇するのが #CALC! エラーです。これは、削除する行数が配列の行数以上になったときに発生します。

たとえば5行しかないデータに対して =DROP(A1:A5, 5) と書くと、全行が削除されて結果が空になります。Excelは空の配列を返せないため、#CALC! エラーになります。

対処法としては、削除前に行数を確認する方法が確実です。

=IF(ROWS(A1:A10)>N, DROP(A1:A10, N), A1:A10)

ROWS関数で行数を取得し、削除行数Nより大きい場合だけDROPを実行します。行数が足りない場合は元の配列をそのまま返すので、エラーを回避できます。

もっとシンプルに処理したい場合は、IFERRORで囲む方法もあります。

=IFERROR(DROP(A1:A10, N), A1:A10)

ただし、IFERRORは他のエラーもまとめて隠してしまうので、原因の特定がしにくくなる点には注意してください。

その他のエラー(#VALUE! / #SPILL! / #NAME?)

エラー原因対処法
#VALUE!行数・列数に数値以外(文字列など)を指定した引数が数値になっているか確認する
#SPILL!数式の出力先に既存のデータがある出力先のセルを空にする
#NAME?Microsoft 365以外のバージョンで使用したMicrosoft 365環境で開き直す

#SPILL! エラーは動的配列関数に共通のエラーです。DROP関数の結果が展開される先のセルに何かデータが入っていると発生します。出力先を空けるか、数式の配置を見直してみてください。

まとめ

DROP関数は、配列から不要な行・列を削除するシンプルな関数です。

  • 正の数で先頭から削除、負の数で末尾から削除
  • 第3引数で列方向の削除もできる
  • FILTER関数のヘッダー除去や集計行の除外など、実務で使える場面が多い
  • TAKEとは「消す vs 取る」の関係。意図が伝わりやすい方を選ぶ

配列操作関数を使いこなすと、Excelの数式がぐっとシンプルになります。まずはヘッダー行の除去あたりから、実際のシートで試してみてください。

biz-tacticsではExcel関数の一覧を公開しています。他の関数も知りたい方はぜひ参考にしてください。

関数一覧

biz-tacticsではExcel関数の一覧を3パターンご用意しています。
用途に合わせてお使いください。

各一覧の文字色が青くなっている関数はクリックすると解説ページを開くことができます。

エラー値についてのまとめ記事

関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。

【Excel】セルに表示されるエラーの種類と原因、対処方法を解説

タイトルとURLをコピーしました