
項目の検索で行き詰まっています。
A1 から A30 に名前
B1 から B30 に得点
が入力されています。
B31 に最高点を表示するのは、MAX 関数でできました。
B32 にその最高点をとった人物が誰かを表示するのに
=INDEX($A$1:$A$30,MATCH($B$31,$B$1:$B$30),1)
と入力したら、
該当者が1人しかいない時は問題ないのですが、複数いる場合でも1人しか表示されません。
該当が複数ある場合の出し方は他に方法があるのでしょうか?
どなたか力を貸してください。
よろしくお願いします。

No.3ベストアンサー
- 回答日時:
誰が最高点なのか確かめるだけであれば、
#1さんのご提案されたオートフィルタが恐らく最短ですね。
ただ、ご質問の例をみますと、
やはり特定のセルに値を返す必要があるのではないかとも思われます。
その場合、#2さんがご提案されたように作業列を使って引くのが順当な手順かと思います。
さて。
たまたまつい先日似た質問にお答えしたので、
正直あまりお奨めはしないのですが、「一発関数回答」を。
B32セル:
=IF(ROW()-ROW(B$31)>COUNTIF($B$1:$B$30,B$31),"",INDEX($A$1:$A$30,MATCH(LARGE(($B$1:$B$30=B$31)/ROW($B$1:$B$30),ROW()-ROW(B$31)),1/ROW($B$1:$B$30),0)))
を配列数式として入力し下方に十分な数だけフィル。(Excel2003で動作確認済)
※通常の数式は、数式を入力した後Enterキーで確定しますが、
これは配列数式なので、CtrlとShiftを押しながらEnterで確定してください。
数式中に、B$31,$A$1:$A$30,$B$1:$B$30の3種類の参照が複数回登場しますが、
いずれも質問文の数式と同様のニュアンスで考えていただいて結構です。
位置が変わる場合はそれぞれ置き換えてください。
(ただし、最高点のセルの直下に、縦に並べて名前を表示することを想定しています)
数式の意味内容については、やや手前味噌の感もありますが、
先日した回答のURLを挙げておきますのでご参考ください。
http://oshiete1.goo.ne.jp/qa3328660.html
(このケースでは行列(縦横)が逆になっています)
ご回答ありがとうございます。
ご回答の式をそのままコピーして貼り付けたら一発で表示されました。
配列数式はまだよくわからないのでこれから勉強します。
当面の問題は解決しました。
重ねてありがとうございました。
No.5
- 回答日時:
#4です。
>どうかじらさずに、ストレート・・
邪推しないでください。再々同類質問があるものだからヒントだけにしたもの。
こういうタイプ別に、どういうものがあるかというのも参考になると思ったから挙げた。
GOOGLEでいま「imogasi方式」で照会すると、546件あるということらしい。
(また良ければOKWAVEででも照会してください。)
最近の質問には「照会してください」が多いが、実際内容を回答したもので過去のものは出にくくなっているが
http://dospara.okwave.jp/qa3292030.html
http://virus.okwave.jp/qa3295728.html
など
ーー
要は
(1)条件に該当する(この質問では最大値)に当たる値が入っている行に、上の行から連番を振る(このために作業列を使う)
理由があって、第1行目に行挿入する.
作業列をE列とするとE2に
=IF(B2=$B$32,MAX($E$1:E1)+1,"")と入れてE31まで式を複写する。
(2)その1,2,3・・の番号を、行番号の33,34,35・・
とを関連付けて、33行には、作業列がrow()-32(すなわち1)の
行をMATCH関数で探して、INDEX関数で採ってくる。
1行行挿入したので、33行に
=INDEX($A$2:$A$31,MATCH(ROW()-32,$E$2:$E$31,0),1)
これを、B32と同じ値の行数だけ式を複写する。
実際は余分行に式を複写しても、#N/Aを出さないように、IF関数を用いて、B32の値のB2:B31までのCOUNTIF数より大なら空白というのを、式に組み込むが、#3のご回答にも出ているので略。
No.4
- 回答日時:
これはむつかしいのです。
これが簡単にできれば、エクセルの表での抜き出し問題も、もう少し簡単になるのですが。
(1)作業列を使う方式
例えば自称「imogasi方式」でWEB照会してくれれば、過去の類似問題がたくさん出ます。そこには他の方の(3)の回答実例なども出ます。
(2)配列数式
(3)複雑な式
(4)VBAでユーザー関数(同じ値でn番目の該当行番号を返す関数)
を作る
など過去に見たり、回答したりしました。
理解しやすく、納得しやすいのは(1)でしょう。
ご回答ありがとうございます。
私の方針として質問を丸投げせず試行錯誤した結果、ここに質問をしようと心がけています。
今回の回答ではWEBが検索できませんでした。
どうかじらさずに、ストレートに回答を記載するか。URLを貼り付けてください。
No.2
- 回答日時:
オートフィルタに一票 (o‥o)/
なお、関数で
> 該当が複数ある場合の出し方
は、いろいろあると思いますが一例です。
複数人の名前をどこに表示したらよいのか分かりませんので、
例えば全員が同点ならば、(全員が最高得点になるので)
B32からB61までひとつのセルに一人ずつ表示させるようにしました(^^ゞ
B31には =MAX(B1:B30) ←この式が入っているとします。
どこでもいいですが、仮にC列、D列を作業列にして、
C1に =IF(B1=$B$31,B1+ROW()*0.01,"")
(C30までフィルコピー)
D1に =IF(COUNT($C$1:$C$30)<ROW(D1),"",SMALL($C$1:$C$30,ROW(D1)))
(D30までフィルコピー)
B32に =IF(D1="","",INDEX($A$1:$A$30,MATCH(SMALL($D$1:$D$30,ROW(B1)),$C$1:$C$30,0)))
(B61までフィルコピー)
これでご希望の結果が返るかと思います。
(但し、B列(得点の入力欄)に何も入力が無い場合は全員の名前が表示されます)
ご覧のように、ご希望の事を関数でやるのは結構めんどいです(^^ゞ
なので、やっぱり「オートフィルタ」をお勧めしますw
蛇足:
> B32 にその最高点をとった人物が誰かを表示するのに
> =INDEX($A$1:$A$30,MATCH($B$31,$B$1:$B$30),1)
> と入力したら、
> 該当者が1人しかいない時は問題ないのですが、
↑この式は、
=INDEX($A$1:$A$30,MATCH($B$31,$B$1:$B$30,0))
↑こうした方がいいのではないかと(^^ゞ
ご回答ありがとうございます。
NO1の方への回答にも書きましたが、実際の作業は、人数が600名、項目が10項目以上になるため、あまり作業列を増やしたくないというのが本音です。それでも人数や項目が少ないときは使えそうなのでストックしておきます。
また、最高点該当者の出し方の関数もご指摘もありがとうございました。
No.1
- 回答日時:
全員同点ならば、最大で30名になるって事ですよね?
C1 に =IF(RANK(B1,$B$1:$B$30)=1,"☆","")
のような感じで関数を入れて C30 までコピーすれば、誰が1位で最高得点だと解ります。
必要に応じてこれをオートフィルタで抽出すれば良いと思いますが、如何でしょう?
ご回答ありがとうございます。
papayukaさんの方法や条件付書式設定後、該当をコピペしたりしました。
実際の作業は、人数が約600名、得点項目が10項目以上となるため手間や間違いを防ぎたいのでここに質問したしだいです。
それでも一番の回答ありがとうございました。
これkらもよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Excel(エクセル) 関数を教えてください。 2 2023/08/01 10:59
- Excel(エクセル) 複数のブックに一括で値入力するマクロを教えてください 2 2022/11/28 16:02
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Visual Basic(VBA) if関数とifs関数は組み合わせることはできますか。 セルA1が「A」のとき「向日葵」と表示。 セル 4 2023/02/02 20:48
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
血液検査の結果が悪くefgrの値...
-
風俗店へ行く前のご飯
-
EXCELで式からグラフを描くには?
-
検便についてです。 便は取れた...
-
VLOOKUP関数を使用時、検索する...
-
尿検査前日に自慰行為した時の...
-
納豆食べた後の尿の納豆臭は何故?
-
値が入っているときだけ計算結...
-
勃起する時って痛いんですか? ...
-
2つの数値のうち、数値が小さい...
-
精子が黄色?
-
精子に血が・・・
-
excelでsin二乗のやり方を教え...
-
イタリアから帰国する際、肉製...
-
【Excelで「正弦波」のグラフを...
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
ExcelのVBAでフォームが表示さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
MIN関数で空白セルを無視したい...
おすすめ情報