こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2005-10-27 01:30:14

QNo.1738518

すぐに回答ほしいです

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

#4です。補足に対して
氏名項目1項目2項目3一番二番
A150800200項目2項目3
B200540620項目3項目2
C190300860項目3項目2
D670450290項目1項目2
G2に=VLOOKUP("氏名",$A$1:$D$1,MATCH(LARGE(B2:D2,2),B2:D2,0)+1,FALSE)
と入れてG5まで式を複写すると、上記のようになりましたが。

投稿日時 - 2005-10-27 22:15:31

補足

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

投稿日時 - 2005-10-27 23:14:19

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

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

投稿日時 - 2005-10-27 07:13:03

補足

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

投稿日時 - 2005-10-27 10:46:08

ANo.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))

投稿日時 - 2005-10-27 07:03:16

お礼

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

投稿日時 - 2005-10-27 10:56:05

ANo.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( データ行…列記号のみに $ )です。

投稿日時 - 2005-10-27 06:51:26

補足

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

投稿日時 - 2005-10-27 11:36:58

お礼

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

投稿日時 - 2005-10-27 10:52:10

ANo.1

こんにちは。

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

投稿日時 - 2005-10-27 06:24:00

お礼

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

投稿日時 - 2005-10-27 10:43:39

あなたにオススメの質問