« [Excel] シートの書式をコピーする方法 | トップページ | [Excel] マクロのステップ実行操作 »

[Excel] 二次元データの最小値(or 最大値)のセルを探索する(2次元探索)

目的:マクロを使用せずに、二次元データの最小値を探し、そのアドレスを求める

 

背景:MATCH関数が常套手段だが、探索は列内(or 行内)の1次元に限られる

 

方法:以下の配列数式を入力し、Control + Shift + Enter

 

■行列アドレス:例えば、$C$2 が得られる
=ADDRESS(SUM(IF(領域=最小値,ROW(領域))),SUM(IF(領域=最小値,COLUMN(領域))))

 

■行番号:例えば、2 が得られる
=SUM(IF(領域=最小値,ROW(領域)))

 

■列番号:例えば、3 が得られる
=SUM(IF(領域=最小値,COLUMN(領域)))

 

備考:
1)上記の「最小値」を min(領域) に変更可
2)領域は、A1:E5 のような表現
3)SUM関数は、複数の条件に基づく集計用に使用されている
  すなわち、IF()がTRUEになった時の数値(ここでは、行列番号)が合計される
4)SUMPRODUCT関数も同じ目的で使用される

 

関連記事:
[Excel] 一覧表から特定の言葉を含む行を検索して、その前後数行を抽出する
http://kenkitagawa.cocolog-nifty.com/blog/2013/06/excel-e589.html

[2019/5/17] 最大値が複数個あると、sumで複数個の和になってしまい、正しい結果が得られない。

対応策:countif関数で最大値個数を求め、sumを割る(平均位置になる)

 

| |

« [Excel] シートの書式をコピーする方法 | トップページ | [Excel] マクロのステップ実行操作 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: [Excel] 二次元データの最小値(or 最大値)のセルを探索する(2次元探索):

« [Excel] シートの書式をコピーする方法 | トップページ | [Excel] マクロのステップ実行操作 »