Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
OR,AND関数内で比較演算子を使った時、文字列の場合はFALSEと判定させたい
投稿日時: 21/01/21 12:49:54
投稿者: naomaru999

 
対象セルに =OR(V207>=95,W207>=1.9) と入力した際に、
 
V207、W207セル内に文字列が入っていいた場合でも、TRUEとなってしまう。
 
これを、FALSEと判断させることはできないのでしょうか?
 
V207、W207セル内が 数字の時のみを正しく判断し、TRUEと返してほしい。
 
どなたか分かる方がいらっしゃいましたら、よろしくお願いいたします。

回答
投稿日時: 21/01/21 13:35:15
投稿者: Suzu

ISNUMBER関数を使って 文字かどうかを判定します。
その上で、その結果と、元の 『OR(V207>=95,W207>=1.9)』との論理積を求めれば良い思います。

投稿日時: 21/01/21 13:43:14
投稿者: naomaru999

ありがとうございます。
当該関数を使用して、IF分で処理してみたいと思います。

回答
投稿日時: 21/01/21 14:02:40
投稿者: Suzu

引用:
当該関数を使用して、IF分で処理してみたいと思います。

 
いえ。 IF関数は必要ありません。 AND関数だけで良いと思います。
 
 
『V207 が 数値』
 かつ
『W207 が 数値』
 かつ
『【Y207 が 95 以上】または【W207 が 1.9以上】』
 
が成り立てば良いでしょう。
 
 
 
※「数値」の判定について
    セルの値 として、数値のデータ Ex) 19
    数値と判定できる値        Ex) 書式設定に文字列 を指定した状態 で 19 を入れた
 
  ISNUMBER関数は、前者のみ を True とします。
 後者で良いのであれば、 ISNUMBER(Y207*W207) の様なやり方もあります。

回答
投稿日時: 21/01/21 14:18:16
投稿者: んなっと

=AND(COUNT(V207:W207)=2,OR(V207>=95,W207>=1.9))
 
    V   W   X   Y
207 100   1  TRUE  TRUE
208 100    FALSE FALSE
209    100 FALSE FALSE
210       FALSE FALSE
211 100 #N/A  #N/A FALSE ←エラーの可能性もあるときは、下のようにIFを使ったほうがいい。
 
=IF(COUNT(V207:W207)=2,OR(V207>=95,W207>=1.9),FALSE)

回答
投稿日時: 21/01/21 16:18:47
投稿者: んなっと

「複数セルがすべて数値である」
 
→COUNT(セル範囲)=セルの数
 
です。よく使われるので、公式として覚えておいていいと思います。

回答
投稿日時: 21/01/21 17:02:00
投稿者: Suzu

んなっとさん
 
X列、Y列 はどんな判定式を現しているのでしょうか?
 
 

引用:
エラーの可能性もあるときは、下のようにIFを使ったほうがいい。

そうでした。
 
AND(条件式1,条件式2) の場合、 条件式1 と、 条件式2 を別々に評価し、
その結果に対し論理積評価 を行うので、片方が エラーの場合、ANDの結果も エラーになります。
 
対し、
 IF(条件式1,(条件式2),△)を使うと、条件式1が True の場合に、条件式2が評価される
                   条件式1が False の場合には △が選択される
 
条件式1 に エラーをも考慮した COLUNTを使った方が良いですね。

回答
投稿日時: 21/01/21 17:19:13
投稿者: んなっと

X列が
=AND(COUNT(V207:W207)=2,OR(V207>=95,W207>=1.9))
です。
これでいいと思います。
 
エラーに関することは考慮する必要はないでしょうね。

回答
投稿日時: 21/01/21 19:07:11
投稿者: ブルー

 >V207、W207セル内が 数字の時のみを正しく判断し、TRUEと返してほしい。
 
 V207が100、W207が文字列の場合は TRUE でいいのなら
 
 =OR(N(V207)>=95,N(W207)>=1.9)
 
 N 関数は文字列を 0 とみなします。

回答
投稿日時: 21/01/21 19:17:03
投稿者: んなっと

ブルーさん、その回答や
=OR(V207-95>=5,W207-1.9>=0)
のような式が来るような気がしたから
わざとW208などを「文字列」ではなくて「空欄」にしておいたんです。
これはあり得るケースです。うまくいきませんよね。
 
    V   W   X   Y
207 100   1  TRUE  TRUE
208 100    FALSE FALSE
209    100 FALSE FALSE
210       FALSE FALSE

回答
投稿日時: 21/01/21 19:34:50
投稿者: ブルー

 どちらか一方が条件を満たせば TRUE ではないんですか?
 

	V	W	X
207	100	1	TRUE
208	100		TRUE
209		10	TRUE
210			FALSE

回答
投稿日時: 21/01/21 20:56:19
投稿者: んなっと

最初の質問に明確に書かれています。

引用:
V207、W207セル内が 数字の時のみを正しく判断し、TRUEと返してほしい。

回答
投稿日時: 21/01/21 20:59:50
投稿者: WinArrow
投稿者のウェブサイトに移動

>=OR(V207>=95,W207>=1.9)
の数式には、
片側のセルが空白
という条件は、あるのでしょうか?
 
 
 
 

回答
投稿日時: 21/01/21 21:18:31
投稿者: ブルー

>V207、W207セル内が 数字の時のみを正しく判断し、TRUEと返してほしい。
 
どちらか一方でも条件を満たす数値の場合のみ TRUE にしたいとも解釈できます。
だから
>V207が100、W207が文字列の場合は TRUE でいいのなら
と書いています。
 
両方とも数値という条件なら、文字列云々を抜きにしても
=OR(V207>=95,W207>=1.9)
この式ではダメだということになるでしょう。

回答
投稿日時: 21/01/21 21:41:20
投稿者: んなっと

なるほど、文字列は無視して数値だけを考えるということですね。
勘違いしていました。申し訳ありませんでした。
 
            ↓こっちですね。
    V  W   X   Y
207 100 0.1  TRUE  TRUE
208 100  aa FALSE  TRUE
209  aa 0.1 FALSE FALSE
210  aa  aa FALSE FALSE
        ↑私のはこれ。
 

回答
投稿日時: 21/01/21 21:43:33
投稿者: んなっと

読み返してみると、たしかにその可能性もあります。

回答
投稿日時: 21/01/21 21:50:02
投稿者: んなっと

というより、ブルーさんの方が正しそうですね。
私のはなしということでお願いします。

投稿日時: 21/01/22 06:56:50
投稿者: naomaru999

皆様、色々とありがとうございました。
 
大変勉強になりました。
仕事に使っておりまして、数式のコピペですみそうです。
 
かなり複雑な式も必要で、どうしてもIF関数では煩雑になりすぎる所がありました。
VBAを使いたくなく、部分的に問題点を抜き出してお伺いしておりました。