• ベストアンサー
  • 困ってます

エクセルの関数で値の判定

  • 質問No.9607798
  • 閲覧数157
  • ありがとう数8
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 100% (634/634)

A1セルの値が、0より大きい数値または文字列の「USA」か「UK」の場合のみTRUEを返したいのです。
=OR(A1>0,A1={"USA","UK"})
としてみましたが、AとかBとかの文字列も0より大きいとみなされるようでTRUEになってしまいます。
やむをえす、
=OR(AND(ISNUMBER(A1),A1>0),A1={"USA","UK"})
としてみましたが、もっと簡単に判定する方法はないでしょうか?
エクセル2013です。

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

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

ベストアンサー率 43% (3466/7992)

他カテゴリのカテゴリマスター
>もっと簡単に判定する方法はないでしょうか?
ISNUMBER(A1)とCOUNT(A1)は同等の結果を得られ、ANDは四則演算の*と等価になることを利用して次のようにすると良いでしょう。
=OR(A1>0,A1={"USA","UK"})
      ↡
=OR(COUNT(A1)*(A1>0),A1={"USA","UK"})
お礼コメント
emaxemax

お礼率 100% (634/634)

=OR(COUNT(A1)*(A1>0),A1={"USA","UK"})
いいですね!!
投稿日時:2019/04/19 13:03

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 21% (1521/7227)

私のミスでご迷惑をお掛けしました。
で、やり直して完成したのでご連絡します。

図中のB5セルが検査対象になります。
E3は最終判定になります。

E5は数字の判定
E6は対象の文字判定となります。

それぞれの関数と説明が以下の通りです。

【E5】
ISNUMBERを使用しました。
=IF(ISNUMBER(B5)=TRUE,IF(B5>0,"TRUE","FALSE"),"FALSE")

【E6】
普通にIF文使用。
=IF(B5="USA","TRUE",IF(B5="UK","TRUE","FALSE"))

【E3】
普通にIF文使用。
=IF(E5="TRUE","TRUE",IF(E6="TRUE","TRUE","FALSE"))

ややこしくなりましたが、ORが文字列処理において、文字コードを引用しているような雰囲気でした。
もしくは文字処理では不適合である。
お礼コメント
emaxemax

お礼率 100% (634/634)

ありがとうござます。
ただ、これじゃ最初に提示させていただいた
=OR(AND(ISNUMBER(A1),A1>0),A1={"USA","UK"})
のほうが簡単じゃないですか?
投稿日時:2019/04/19 12:51
  • 回答No.4

ベストアンサー率 28% (4503/16082)

下記(注)の理由から、自信ないが =OR(N(A2)>0,A2="USA",A2="UK")
例と結果 
A2 B2 セル以下
2TRUE
-1FALSE
USATRUE
UKTRUE
OMFALSE
tuFALSE
USAAFALSE
USATRUE
87TRUE
xcFALSE
A2>0とすると、文字列の場合も、この判定するようで、Nで数値化して、それを避けた。(注)数値の場合の条件が、>=0だとだめですが。
https://kokodane.com/kansu_info_16.htm
お礼コメント
emaxemax

お礼率 100% (634/634)

imogasiさん、ありがとうございます。
なるほど、これはすごい!!
数値の場合の条件が、>0なのでぴったり!!・・・・と思ったのですが。
唯一、TRUEを入れられた場合(そんなことはまずないはずですが)、N関数では1になってTRUEが返っちゃいます。残念
投稿日時:2019/04/19 12:49
  • 回答No.3

ベストアンサー率 49% (254/517)

Excel(エクセル) カテゴリマスター
こんなのはどうでしょう
=OR(COUNTIF(A1,">0"),A1={"UK","USA"})
お礼コメント
emaxemax

お礼率 100% (634/634)

ありがとうございます。
これいいですね!
投稿日時:2019/04/19 13:03
  • 回答No.1

ベストアンサー率 21% (1521/7227)

これで出来ました。
=OR(A1>0,D1,D2)

対象はA1
D1にUSA、D2にUKを入力
そのセル参照でOK

実際の画面がこちら↓ これでA1が0以上またはUSAまたはUKでTRUEを返します。
お礼コメント
emaxemax

お礼率 100% (634/634)

早速ありがとうございます。
=OR(A1>0,A1={"USA","UK"}) と同じ結果です。
A1にROCとかJPNが入っても A1>0 となるようでTRUEが帰ります。
投稿日時:2019/04/18 08:58
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ