- ベストアンサー
複数のデータについて正数か負数かを一括して識別したいのですが(ワークシート関数)
例えばセルA1~A20のデータが全て正数もしくは全て負数ならば B1にA1~A20の合計値を、正数と負数両方混じっているならB1には ゼロを出力させたいのですが、この処理を簡潔に記述する方法は ありますか? データの数が多くなるケースもあり、「IF(A1>0 and A2>0・・・」と 一つずつ記述すると冗長になりすぎてしまいます。 OSはWindows2000、エクセルはExcel2000を使用しています。 ワークシート関数での回答をお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
簡潔にということなので、ちょいとテクニカルですが、SUMPRODUCTも配列数式も使わずにやってみました。 =IF(MAX(A1:A20)*MIN(A1:A20)>=0,SUM(A1:A20),0) [最大値と最小値が同符号なら和を、でなければ0を] ※上記は0が混じる場合でも和を返します。 0が混じる場合に0を返すなら、>=0 の部分を >0 に。
その他の回答 (3)
》 正数と負数両方混じっているなら… 正数でも負数でもない 0 が混じることはない、と考えて構わないのでしょうか?
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ =(SUMPRODUCT((SIGN(A1)=SIGN(A1:A20))*1)=COUNT(A1:A20))*SUM(A1:A20)
お礼
うまく処理することができました。 ありがとうございました。
- neKo_deux
- ベストアンサー率44% (5541/12319)
作業列を使うなら、 C1=ABS(A1) C2=ABS(A2) … C20=ABS(A20) の総和と、A列の総和の絶対値を比較すれば良いかと。 -- 配列数式を使えば、1回の式で書けると思います。 =IF(ABS(SUM(A1:A20))=SUM(ABS(A1:A20)),SUM(A1:A20),0) でCtrl+Enter とか?
お礼
うまく処理することができました。 ありがとうございました。
お礼
うまく処理することができました。 ありがとうございました。