🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのTAKE・DROP関数 — 配列の端から行や列を切り出す

|

ExcelのTAKE・DROP関数 — 配列の端から行や列を切り出す

要点TAKE は配列のから行や列を残し、DROP はそれらを取り除きます。構文は =TAKE(配列, 行, [列])=DROP(配列, 行, [列])正の数は上/左から、負の数は 下/右から働きます:TAKE(データ, 5) は最初の5行、TAKE(データ, -5) は最後の5行、 DROP(データ, 1) は見出し行を外します。TAKESORT と 組めば、生きた「Top 10」が1つの数式に。Excel 365 / 2021 以降。

=TAKE(売上, 10)                      ' 最初の10行
=DROP(売上, 1)                       ' 見出し行を除く全部

「上位10件」や「見出し以外すべて」を出すのは、かつてはデータが変わると壊れる手作業の選択か、 INDEXLARGEROW の絡み合いでした。TAKEDROP は配列をその端から1つの引数で切り 出し、数式なので切り出しは生きたままです。

この記事でわかること

  • TAKE(N を残す)vs DROP(N を取り除く)——と正負の方向のコツ
  • TAKE(SORT(...)) による生きた Top 10
  • 積み重ねた表の見出し行を DROP で外す
  • 第3引数で行だけでなく列も切る
  • LARGE/SMALL/INDEX の曲芸を置き換える場面

考え方の軸:端からの切り出し

どちらも配列のから働き、真ん中からは決して働きません。TAKE は切り出しを残し、DROP は 捨てます——補完関係です。数の符号が端を選びます:正は上(左)から、負は下(右)から。この1つの ルールが「最初の N」「最後の N」「最初以外すべて」「最後以外すべて」を覆います。

=TAKE(データ, 3)     ' 最初の3行
=TAKE(データ, -3)    ' 最後の3行
=DROP(データ, 3)     ' 最初の3行より後すべて
=DROP(データ, -3)    ' 最後の3行を除く全部

すべての鍵となるルール:行が先、次に列、符号が端を選ぶ

第2引数は、省略可能な第3引数はです。第3を省くと行ごと切り、与えると列も切ります ——それぞれが自分の符号を取ります。

=TAKE(データ, 5, 2)  ' 最初の5行 かつ 最初の2列
=TAKE(データ, -5)    ' 最後の5行、全列
=DROP(データ, 0, -1) ' 全行、最後の列を外す(0行 = 行は切らない)

DROP(データ, 0, -1) は末尾の列を落とすきれいな書き方——0 行は「行は切らない」、-1 列は 「最後を外す」。行→列の順と符号のルールが入れば、どの端の切り出しも短い数式です。

生きた Top 10 — SORT を TAKE で囲む

この組み合わせが TAKE を不可欠にします。データを並べ替え、最初の N を取る——そして全体が データの変化で再実行されるので、ランキングは常に最新です。

=TAKE(SORT(売上, 3, -1), 10)         ' 最大の売上10件、生きている
=TAKE(SORT(売上, 3, -1), 10, 2)      ' 上位10件、かつ最初の2列だけ

LARGE + INDEX + MATCH も、作業列も、手動の並べ替え直しも不要。この1つの式が、いまだに フォーラムからコピーされる最も多い「ランキング」パターンを置き換えます。

積み重ねの見出しを外す

DROP は表を結合するときの VSTACK の相棒です。各ソースが見出し 行を持つので、最初以外を外すと結合した積み重ねがきれいに保たれます。

=VSTACK(Jan表, DROP(Feb表, 1), DROP(Mar表, 1))   ' 見出し1つ、全データ
=DROP(表全体, 1)                                 ' 見出しだけ外す

DROP(範囲, 1) は先頭行、DROP(範囲, -1) は下の合計行を外します。こうして見出しのないきれいな 配列を SUMFILTER・グラフに供給します。

判断:TAKE/DROP が旧来の曲芸を置き換えるとき

INDEX(SORT(...), SEQUENCE(10)) を書いたり、LARGEROW() と積んで上位 N を出している なら、やめましょう——TAKE(SORT(...), 10) は直接そう言い、1行で読めます。「1行目以外すべて」を 手で選んでいるなら、DROP(データ, 1) で生きたものに。正直な例外:TAKE/DROPからしか 切らないので、「真ん中の20〜40行」は今も FILTER(条件付き)か INDEX が要ります。端の切り出し とランキングなら TAKEDROP の勝ちです。

ExcelMaster の使いどころ

これらの依頼の多くは、要するに「上位いくつかを最新で見せて」か「見出し/合計行なしのデータを ちょうだい」です。ExcelMaster は生きたランキング用の TAKE(SORT(...))VSTACK の見出しを外す DROP を、上か下かの正しい符号と行→列の 順で書きます——すべて日本語の指示から。「売上の上位10件」と言えば、切り出しを組み立てます。

よくある質問

Excelで数式で上位N行を取得するには?

並べ替えてから取ります:=TAKE(SORT(データ, 3, -1), 10) は3列目が最大の10行を返し、データが 変わると更新されます。

数式で見出し行を取り除くには?

=DROP(データ, 1) を使います——1行目を外し、その下をすべてスピルします。下の合計行を外すなら =DROP(データ, -1)

TAKEとDROPの違いは?

TAKE は端から指定した行/列を残し、DROP はそれらを取り除きます。TAKE(データ, 5) は最初の 5行、DROP(データ, 5) は最初の5行を除く全部です。

TAKEで正と負の数はどう働く?

正の数は上(左)から、負の数は下(右)から。TAKE(データ, -5) は最後の5行を返し、 DROP(データ, -1) は最後の行を外します。

TAKEとDROPはExcel 2016や2019で使える?

使えません。TAKEDROP は Excel 365 / 2021 以降が必要です。旧版では INDEXLARGE/SMALL、または作業列を使います。

検証環境

検証環境: Excel 365(Windows 11)— 最終確認 2026-06-17。

関連ガイド: ExcelのSEQUENCE関数 · ExcelのVSTACK・HSTACK関数 · ExcelのSORT関数 · ExcelのFILTER関数