excelですが、A1:="", A2:=IF(A2>100,"OK","")と入力すると、空白を期待しましたが、A2:OKとなります。なぜでしょうか?

Anonymous
2023-11-18T00:21:43+00:00

excelですが、A1:="", A2:=IF(A2>100,"OK","")と入力すると、空白を期待しましたが、A2:OKとなります。なぜでしょうか?

="" =IF(A1>100,"OK","")
Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

ひまじん 17,185 評価のポイント
2023-11-18T15:50:02+00:00

こんにちは。横合いから失礼します。

他の方も書かれていますが、質問文には矛盾点があります。

もし、A2セルに、

=IF(A2>100,"OK","")

という数式を入れたとすると、循環参照に関する警告メッセージを表示して正しく計算されません。

なので、おそらく A2セルには提示されている図の通り、

=IF(A1>100,"OK","")

という数式を入れていると推測しています。

その場合ですが、Excel は、何らかの文字列を入力したセルと数値を比較しようとすると、Excel が処理できる正の最大値( 9.99999999999999E+307 )と比較したとしても、必ず文字列の方がより大きいと判断します。

※ Excel が処理できる正の最大値については、下記のリンク先をご覧ください。

・Excel の仕様と制限

https://support.microsoft.com/ja-jp/office/excel-%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%A8%E5%88%B6%E9%99%90-1672b34d-7043-467e-8e27-269d656771c3?ui=ja-jp&rs=ja-jp&ad=jp#ID0EBACAAA=Excel_2007

例えば、A1セルに ="" という数式を入れ「空白の文字列」(「長さ 0 の文字列」)を入力したとして、A2セルに、

=IF(A1>9.99999999999999E+307,"OK","")

というような数式を入れたとしても、結果は必ず "OK" と表示されます。

""(「空白の文字列」)は何も入力していない状態ではなく、長さ 0 の文字列を入力している(あるいは表示している)状態を意味しますので、ご注意ください。

ここで、A1セルに"a" という文字列を入力したとしても、結果は同様に "OK" と表示されます。

ですが、A1セルに何も入力していない状態( A1セルの内容を削除した状態)にしたとすると、結果は ""(「空白の文字列」)が表示されます。

Excel は、何も入力していない状態のセルを他のセルから参照した場合、数値の 0 が入力されていると判断するからです。

なので、

=IF(A1>100,"OK","")

という数式をご希望通りに動作させたい場合、A2セルに、

=IF((TYPE(A1)=1)*(A1>100),"OK","")

という数式を入れてみてください。一例です。

この数式では、A1セルの値が数値( TYPE(A1)=1 )且つ 100より大きい場合には "OK" を表示し、A1セルの値が文字列や 100より小さいか等しい数値だった場合には ""(「空白の文字列」)を表示します。

もちろん、A1セルに ="" という数式が入っていた場合や何も入力されていない場合には ""(「空白の文字列」)を表示します。

お試しになってみてください。

ご参考になれば幸いです。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Hebikuzure aka Murachi Akira 328.3K 評価のポイント MVP ボランティア モデレーター
    2023-11-18T06:19:40+00:00

    =IF(A2>100,"OK","")

    =IF(A1>100,"OK","")

    実際はどちらなのでしょう?

    A1 に空文字列が入っているかどうかを判定したいのであれば、

    ISBLANK(A1)

    A1=""

    などを条件式に使いましょう。

    IF を使用してセルが空白かどうかを確認する - Microsoft サポート

    実際の判定条件(どのような条件判定を行いたいのか)を具体的に示すと、より具体的なアドバイスが得れれるかもしれません。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2023-11-18T03:32:12+00:00

    Here's the formula:

    =IF(A2>100,"OK","")

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2023-11-18T03:31:25+00:00

    こんにちは <Customer name="">、

    ご連絡いただきありがとうございます。私の名前はレオで、あなたと同じユーザーです。お悩みのお手伝いをさせていただきます。

    あなたが達成したいことの間違った公式を使用しているようです。確認すると、A2は数式(A2>100)の独自の値に依存し、Excelは数式の計算を試みます。ただし、数式自体には結果の 1 つとして空の文字列 ("") が含まれているため、Excel はこれを空白以外の結果として解釈します。その結果、セル A2 に "OK" と表示されます。

    期待した動作を実現するには、セル A2 で次の数式を使用できます。

    =IF(A2>100,"OK","")

    この場合、A2:=部分がない場合、Excelはそれを通常の数式として扱い、結果はセルA2に表示されます。条件が満たされない場合(つまり、A2が100以下の場合)、セルには空白が表示されます。

    ご理解とご協力を賜りますようお願い申し上げます。私はあなたのcocernに関する有用な情報を提供したことを願っています!他に質問があれば教えてください。常に安全を確保してください!

    よろしくお願いいたします

    獅子座</Customer>

    この回答は自動翻訳されています。文法や表現の誤りが発生した場合はご容赦ください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません