• ベストアンサー

EXCELの関数の書き方

A1,B1,C1に数値(1~)が入っていて、 D1に結果”○”及び”×”を表示したいです。 結果が”○”の条件としましては、 A1,B1,C1のどこかにそれぞれ1、2、3が 入っていた場合です。 A1~A3の内容がそれぞれ 1,2,3 1、3、2 2、1、3 2、3、1 3,1、2 3,2、1  になった場合になります。(○) 1、2、4 3、4、1  とかは対象外になります。(×) 同じ数字は入りません。 足して6になればよいとは思うのですが、 今後汎用的に使用したい為に関数で書きたいです。 どうやって書けばよいのでしょうか? COBOLで書くとこうなると思います。 (すいませんコボラーです) IF A1=1 OR 2 OR 3 AND B1=1 OR 2 OR 3 AND C1=1 OR 2 OR 3 THEN MOVE "○" TO D1 ELSE MOVE "×" TO D1 END-IF. よろしくお願い致します。

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

  • ベストアンサー
  • gura_
  • ベストアンサー率44% (749/1683)
回答No.1

COBOLは分かりませんが、それらしくすると D1=IF(AND(OR(A1=1,A1=2,A1=3),OR(B1=1,B1=2,B1=3),OR(C1=1,C1=2,C1=3)),"○","X") でどうでしょうか

Ref16570
質問者

お礼

早速のご回答ありがとうございます。 今実際に記入してみたらできました。 感謝致します。

その他の回答 (2)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.3

COBOLのプログラムを忠実に直すとD1セルに (AND A1+B1+C1=6 が抜けている楊ですが・・・) =IF(AND(OR(A1=1,A1=2,A1=3),OR(B1=1,B1=2,B1=3),OR(C1=1,C1=2,C1=3),A1+B1+C1=6),"○","×") です。ただし、ちょっと長すぎですので、もう少しシンプルにしましょう。 =IF(AND(A1>0,A1<4,B1>0,B1<4,C1>0,C1<4,A1+B1+C1=6),"○","×") とはいってもあんまりシンプルにはなってないですね。

Ref16570
質問者

お礼

ご回答ありがとうございます。 >や<を使った書き方は思いも付きませんでした。

  • coco1
  • ベストアンサー率25% (323/1260)
回答No.2

一関数で処理することも可能ですが、可読性の観点から、作業セルを作った方がいいと思います(私の主観ですが)。 表示や印刷に関係のない列(ここではAA列以降とします)を使って AA1に=and(a1=>1,a1<=3) AB1に=and(b1=>1,b1<=3) AC1に=and(c1=>1,c1<=3) として肝心なD1には =if(and(aa1:ac1),"○","×") とすればどうでしょうか。 一セルですませるには、D1に =if(and(and((a1>=1,a1<=3),(b1>=1,b1<=3),(c1>=1,c1<=3)),"○","×")) になります。 お好みの方法でどうぞ。

Ref16570
質問者

お礼

こんな真夜中にすいません。 作業用セルと言う方法も言われて見ればありますね。 ご回答ありがとうございました。

関連するQ&A

専門家に質問してみよう