スプレッドシートのDROP関数の使い方|行列を削除

スポンサーリンク

スプレッドシートで表を加工するとき、先頭のヘッダー行や末尾の合計行を除外したいことってありますよね。手作業で削除すると元データまで消えてしまうし、毎回範囲を調整するのも面倒です。

DROP関数を使えば、配列の先頭や末尾から指定した数の行・列を削除して、残りのデータだけを取り出せます。元データはそのまま残るので安心です。

この記事では、DROP関数の基本的な使い方から、FILTER関数との組み合わせ、TAKE関数との違いまでわかりやすく解説します。

スプレッドシートのDROP関数とは?

DROP関数(読み方: ドロップ関数)は、配列やセル範囲から先頭または末尾の行・列を削除して、残りのデータを返す関数です。「Drop(落とす・除外する)」が名前の由来です。

たとえば、10行のデータから先頭2行を削除して残り8行だけを取り出すことができます。元データと数式でつながっているため、元データが更新されれば結果も自動で反映されますよ。

DROP関数にできることをまとめると、次のとおりです。

  • 配列の先頭からN行を削除する(正の数を指定)
  • 配列の末尾からN行を削除する(負の数を指定)
  • 列方向の削除もできる(第3引数を使用)
  • 行と列を同時に削除することもできる

NOTE

DROP関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2021以前のバージョンでは使えません。

DROP関数の基本構文

=DROP(配列, 行数, [列数])

カッコの中に、対象の範囲と削除する行数・列数を指定します。

引数必須/任意説明
配列必須削除対象のセル範囲または配列
行数必須削除する行数。正の数で先頭から、負の数で末尾から削除
列数任意削除する列数。正の数で左から、負の数で右から削除

第2引数(行数)の符号で削除方向が決まります。正の数なら先頭から、負の数なら末尾から削除します。第3引数(列数)も同じルールです。行の削除をスキップして列だけ削除したい場合は、行数に0を指定してくださいね。

DROP関数の基本的な使い方

ここでは、売上データからDROP関数で行や列を削除する例を紹介します。

サンプルデータ

A1:D7に以下のデータが入っているとします。

 ABCD
1日付担当者商品売上
24/1佐藤商品A50,000
34/2田中商品B30,000
44/3鈴木商品C45,000
54/4高橋商品A60,000
64/5伊藤商品B35,000
74/6佐藤商品C55,000

先頭の行を削除する

ヘッダー行(1行目)を削除して、データ部分だけを取り出します。出力先のセル(たとえばF1)に以下の数式を入力して、Enterを押します。

=DROP(A1:D7, 1)
 FGHI
14/1佐藤商品A50,000
24/2田中商品B30,000
34/3鈴木商品C45,000
44/4高橋商品A60,000
54/5伊藤商品B35,000
64/6佐藤商品C55,000

第2引数に「1」を指定したので、先頭1行(ヘッダー行)が削除され、データ部分だけが出力されました。「2」にすれば先頭2行が削除されます。

末尾の行を削除する

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

=DROP(A1:D7, -2)
 FGHI
1日付担当者商品売上
24/1佐藤商品A50,000
34/2田中商品B30,000
44/3鈴木商品C45,000
54/4高橋商品A60,000

「-2」を指定したので、末尾2行(5行目・6行目のデータ)が削除されました。合計行や集計行を除外したいときに便利ですよ。

列を削除する

列方向の削除には第3引数を使います。行の削除をスキップするには、行数に0を指定します。

=DROP(A1:D7, 0, 1)
 FGH
1担当者商品売上
2佐藤商品A50,000
3田中商品B30,000
4鈴木商品C45,000
5高橋商品A60,000
6伊藤商品B35,000
7佐藤商品C55,000

行数を0にして列数を1に指定したので、左端1列(日付列)だけが削除されました。右端から削除したい場合は「-1」のように負の数を使います。

行と列を同時に削除する

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

=DROP(A1:D7, 1, 1)

先頭1行(ヘッダー)と左端1列(日付)を同時に削除します。ヘッダーと不要な列をまとめて除去したいときに、1つの数式で済むので効率的ですよ。

DROP関数の実務活用パターン

パターン1: FILTER結果からヘッダー行を除去する

FILTER関数で列全体を対象にフィルターをかけると、ヘッダー行まで結果に含まれてしまうことがあります。DROP関数で先頭1行を除去しましょう。

=DROP(FILTER(A:D, C:C="商品A"), 1)

FILTER関数の結果をそのままDROPに渡して、先頭1行(ヘッダー)を削除しています。数式もシンプルで読みやすいですよね。

パターン2: 集計行を除いてデータだけ取り出す

表の最終行に合計行がある場合、データ部分だけを取り出せます。

=DROP(A2:D8, -1)

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

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

売上データを日付の新しい順に並べ替えて、直近3件を除いた残りを取り出します。

=DROP(SORT(A2:D20, 1, FALSE), 3)

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

パターン4: DROP + TAKEで中間のデータだけ抽出する

先頭と末尾の両方を除外して、中間部分だけを取り出すことができます。

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

先頭10行を削除したあと、そこから10行だけ取り出します。つまり11行目から20行目が返ります。ページネーションのように特定範囲のデータを取り出したいときに便利ですよ。

パターン5: VSTACK結合後にヘッダーの重複を除去する

VSTACK関数で複数の表を縦に結合すると、2つ目以降のヘッダーが重複することがあります。

=VSTACK(Sheet1!A1:D4, DROP(Sheet2!A1:D4, 1))

2つ目の表をDROPでヘッダー除去してからVSTACKに渡しています。結合前にヘッダーを落とすことで、きれいな一覧表が完成しますよ。

TAKE関数との違い・使い分け

DROP関数には、ペアとなるTAKE関数があります。どちらも配列のサイズを縮小する関数ですが、アプローチが正反対です。

比較項目DROP関数TAKE関数
動作指定した行・列を削除して残りを返す指定した行・列を取り出して返す
構文=DROP(配列, 行数, [列数])=TAKE(配列, 行数, [列数])
引数の構造完全に同じ完全に同じ
正の数の意味先頭から削除先頭から取得
負の数の意味末尾から削除末尾から取得
結果指定した部分を除いた残り指定した部分だけ

同じデータに対して、DROPとTAKEの結果を比べてみましょう。

=DROP(A1:A10, 3)   → 4行目〜10行目が返る(先頭3行を削除)
=TAKE(A1:A10, 3)   → 1行目〜3行目が返る(先頭3行を取得)

DROPが返す部分とTAKEが返す部分は、ちょうど補い合う関係です。元の配列をDROPの結果とTAKEの結果に分割しているイメージですね。

使い分けの目安は次のとおりです。

  • ヘッダー行や合計行を除外したい → DROP関数(「不要な行を消す」が直感的)
  • 上位N件だけ取り出したい → TAKE関数(「N件取る」が直感的)
  • 中間レコードの抽出 → DROP + TAKEの組み合わせ

迷ったときは「自分がやりたい操作は消す?取る?」と考えてみてください。意図が伝わりやすい方を選ぶと、数式が読みやすくなりますよ。

よくあるエラーと対処法

DROP関数はシンプルですが、削除する行数の指定を間違えるとエラーになります。

エラー原因対処法
#CALC!削除する行数が配列の行数以上になった削除行数を配列の行数より小さくしてください
#VALUE!行数・列数に数値以外(文字列など)を指定した引数が数値になっているか確認してください
#REF!出力先のセルに既にデータがある出力先の範囲を空にしてください
#NAME?関数名のスペルミス「DROP」のスペルを確認してください

特に注意したいのが #CALC! エラーです。たとえば5行しかないデータに =DROP(A1:A5, 5) と指定すると、全行が削除されて結果が空になるためエラーが発生します。

削除前に行数を確認する方法で回避できます。

=IF(ROWS(A1:D10)>1, DROP(A1:D10, 1), A1:D10)

ROWS関数で行数を取得し、削除しても行が残る場合だけDROPを実行しています。

TIP

IFERRORで囲む方法もありますが、他のエラーまで隠してしまう点に注意してください。原因を特定しやすくするには、IF+ROWSの組み合わせがおすすめです。

まとめ

DROP関数は、配列から不要な行・列を削除して残りのデータを返す関数です。正の数で先頭から、負の数で末尾から削除できるシンプルな仕組みです。

この記事のポイントをおさらいしておきましょう。

  • DROP関数は =DROP(配列, 行数) で、先頭または末尾の行を削除する
  • 正の数で先頭から削除、負の数で末尾から削除。符号を変えるだけで方向が切り替わる
  • 第3引数を指定すれば、列方向の削除や行と列の同時削除もできる
  • FILTER関数のヘッダー除去や集計行の除外など、前処理として活躍する
  • TAKE関数はペア関数で、「削除して残す」のがDROP、「指定した分だけ取り出す」のがTAKE
  • 削除行数が配列の行数以上になると #CALC! エラー。ROWS関数で事前チェックすると安全

まずは =DROP(A1:D10, 1) のヘッダー行削除から試してみてください。FILTER関数SORT関数と組み合わせれば、データの前処理がグッと効率的になりますよ。


この記事で紹介した関数・関連記事

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