ここから本文です

エクセルでの論理計算

paj********さん

2011/10/2723:20:05

エクセルでの論理計算

下記のようにA列とB列に0か1のデータがあります.この2列からC列の結果となるような論理計算をエクセルで行わせるためにはどのようにしたらよいでしょう? IF文,ANDなど使ってみましたが,うまくいくところもあれば,ダメなところもあり,アドバイスいただきたく質問しました.ご存知の方,ご教授お願いいたします.ちなみにAとBはコンパレータの出力で,ヒステリシス性を持たせた結果がCとなります. 単純に横の列のみの論理計算では不可能で,行方向の情報も使う必要があろうかと思います.また,もしかすると単純な論理計算だけでは無理なのかもしれませんが,そこまでの判断はできませんでした.
A B C
0 0 0
1 1 1
0 0 0
0 0 0
1 0 0
1 1 1
1 0 0
1 1 0
0 0 0
0 0 0
0 0 0
1 0 0
1 1 1
1 1 0
1 0 0
0 0 0
1 0 0
1 1 1
0 0 0
0 0 0
1 1 1
1 1 0
0 0 0
0 0 0

補足grumpy_the_dwarf様
gekkasuikou様
maron5oo様
貴重なコメントありがとうございます.論理計算もいろいろな書き方があることを勉強させていただきました.
この中で,私にとって一番わかりやすかった,gekkasuikou様の回答をベストアンサーに選ばさせていただきました.

閲覧数:
894
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

編集あり2011/10/2801:04:32

A列が1になってはじめてB列が1になった時1で、あとはA列が0になるまで0という感じかもしれませんね。
さらにD列を作業列として使っていいとして
C2セルを
=AND(A2,B2,D1=0)*1
D2セルを
=OR(C2,AND(D1=1,A2))*1
とすると、少なくとも御質問にあるデータの場合にはうまく行きます。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

maronさん

2011/10/2805:45:53

◆gekkasuikouさん のいうように、「A列が1になってはじめてB列が1になった時1で、あとはA列が0になるまで0という感じかもしれませんね。」だとしたら、
◆1列目に項目名を追加して、
C2=IF(AND(A2=1,B2=1,IF(COUNTIF($C$1:C1,1)<=1,C1=0,SUMPRODUCT((INDEX(A:A,MATCH(1,INDEX(0/($C$1:C1=1),0))):A2=0)*1))),1,0)
★下にコピー

★EXCEL2007/2010であれば、
C2=IF(AND(A2=1,B2=1,IFERROR(SUMPRODUCT((INDEX(A:A,MATCH(1,INDEX(0/($C$1:C1=1),0))):A2=0)*1),C1=0)),1,0)

◆gekkasuikouさん...

プロフィール画像

カテゴリマスター

2011/10/2800:02:29

現在のANDがTRUEであるだけでなく、1つ前のNANDがTRUEで2つ前のNORもTRUEな感じですかねぇ。
C3: =and(and(A3,B3), not(and(A2,B2)), not(or(A1,B2)))

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる