項目の検索で行き詰まっています。
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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Access(アクセス)
-
HLOOKUPで複数の結果を取得する方法
Access(アクセス)
-
Excelで、条件と一致する最後のセルを検索したい
Excel(エクセル)
-
-
4
IF関数の複数条件とINDEX関数とMATCH関数を使った長い関数を短くできる?
Excel(エクセル)
-
5
エクセル MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Excel(エクセル)
-
6
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
7
Excelのmatch関数エラー原因が分かりません
Excel(エクセル)
-
8
エクセルで条件に一致したセルの隣のセルを取得したい
その他(Microsoft Office)
-
9
条件に一致する最終行の値をエクセル関数で抽出する方法
Excel(エクセル)
-
10
エクセルでエラーが出て困っています。
Excel(エクセル)
-
11
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
12
Excelで最大値の入っている数値の右側にある項目名を拾いたい。
その他(Microsoft Office)
-
13
31:30:00が1900/1/1 7:30:0
その他(Microsoft Office)
-
14
【VBA】コピー&複数個所のペースト繰り返し
Excel(エクセル)
-
15
EXCEL関数:重複した値がある並び替えについて
Excel(エクセル)
-
16
INDEXとMATCH関数で#N/Aが出るときに非表示にしたい
Excel(エクセル)
-
17
LARGE関数 飛び飛びの範囲を指定
Excel(エクセル)
-
18
MATCH LARGE などで重複を防ぐには
Excel(エクセル)
-
19
【配列数式を使わずに】表から複数のデータを抽出して、別の表に上から順に並べたい。
Excel(エクセル)
-
20
【Excel関数】別シートに日付順でデータを抽出する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
彼女のことが好きすぎて彼女の...
-
中出しをするとお腹が痛い・・・。
-
白血球が多いとどんな心配があ...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
検便についてです。 便は取れた...
-
これって喉仏ですか? 私は女性...
-
尿検査前日に自慰行為した時の...
-
精子が黄色?
-
EXCELで条件付き書式で空白セル...
-
小数点以下を繰り上げたものを...
-
精子に血が・・・
-
納豆食べた後の尿の納豆臭は何故?
-
2つの数値のうち、数値が小さい...
-
舌の裏の痛みのないプツプツの...
-
鏡についてです。自分の体型を...
-
リンク先のファイルを開かなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報