• ベストアンサー

Excel データの最大値と2番目の項目名を表示させたい

例えば、 氏名 項目1 項目2 項目3 A   150  800  200 B   200  540  620 C   190  300  860 のようなデータがありAさんの行のデータの最大値の項目名を表示させたいのです。この場合だとAさんのデータの最大値は800なので項目2、2番目は200なので項目3と個人別で他のセルに表示させたいのですが。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#4です。補足に対して 氏名 項目1 項目2 項目3 一番 二番 A 150 800 200 項目2 項目3 B 200 540 620 項目3 項目2 C 190 300 860 項目3 項目2 D 670 450 290 項目1 項目2 G2に=VLOOKUP("氏名",$A$1:$D$1,MATCH(LARGE(B2:D2,2),B2:D2,0)+1,FALSE) と入れてG5まで式を複写すると、上記のようになりましたが。

prima_u
質問者

補足

imogasiさん、ありがとうございます。できました!! どんどん状況が入り組んできてしまいまして・・・ データにマイナスの数値が入っていた場合、 絶対値での最大値など出せますか? ABS関数?を使って絶対値にして 教えていただいた式を使用すればよいでしょうか? 宜しくお願いします。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

例データ A1:D5+F2:F5(式の結果)に 氏名 項目1 項目2 項目3 A 150 800 200 項目2 B 200 540 620 項目3 C 190 300 860 項目3 D 670 450 290 項目1 F2に=VLOOKUP("氏名",$A$1:$D$1,MATCH(MAX(B2:D2),B2:D2,0)+1,FALSE) と入れてF5まで式を複写する。結果上記の通り。 第2番目はMAXのところを、LARGE(B2:D2,2)に置き換えてください。”氏名”は、本番の実際の見出し(左上隅)で置き換えてください。

prima_u
質問者

補足

ありがとうございます!!今試しているのですが、LARGE関数の方がうまくいきません。引数が少なすぎるとでてしまうのですが。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.3

    A  B   C   D   E  F 1  氏名  項目1 項目2 項目3    2   A  150  800  200   あ  ア 3   B  200  540  620   い  イ 4   C  190  300  860   う  ウ ↑ 行 上図の様に設定したとき、 あ のセル数式は→ =INDEX($B$1:$D$1,,MATCH(LARGE(B2:D2,1),B2:D2,0)) い のセル数式は→ =INDEX($B$1:$D$1,,MATCH(LARGE(B3:D3,1),B3:D3,0)) う のセル数式は→ =INDEX($B$1:$D$1,,MATCH(LARGE(B4:D4,1),B4:D4,0)) ア のセル数式は→ =INDEX($B$1:$D$1,,MATCH(LARGE(B2:D2,2),B2:D2,0)) イ のセル数式は→ =INDEX($B$1:$D$1,,MATCH(LARGE(B3:D3,2),B3:D3,0)) ウ のセル数式は→ =INDEX($B$1:$D$1,,MATCH(LARGE(B4:D4,2),B4:D4,0))

prima_u
質問者

お礼

ありがとうございます!!今試しています。また質問するかもしれませんが、宜しくお願いします!!

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.2

こんにちは~ 《前提》 ・ 1行目が見出し行で、データは 2行目から ・ A列( 氏名 )から D列( 項目3 )までのデータ ・ 同一行に重複する数値はない E列に最大値の項目名、F列に2番目の数値の項目名だとすれば E2セルに =INDEX($B$1:$D$1,,MATCH(LARGE($B2:$D2,COLUMN(A1)),$B2:$D2,0)) または、数値未入力の場合のエラーを非表示にするなら =IF(COUNT($B2:$D2)<COLUMN(A1),"",INDEX($B$1:$D$1,,MATCH(LARGE($B2:$D2,COLUMN(A1)),$B2:$D2,0))) と入れて、そのまま右の F2セルにフィルコピー そのまま下に必要なだけフィルコピー ◆ セル位置は実際の表に合わせて変更してください。 ◆ COLUMN(A1) の A1 はそのままにしておいてください。( 最初に数式を入力するセル《上の例では E2セル》のみ。あとは右に下にコピーするだけで、何も変更する必要はありません ) ◆ $( 絶対参照 )に気をつけてください。$B$1:$D$1( 見出し行 )、$B2:$D2( データ行…列記号のみに $ )です。

prima_u
質問者

お礼

ありがとうございます!!今試しています。また質問させてもらうかもしれませんが宜しくお願いします!!

prima_u
質問者

補足

すみません。再び質問なのですが、同一行に同じ数値が入力されている場合は何か他の関数を使用しないとだめでしょうか?

noname#30830
noname#30830
回答No.1

こんにちは。 最大値はMAX関数で、2番目に大きい値はLARGE関数で求められます。 例のデータが氏名がA列、項目名が1行目にあった場合、 最大値は=MAX(B2:D2)、2番目に大きい値は=LARGE(B2:D2,2)で求められると思います。 LARGE関数の引数の2は、何番目に大きいかを指定する引数です。 間違った回答だったらすいません。

prima_u
質問者

お礼

ありがとうございました!MAX関数とLARGE関数で数値を表示できるのですね。

関連するQ&A