エクセル入門
DROP関数(配列の先頭/末尾から指定行/列数を除外)

Excelの初心者向け入門解説
最終更新日:2022-11-21

DROP関数(配列の先頭/末尾から指定行/列数を除外)


DROP関数はOffice365のExcelに2022年になってから追加された新しい関数です。


DROP関数は、配列(またはセル範囲)の先頭または末尾から、指定した行数または列数を除外した配列(またはセル範囲)を返します。
指定部分を除外するのではなく、指定部分を取得する場合はTAKE関数を使用します。
TAKE関数は、配列(またはセル範囲)の先頭または末尾から、連続した指定の行数または列数の配列(またはセル範囲)を返します。指定部分を取得するのではなく、指定部分を除外する場合はDROP関数を使用します。TAKE関数の構文 =TAKE(配列,列,[行]) 引数「行」は必須になりますので、値を指定しなくても,


DROP関数の構文

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

配列 セル範囲まは配列(1次元または2次元)を指定します。
必須です。
除外する行の数。
正の値は配列の先頭(上)行から除外されます。
負の値は配列の末尾(下)行から除外されます。
省略または0を指定した場合はいずれの行も除外されません。
除外する列の数。
正の値は配列の先頭(左)列から除外されます。
負の値は配列の末尾(右)列から除外されます。
省略または0を指定した場合はいずれの列も除外されません。

引数「行」は必須になりますので、値を指定しなくても,カンマが最低1つは必要になります。

引数「配列」がセル範囲の場合、DROP関数は結果をセル範囲で返します。
つまりDROP関数は、セル範囲から指定した範囲を除外したセル範囲を返します。

DROP関数は以下の場合は #CALC エラーを返します。
行の指定が配列の行数以上の場合は #CALC エラーを返します。
列の指定が配列の列数以上の場合は #CALC エラーを返します。

Microsoft「Office のサポート DROP関数」の記載について
「配列が大きすぎる場合、Excel は#NUMを返します。」
このように書かれていますが、
大きな配列を扱おうとすると、リソース不足が出てしまうので、
#NUMエラーの発生は確認できていません。

Excel エクセル DROP関数 新関数


DROP関数の使用例と解説

以下のサンプルでは、DROPしている箇所が分かり易いように連続数値データにしています。
文字列データや例えエラー値でもDROP関数の動作は同じです。

先頭(上)の2行を除外する

=DROP(A1:C10,2)
Excel エクセル DROP関数 新関数

DROP関数はセル範囲A1:C10を受け取り、
引数「行」に指定された先頭(上)2行を除外し、3行目以降のセル範囲を返します。
引数「列」は省略されているので全列が返されます。

末尾(右)の1列を除外する

=DROP(A1:C10,,-1)
Excel エクセル DROP関数 新関数

DROP関数はセル範囲A1:C10を受け取り、
引数「列」に指定された末尾(右)1列(つまりC列)を除外したセル範囲を返します。
引数「行」は省略されているので全行が返されます。

末尾(下)の2行と先頭(左)の1列を除外する

=DROP(A1:C10,-2,1)
Excel エクセル DROP関数 新関数

DROP関数はセル範囲A1:C10を受け取り、
引数「行」に指定された末尾(下)2行と「列」に指定された先頭(左)1列を除外したセル範囲を返します。

配列に対してDROP関数を使う

=DROP(SEQUENCE(10,3),-2,-1)
Excel エクセル DROP関数 新関数

DROP関数は配列を受け取り、
引数「行」に指定された先頭(上)2行と「列」に指定された先頭(左)1列を除外した配列を返します。

行の指定が配列の行数以上の場合は #CALC エラー

=DROP(A1:C5,5)
Excel エクセル DROP関数 新関数

行の指定が配列の行数以上の場合は #CALC エラーを返します。
列の指定が配列の列数以上の場合は #CALC エラーを返します。

セル範囲に対するDROPは、OFFSET関数に書き換えることができます

=DROP(A1:C10,2,1)

=OFFSET(A1:C10,2,1,8,2)
エクセル Excel サンプル画像

DROPからOFFSETへの書き換えは行数列数から一般式に出来そうですが、
負数まで考慮すると式が複雑になります。


LAMBDA以降の新関数の問題集 ・・・ 解答は別ページになっています。

・目次 ・LAMBDA踊るぞ編 ・LAMBDA踊るぞ編2 ・SCAN編 ・MAP編 ・REDUCE編 ・山手線営業の旅編 ・BYROW,BYCOL編 ・ここからはフリー問題だよ編 ・好きな関数を使ってくれ編 ・いろんな関数を使ってね編 ・魔球編 ・豚が木に登れば落ちることもある編 ・たまには100点とってみたいものだ編 ・これは何と言う処理なんだろ編 ・数字は嫌いなのだ編 ・外堀から埋めていくぞ編 ・なぜわざわざそうしたいのか編 ・かっこつけてんじゃないよ編 ・頭の体操だけど新関数の出番はあるか?編 ・定番だけど出してなかったよね編
LAMBDA以降の新関数の使用例
・2つの1次元配列から、それをクロス結合した結果を返す ・A列が同じ行のB列の値を連結して、A列の一意な値とともに出力 ・名前定義を使わずにLAMBDA関数で再帰する方法 ・文字列を大文字小文字変換して大小文字の全組み合わせを出力 ・2つのテーブルの片方しかない行を縦に連結出力 ・3連単、3連複のフォーメーション買目を全て列挙する ・FILTER関数の出力行数・列数を指定する ・月が縦で日が横の表を、曜日(7列)で縦に折り返す ・文字列内の括弧()()の中の文字を取り出して列挙 ・表内にあるセル内改行を複数行に展開 ・文字列の中から1文字削除の全パターン出力 ・クロスABC分析 ・月利が毎月変動する月複利の計算 ・レーベンシュタイン距離 ・文字列を数字と数字以外で分割 ・縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS) ・直積(クロス結合、…




同じテーマ「エクセル入門」の記事

CHOOSECOLS関数(配列から複数の指定された列を返す)
TOCOL関数(配列を縦1列の配列にして返す)
TOROW関数(配列を横1行の配列にして返す)
DROP関数(配列の先頭/末尾から指定行/列数を除外)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)
EXPAND関数(配列を指定された行と列に拡張する)
WRAPROWS関数(1次元配列を指定数の行で折り返す)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)


新着記事NEW ・・・新着記事一覧を見る

シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)
シート関数のCOUNTIFS,SUMIFS,MAXIFSと同じ処理|Power Query(M言語)入門(2023-02-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ