- ベストアンサー
Excelで複数項目を他の行と比較して判定する方法
- Excelを使用して複数の項目を他の行のデータと比較し、特定の条件を満たした場合に結果を表示する方法を説明します。
- 具体的な例として、出場組が同じであり、回数が同じであり、年齢がより若く、かつ得点が50点以上高いデータを抽出する方法を説明します。
- 詳細な手順としては、比較したい条件を指定するための式をセルに入力し、その結果を出力するセルに集計式を入力します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 外していたらごめんなさい。 もしかして、こういうことですかね? すべてのデータの中でその行と「出場」「回数」が同じで、 「年齢」がその行のデータ以上かつ、「得点」がその行より50以下のものがいくつあるか? その個数をE列に表示したい! 一応そういうことだとして・・・ E2セルに =IF(A2="","",SUMPRODUCT(($A$2:$A$1000=A2)*($B$2:$B$1000=B2)*($C$2:$C$1000>C2)*($D$2:$D$1000<=D2-50))) という数式をいれ、オートフィルで下へコピーではダメでしょうか? (とりあえず、1000行目までデータがあっても対応できる数式にしています。) 以上、参考になれば良いのですが 的外れならごめんなさいね。m(__)m
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
各行が自分以外にそういう条件がいないかチェックするのか。結果が出ても、基準が同じでなくて、結果が出ても、見て何か判りにくいとおもうが。 ーー こういう多条件の条件該当を探すのはエクセル関数程度では不得手で難しいです。 式がやたらに長く複雑になったりして。データベース、分けてもSQLのような言語を使わないと普通には処理できない。 ーーー 似たものに データーフィルタフィルタオプションの設定がある。 A1:D5 例データ(質問例を少し変えている) 出場 回数 年齢 得点 A組 4 24 570 A組 4 21 480 A組 4 25 400 A組 3 29 470 条件F1:I2 (第1回目のみ) 出場 回数 年齢 得点 A組 4 <24 >470 データーフィルタフィルタオプションの設定 指定した範囲 リスト範囲 $A$1:$D$5 検索条件範囲 $F$1:$I$2 抽出範囲 $A$8:$D$9 OK 結果 出場 回数 年齢 得点 A組 4 21 480 ーー 複数行の該当ありも考えておかなければならないがどうするのか。 ーー これを第2行以下にも続けて行う方法は、VBAを使えば出来るが、見出しがいつも1行+条件がこの場合はいつも1行づつセルにある必要があるので、、扱いにくい。 それら条件(F2:I2セルの値)を変えて実行ー>結果累積ー>条件を変えて実行ー>結果累積を繰り返すことになろう。 フィルタの助けをかりず、検索ロジックだけで、処理するのは、VBAの相当熟練者で無いと難しいと思う。1条件で絞ったものに対し、第2条件をかけるなどをやってさらに絞るのが難しい(面倒)。 VBAは質問者のお呼びではなかろう。
お礼
ご回答ありがとうございます。 >複数行の該当ありも考えておかなければならないがどうするのか。 質問文に明記していなかったのですが、処理の意図としては、それぞれの行が(1回以上)条件を満たしているかどうかをとりあえず確認したいというものなのです。そのため、今回はtom04様のご回答で解決していただけました。 しかし、今回imogasi様に教えていただいたフィルタオプションを使えば、どのデータ(行)に対して条件を満たしたかを確認できると気付きました。こちらの方法も組み合わせて活用していきたいと思います。
お礼
ご回答ありがとうございます。 お教えいただいた数式で、希望どおりの結果が得られました!これで、現在取り組んでいる作業がはかどります(^^)