- 締切済み
エクセルの関数でこんなことできますか?
あるデータ内で一番多いものを抽出する場合はMODE関数を使うとこまではわかるのですが、重複した場合はMODE関数の場合は一番先に多くなった数値が抽出されるのですが、私が考えているのは、重複した場合は別の条件で抽出させたいのです。しかも、元のデータが最大5つの中から判定するので、場合によっては違うデータが一つずつになってMODE関数が抽出できない場合も出てくるのでその場合は別の条件で抽出させたいのです。 文章だとわかりにくいので例を作ります。 日付 条件 区分 1月10日 5 D 2月22日 7 C 3月15日 10 A 4月19日 5 D 5月22日 10 A で、この場合はAを抽出させたいのです。 あと『区分』の値が全部違う値の場合は『条件』の一番いい値を 抽出させたいのですが、どんな関数を使えばよろしいでしょうか? 長々と書いてしまいスミマセン。 誰か教えてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
難しいというか、関数では複雑になる問題ですね。 例データ A1:C8 (残りは関数式の結果) A列 B列 C列 D列 E列 日付 条件 区分 3 10 1月10日 5 D 3 2月22日 7 C 1 3月15日 10 A 3 1 4月19日 5 D 3 5月22日 10 A 3 2 5月23日 5 D 3 5月24日 10 A 3 3 D1セル =MAX(COUNTIF($C$2:$C$100,C1:C8))と入れてSHIFT+CTRL+ENTER(配列数式)出現回数の最大を求めた E1セルに =MAX(IF(D2:D8=$D$1,B2:B8,0))と入れてSHIFT+CTRL+ENTER(配列数式)出現回数最大の中で条件最大を求めた。 D2に =COUNTIF($C$2:$C$100,C2)と入れてD8まで式を複写する。 F2に =IF((D2=$D$1)*(B2=$E$1),MAX($F$1:F1)+1,"")といれて F8まで式を複写する。 これで条件に合うものに連番が振られた。 後は自称imogasi方式で解ける(OKWAVEで照会してくれれば、ここからが似た問題が沢山出る。) I1に=INDEX($A$1:$C$8,MATCH(ROW(),$F$1:$F$100,0),1) J1に =INDEX($A$1:$C$8,MATCH(ROW(),$F$1:$F$100,0),2) K1に =INDEX($A$1:$C$8,MATCH(ROW(),$F$1:$F$100,0),3) と入れてI1:K1を範囲指定して、K1で+ハンドルを出し、F列の最大数行分、式を下方向に複写する。 結果 I1:K3に 2006/3/15 10 A 2006/5/22 10 A 2006/5/24 10 A
- puchisuke
- ベストアンサー率0% (0/7)
すいません、書き方が悪かったです。 区分の頻度が重複(2個ずつ)のときに 条件で絞るときに条件も同じだった。 というケースはないと考えればよい のでしょうか?
- puchisuke
- ベストアンサー率0% (0/7)
仕様をもう少しください。 区分AとDの条件が同じだった場合はどうするのでしょうか? #MODEは数値を扱う関数だと思います。
補足
スミマセン。 確かにMODE関数は数字でしたね・・・。 初歩的なミスです。 A=1,B=2,C=3,D=4に置き換えてください。 まずは『区分』の中で一番多い値(数)を抽出します。 ただ、それが『1』が2つ、『3』が2つになった場合は『条件』の 一番多い(少ない)値を抽出させたいのです。 あと『区分』が1~5の値で一つも重複しなかった場合は、 『条件』の一番多い(少ない)値を抽出できるような関数を探しています。
- ipsum11
- ベストアンサー率21% (55/251)
いまいちやりたい事がわかりません。 >あるデータ内で一番多いものを抽出する と言うのはどういうこと?提示された例で何故Aが抽出されるのか、全然わかりません。 >『区分』の値が全部違う値の場合は『条件』の一番いい値を抽出させたい 一番いい値って? もう少し、わかりやすく説明・例などをお願いします。
- GRATIAS
- ベストアンサー率42% (8/19)
関数でないとだめですか? オートフィルタが便利だと思います。
補足
もう一つ条件がありました。 『条件』で絞るときに条件も同じだった場合は 日付の新しいもので抽出させたいのです。 ちょっとややこしいことを言ってスミマセン。