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パターンご用意しています。
用途に合わせてお使いください。
各一覧の文字色が青くなっている関数はクリックすると解説ページを開くことができます。
エラー値についてのまとめ記事
関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。
