データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
| [A] | [B] | [C] | [D] | [E] | [F] | [G] | [H] | [I] | [J] | [K] | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| [1] | 1年 | 2年 | 3年 | 4年 | 5年 | 6年 | 7年 | 8年 | 9年 | 10年 | |
| [2] | 1年 | 60 | 58 | 95 | 89 | 69 | 58 | 55 | 45 | 60 | 58 |
| [3] | 2年 | 58 | 54 | 58 | 54 | 75 | 60 | 95 | 74 | 58 | |
| [4] | 3年 | 75 | 75 | 47 | 78 | 32 | 69 | 68 | 65 |
| [5] | 4年 | 55 | 95 | 68 | 74 | 80 | 89 | 74 | | [6] | 5年 | 32 | 45 | 39 | 68 | 40 | 95 | | [7] | 6年 | 89 | 54 | 78 | 74 | 68 | | [8] | 7年 | 78 | 48 | 70 | 68 | | [9] | 8年 | 45 | 68 | 33 | | [10] | 9年 | 66 | 25 | | [11] | 10年 | 80 | | [12] | | | | | | | | | | | | | [13] | 年 | 最少 | | [14] | 1 | 60 | | [15] | 2 | 58 | | [16] | 3 | 54 | | [17] | 4 | 55 | | [18] | 5 | 32 | | [19] | 6 | 45 | | [20] | 7 | 32 | | [21] | 8 | 45 | | [22] | 9 | 40 | | [23] | 10 | 25 | | | | | | | | | |
>INDEX関数の使い方がイマイチよくわからないため *10^5 のべき算にいたっては
>チンプンカンプンで、実際の表の行列が変わったところにどのように当てはめていいのか
◆すぐに実際の表にあてはめようとせず、回答のとおり再現してみてください
1)回答と同じ表を同じセル位置に作成・入力してください
2)A14からA23に数字の「1」から「10」を入力してください
3)B14=MIN(INDEX((ROW($1:$10)+COLUMN($A:$J)<>A14+1)*10^5+$B$2:$K$11,)) と入力して、下にコピーしてください
◆黄色の部分の「5年」で説明しましょう
4)セルB18を指定してください、
5)すると数式バーに「=MIN(INDEX((ROW($1:$10)+COLUMN($A:$J)<>A18+1)*10^5+$B$2:$K$11,))」と表示されるはずです
6)数式バーの式のうち、 ROW($1:$10) と指定して、「F9」をクリックしてください
7){1;2;3;4;5;6;7;8;9;10} になり、この行列は、1行、2行、3行・・・10行をさしています
8)次に、 COLUMN($A:$J) を指定して、「F9」
9){1,2,3,4,5,6,7,8,9,10} になり、この行列は、1列、2列・・・10列をさしています
10)今度は、 ROW($1:$10)+COLUMN($A:$J) を指定して、「F9」
11){2,3,4,5,6,7,8,9,10,11;3,4,5,6,7,8,9,10,11,12;4,5,6,7,8,9,10,・・・・・18,19;11,12,13,14,15,16,17,18,19,20} となり
12)1行目+1列目(2)、1行目+2列目(3)、1行目+3列目(4)、・・・・1行目+10列目(11)、2行目+1列目(3)、2行目+2列目(4)・・・10行目+10列目(20) になっています
13)このように、何行目+何列目を足したものが、「5年目」の場合5+1と異なる場合*10^5(100000)します
14)これに、$B$2:$K$11 を足すと、黄色の数字以外は100000+その数字が、黄色の部分は、0+その数字=黄色い数字になります
15)それのMINは、「32」になります
16)「*10^5 のべき算にいたってはチンプンカンプン」は、該当箇所以外を除外するための方法です
17)式から、INDEXを除いて、=MIN((ROW($1:$10)+COLUMN($A:$J)<>B51+1)*10^5+$B$2:$K$11) にして見ましょう、「#VALUE!」になります
18)=MIN((ROW($1:$10)+COLUMN($A:$J)<>B51+1)*10^5+$B$2:$K$11) 数式バーの全部を指定して、「F9」を押すと
19)「32」が表示されます、INDEXを入れた、=MIN(INDEX((ROW($1:$10)+COLUMN($A:$J)<>A14+1)*10^5+$B$2:$K$11,))だと「32」がそのまま表示されます
20)INDEX関数は、「配列式」を顕在化する働きがあるようです
◆配列数式について
1)=MIN(IF(ROW($1:$10)+COLUMN($A:$J)=B51+1,$B$2:$K$11,100)) として、一番最後の「100」はデータ数値の最大値より大きな数値であれば何でもいいです
2)この式は「配列数式」です。式を入力後、CtrlとShiftを押しながらEnterを押して式を確定させてください
3)式が確定すれば、式の両端に、{ }がつきます
※参考URL◆「配列数式」について、わかりやすく説明されています
「“達人”芳坂和行氏に学ぶ、エクセル(Excel)「配列数式」講座」
http://pc.nikkeibp.co.jp/pc21/special/hr/
★配列数式は質問者の方が、「CtrlとShiftを押しながらEnterを押す」事をしないことが多いので、「Enter」のみでよいINDEX入りの回答にしました
◆配列数式は、便利な方法です
◆しかし、多用すると計算時間がかかることになります
◆maronは会社では、INDEX入り配列数式は限定して使用しています