• ベストアンサー

エクセルのif関数について

現在データ処理のためにエクセルを使っていますが、ある条件処理をうまくできなくて困っています。どうかお知恵をお貸しください。 <内容>  A列    B列 1行  0.38% -1.74% 2行  3.16% 1.75% 3行 -0.34% 1.91% 4行 0.17%   -3.55% 5行 -0.13% 2.65% 逆相関について調べているのですが、A列1行に対応する数値B列1行は逆相関ですからC列1行に「○」を表示し、2行は相関ですからC列2行に「×」を表示したいのです。 C列6行には「○」の個数である「4」の表示もできたらしたいです。 さらに「○」ならば絶対値を足していき、「×」ならば絶対値を引いていく、つまり上記の場合は|1.74|-|1.75|+|1.91|+|3.55|+|2.65|=8.10と表示したいのですがさっぱり見当がつきません。 例えばD列に「○」ならば絶対値プラス、「×」ならば絶対値マイナスというような表示の仕方もあるのでしょうか?それができるのならばあとはオートサムでやれば簡単に8.10の合計値はでるのですが。。 ちなみにややこしくなるのであれば単に1.74や-0.13のような数値表示もよく、パーセント表示でなくともかまいません。 どうかよろしくお願いいたします。  

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

  • ベストアンサー
回答No.3

たった一組の数値をもって相関も逆相関もないだろうというのが一 般的な反応ですが、まぁそれはおいといて。 C列は要するにA列とB列の符号が違ってれば○ってんでいいんでしょ うから、=if(sign(A1)<>sign(B1),"○","×")とか、=if(A1*B1<0," ○","×")でいいでしょう。 D列はちゃんと考えればB列の符号とA列の符号を逆転した符号をかけ ればいいことに気付くはずです。だから=B1*sign(-1*A1)。

aruchan2615
質問者

お礼

早速のご回答ありがとうございます! これだけ見たら全体像が見えないでしょうけど、データ数は数万ありますしこれはその処理内のごく一部にすぎないということで、突っ込みたい気持ちはわかりますがご容赦を。 符号の相違の判定には掛け算してプラスマイナスでやればよいという学生レベルの問題に気づかなかったとは。。。。

その他の回答 (3)

noname#79209
noname#79209
回答No.4

C列に +A1*B1 表示書式に「×;○;」 B6に =SUMPRODUCT(SIGN($C$1:$C$5)*ABS($B$1:$B$5)*(-1)) で如何でしょう。

noname#140971
noname#140971
回答No.2

_0.38__-1.74__○___1.74 _3.16___1.75__×__-1.75 -0.34___1.91__○___1.91 _0.17__-3.55__○___3.55 -0.13___2.65__○___2.65 エクセルは操作したこともない門外漢です。 ですから難しいことは判りません。 C列の式=IF((A1-ABS(B1)*(A1>0)+B1)=A1, "×", "○") D列の式=IF((C1="○"),1,-1)*ABS(B1) で、一応は目的を達成しているかも???

aruchan2615
質問者

お礼

ありがとうございました。

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

一例です。 >C列6行には「○」の個数である「4」の表示もできたらしたいです。 C6=COUNTIF(C1:C5,"○") >例えばD列に「○」ならば絶対値プラス、「×」ならば絶対値マイナスというような表示の仕方もあるのでしょうか? =SUMPRODUCT(ABS(B1:B5),(C1:C5="○")*2-1)

aruchan2615
質問者

お礼

早速の回答ありがとうございます。 初めて知る関数ですが、即効性がありました。大変助かりました。

関連するQ&A