- ベストアンサー
[Excel]重複しない文字に対応する数値の合計を求めたい
Excelの関数で困っています。 ---------------- | A | B | C | 1|記号|名前|値 | 2| + |aaa |50 | 3| + |bbb |20 | 4| - |aaa | | 5| + |ccc |90 | 6| + |ddd |40 | 7| - |ddd | | ---------------- | |合計|110| ---------------- 上のような表で(形式は変えられない) 重複を除いた"3C"と"5C"の[値]の合計値のみを算出したいです。 条件としては、 (1)[B]の重複するデータを見つける(2つのはず) (2)(1)の2つのうち、片方の[A]の"+"、もう片方の[A]は"-"であることを確認 (3)"2C"から"7C"の範囲で、(2)を確認した(1)を除いた合計値を算出する といった流れです。 どのような条件式を与えれば良いでしょうか? 調べてもなかなか同じような例がないし、理解が難しいです。 DSUMを使うのかとは思ってますが。 詳しい方がいらっしゃればご教授お願い致します。 ※"記号"・"名前"は文字列で"値"は数値です。 ※"記号"が"-"のものは"値"が空です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
=SUMPRODUCT(($A$2:$A$7="+")*(COUNTIF($B$2:$B$7,$B$2:$B$7)=1)*($C$2:$C$7)) これで求められると思います。
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
もしかして、この質問は「A列が空白の場合、その直前に出現した同じ名前の数値を取り消したい」ということですか? レジの記録で「取り消し」の場合に数量が入力されないような感じでしょうか? ですからaaaは何十回も出現する可能性があり、単純に同じ名前が複数あるかどうかでは判断できないのではないかと推察しました。 また >形式は変えられない は補助列も使用できないという意味ですか? 補助列を使用してよいならD3セルに以下を貼り付けて下方向にコピーします。 =IF(A3="",INDIRECT("C"&MAX(INDEX((B$2:B2=B3)*ROW(B$2:B2),))),"") するとA列が空白の行に対して、直前の同じ名前の数量が表示されます。(D4セルにはC2セルの50が表示され、D7セルにはC6セルの40が表示される) 後はD列の合計を全体の合計から引いてください。 ただし以下のように表の先頭にいきなりA列が空白の行が出現する場合はうまくいかないかもしれません 2行目 - aaa 3行目 + aaa
お礼
回答ありがとうございます。 すごいですね。 なるべくなら補助は使いたくはないですが、 きれいになるなら検討できます。 ありがとうございます。
お礼
とりあえずイケました。 助かりました。ありがとうございます。 詳しくはどうなってるんでしょうかね? 調べれば分かりますかね。