• ベストアンサー

エクセルー条件?

010-05  2 010-06  4 010-08  9 010-09  16 010-11  1 010-12  3 010-13  2 010-14  4 010-15  2 010-16  4 011-09  19 012-00  4 012-01  1 012-08  7 012-11  4 まず表の一部を切取ったものです。1行一件と考えていただければ。このデータで何をしたいかご説明します。 表右側の数が(1)15以上であれば、そのまま。(2)15以下であれば、表左側の5桁では無く頭から3桁で見て、表右の合計が15以上になればその合計を値として出す。(3)3桁で15以上にならない場合は頭から2桁で…。 条件(1)     010-09 16 →そのままで(5桁) 条件(2)010   010-05 2         010-06 4         010-08 9  →2+4+9=15(3桁/010) 条件(3) 00   001-01 1         001-02 2         001-03 3         001-04 8         002-01 1         002-02 2    →1+2+3+4+1+2=17(2桁/00)        とても分かりにくい説明になってしまいすみません… エクセルに関して初心者で…是非教えて頂ければ本当にありがたいです。。 エクセルではなく、アクセスのほうがいいのか…どちらもかじった程度のレベルなのでそれすら分かりません、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.2

以下条件で考えました。 ・(系列名ではない)データは2行目以降にある ・サンプルの左列がA列、右列がB列にある ・C列とD列を作業列に使い、E列を答えの表示用に使う ・C1~E1には数字とみなせるデータは入っていない ・集計は上から順番に行い、いったん条件1~3のいずれかで合計値15以上が成立すると合計の計算は次の行から新たに行う。 ・条件3で15以上を達成しないうちに頭2桁が一致しないデータが現れたらそこで15未満でも合計を計算する。 ・答えの列は合計を計算する行のみ数字を表示し、残りは何も表示しない。 C2~E2に以下の式を入力し、必要な分だけ下へコピーしてください。 C2:=IF(C1>=15,B2,IF(LEFT(A1,3)=LEFT(A2,3),C1+B2,B2)) D2:=IF(D1>=15,B2,IF(C2<C1,IF(LEFT(A1,2)=LEFT(A2,2),C1+B2,B2),C2)) E2:=IF(D2>=15,D2,IF(LEFT(A2,2)=LEFT(A3,2),"",D2))

その他の回答 (2)

  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.3

すみません。NO.2の訂正です。 D2:=IF(D1>=15,B2,IF(C2>=15,C2,IF(LEFT(A1,2)=LEFT(A2,2),D1+B2,C2))) が正しい数式です。

fleur-aaa
質問者

お礼

ご返答ありがとうございます。 これからエクセルを勉強して自分でも解決できるようになりたいなと思いました。ホントに助かりました。ありがとうございます!! 頑張って仕事終わらせることができそうです…

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

複合条件自体はかまいませんが、重複した場合どうなるのですか? 表の順番どおりだとすると 010-05  2 010-06  4 010-08  9  15(条件2) 010-09  16 16(条件1) 010-11  1   010-12  3 010-13  2 010-14  4 010-15  2 010-16  4  16(条件2) 011-09  19  19(条件1) 012-00  4 012-01  1 012-08  7 012-11  4  16(条件2) になりますが 例1. 010-15がない場合、010-06~09で29(条件2)でいいのですか? それとも010-09の19(条件1)を優先しますか? 優先する場合010-06~08はどうなりますか? 例2. 010-16がない場合、011-09を取り込んで 31(条件3)でいいのでしょうか? 例3. 012-11がない場合、012-00~08では12で15以下ですが表示はなくてもいいのですか? 上記が分からないと答えるほうも回答が出せないと思います。

fleur-aaa
質問者

お礼

ご返答ありがとうございます。本当にありがたいです… 説明不足で申し訳ありません。。。 例1. 010-05がない場合、010-06~09で29(条件2)が優先になります。 000-00 5桁で15以上にならなかった場合は 000   3桁で15以上にならなかったら 00   2桁でまとめる 例2. 010-16がない場合、011-09を取り込んで 31(条件3)でいいのでしょうか? 例3. 012-11がない場合、012-00~08では12で15以下ですが表示はなくてもいいのですか?→012の3桁で15以下になる場合は01のグループにいれてしまいます。 ちなみに重複はなしです。010-01が01と010にどちらにしか加算されなようにしたいのですが。。。 説明が下手ですみません。。 ご指摘ありがとうございます。

関連するQ&A