重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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.

よろしくお願い致します。

A 回答 (3件)

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")

でどうでしょうか
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/28 03:27

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),"○","×")

とはいってもあんまりシンプルにはなってないですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/28 03:28

一関数で処理することも可能ですが、可読性の観点から、作業セルを作った方がいいと思います(私の主観ですが)。


表示や印刷に関係のない列(ここでは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)),"○","×"))
になります。

お好みの方法でどうぞ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/28 03:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!