• ベストアンサー

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/17068)
回答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/17068)
回答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

  • Excelでマクロを使用して、列を表示させる質問です。

    Excle2003での質問です。 C3セルからAE78セルまでにデータが入力されています。 C列には項目名・3行には氏名が並んでいます。 D4セルからAE78セルには、 各人に対応する項目に○や△等が記入されています。 (空白セルもあります) A1セルに氏名を記入して(3行目のリストから選択して)、 マクロを実行させると、 1.氏名を一致する氏名の列のみを表示して、 2.オートフィルタで空白以外の行を表示する。 (ただしC列の項目名は表示されたまま) このようなマクロを組みたいのですが、 初心者の私ではまったく分かりませんでした。 どなたかご教授いただけたらと思います。 よろしくお願いいたしますm(_ _)m

  • excel2000 ある列の項目名をカウントしその件数表示をする

    エクセルで表10行×5列の表があります。1列目にあるデータが入っております。その項目名をカウントし多い順に別の表にその項目名と件数を表示させたい。できるだけ自動的におこなうためにはどうすればよいでしょうか。 例 :ある表 1列 A B c B c A D E F B 結果 別の表 項目 件数 B   3 A   2 C   2 D   1 E   1 F   1

  • Excelで最大値の入っている数値の右側にある項目名を拾いたい。

    Excelで最大値の入っている数値の右側にある項目名を拾いたい。 下のようなデータがあります。(A列は年、Bは何かの生産量・・とします) 1 2000 7 2 2001 11 3 2002 14 4 2003 10 5 2004 9 6 2005 8 生産量(B列)の最大値を求めるのは=MAX(B1:B7)で"14"が得られると思いますが、求めているのは"14"の入っている年の"2002"という数字を隣のC1に入れたいと思います。 どのような関数が必要でしょうか?

  • VBAにて最大値と最大値までのデータの数を教えて

    はじめまして。VBA初心者です。 誰か教えてください。 下記のようにA列にデータが並んでおります。 A列はどこまでデータがあるかは、分かりません。 その中で、  何とか独自でC列の1行目に、A列の最大値を記入する事まではできました。 しかし、A列の最大値が数字が入力されているA列の1行目から何番目にその 最大値がくるのかの計算が分かりません。   E列の1行目にその何番目にくるかをしめしたいのですが、 C列の1行目で示すように最大値の値をA列で何番目になるのかの方法を教えてください。 Rangeを使用して、Range("A1:最大値")を選択して、countするとよいのではと思い、 挑戦していましたが、"最大値"の部分をどのように表記していいかわかりません。  どなかた分かる方がいらっしゃいましたらよろしくお願いします。       A列    B列    C列   D列   E列 1行    3    最大値   10   個数    4 2行    5 3行    7 4行   10 5行    9 6行    2 …     … …     …

  • 一つのセルにあるデータを項目別に複数列に分割したい

    一つのセルにあるデータを項目別に複数列に分割したいです。 初歩な質問かも知れませんが教えて下さい。Excel 2010使用です。 一つのセルに「」に囲まれた項目別のデータが全て詰まっています。「」に囲まれた複数の文字列は項目名が書かれているのですが、これを分割し、列の先頭に項目名を付けて分割したいです。A2のセルから1列にデータが入っており、セル内にある項目は「郵便番号」「住所」「氏名」「電話番号」「誕生日」「血液型」。 これを分割していきたいのですが、必ずしも全てのデータが入っているわけではなく、データが欠けているものがあります。添付の2行目のような結果を出す関数やマクロなど、わかりましたらご教授いただけないでしょうか・・・。(画像が小さいため、A列とB~G列と分割しました。わかりづらくスミマセン。) たくさん調べたのですが、なかなか当てはまるものが見つからず、お力を貸してください。。

  • Excelグラフの長い項目名を2行で表示したい

    図のようにあるグラフなんですけど、項目名が長くて(死刑を廃止すれば…のところです)2行で表示したいのです。(斜めに表示する方法もありますがそれはしたくないので)データの入っている参照するセル内で改行しているんですが、うまく表示されません。何か方法ありますか?そもそもできませんか?

  • 【エクセル】複数ファイルからのデータ引用

    エクセルについて質問がございます。 現在、複数の人間が同じフォーマットにてデータを入力しており、 そのデータを、1つのエクセルの1つのシートに引用したいと考えております。 (例) (1)ファイルA、シート「個人名A」、セルA1「回答1」 (2)ファイルB、シート「個人名B」、セルA1「回答2」 (3)ファイルC、シート「個人名C」、セルA1「回答3」 上記3ファイルのデータを以下のファイルに引用したいと思います。 統合先ファイル:ファイルD、シート「集計」 A1セルには(1)のデータ、 A2セルには(2)のデータ A3セルには(3)のデータ この際、 ファイルDの A1セルには ='[ファイルA.xlsx]個人名A'!$A$1 で「回答1」と表示されます。 A2セルには ='[ファイルB.xlsx]個人名B'!$A$1 で「#VALUE!」と表示されます。 A3セルには ='[ファイルC.xlsx]個人名C'!$A$1 で「#VALUE!」と表示されます。 この場合、A2セルとA3セルにもそれぞれの「回答」を表示させる方法がありますでしょうか。 ご回答いただけると、大変助かります。 よろしくお願いいたします。

  • あいまい検索でヒットするデータを表示する方法

    office2016 ある機種のデータをsheet1のA列2行目以降に取り込みます code  ←題目 1233 127011 ←(A) C00001 C00233 … C90001 ←(B) その後昇順にならんだデータにします。約50行くらいあります。 (A)のデータは 1270で始まるデータで 127011,127021の様に6ケほど存在します。 (A)のデータは機種に必須のデータなので6ケの中でどれか1つが必ず存在します。 文字列と数字が混載表示のデータで1270が含まれるデータはありません。 C91270の様なデータは無いということです。 (B)のデータは C9000で始まるデータで C90001,C9002の様に5ケほど存在します。 (B)のデータは機種に必須ではないので、存在しない場合があります。 A列のデータの中から (A)で存在するデータはsheet2のG3セルへ (B)で存在するデータはsheet2のM3セルへ それぞれ表示したいのですが、何か簡単に一発で表示される良い方法があれば教えていただきたく。 現状の構成は次の通りです。 マクロで下記を対応してます。 Aデータの有無を確認する作業シート(シート名はA)を設けて A列にコピーし B2セルに判定として =IF(ISERROR(SEARCH("1270",A2,1)),"対象外",SEARCH("1270",A2,1)) これをA列の行分コピー B列で対象外の行を削除 1行目が題目で2行目に対象のデータが残るのでそれを表示 code 127011   1 の状況になるので SHEET2のG3セルは =IF(A!B2=1,A!A2,"") とすると 127011がG3セルに表示される Bデータの有無を確認する作業シート(シート名はB)を設けて A列にコピーし B2セルに判定として =IF(ISERROR(SEARCH("C9000",A2,1)),"対象外",SEARCH("C9000",A2,1)) これをA列の行分コピー B列で対象外の行を削除 1行目が題目で2行目に対象のデータがあれば残るのでそれを表示 code C90001   1 の状況になるので SHEET2のM3セルは =IF(B!B2=1,B!A2,"") とすると C90001がM3セルに表示される C9****のデータが存在しない場合、M3セルは空欄表示でOK これで一応やりたい内容は達成できていますが、関数で一発表示ができたらとの思いです。マクロでも構いません。 よろしくお願いします。

  • エクセルでのデータ処理について

    エクセルでセルの右下をクリックしてそのまま下方向にドラッグすると、オートフィル機能が働いて連続データなどが得られると思いますが、 例えば、A行、B行、C行にそれぞれ20000個のデータがあったとして、D行にD=(A+B)/2+log(C)のデータを出したいとします。この時、D1のセルに=(A1+B1)/2+log(C1)と打ち込み、その後D1のセルの右下をクリックしてそのまま20000番目まで下方向にドラッグすればオートフィル機能でD行に20000個のデータが得られます。私は今まで上記のような方法でデータ処理を行ってきましたが、下方向に20000番目までマウスでドラッグするのは時間がとてもかかってしまい効率が悪いと感じています。一気に20000番目までドラッグする方法などはないのでしょうか?

  • エクセルの各範囲で最大値を求めたい。

    エクセルの各範囲で最大値を求めたい。 エクセルのA列に商品名、B列に数量が書かれています。これを商品名を基準に「並べ替え」をすると、次のような表(A列)(B列)になりました。      (A列)     (B列)   (C列)      商品名     数量  最大値       いちご     18     42       いちご     42         いちご     35       いちご     22      オレンジ     18      33      オレンジ     25       オレンジ      33       バナナ      21      27       バナナ      27        ここで、各商品の数量の最大値を、C列の、各商品の 先頭行に表示したい。( 上記表示 )  データは大量にあり、並べ替えの結果、同じ商品が何行になるかはやってみないとわかりません。  人が、同じ商品の範囲を指定して、最大値を求めていくことは、量的に不可能です。 自動的に求める方法を教えてください。 よろしくお願いします。

専門家に質問してみよう