次の方法で共有

条件付き書式の論理値が正しく評価されません

Anonymous
2017-03-20T04:15:45+00:00

A1にaという値を入れて書式を変える条件を

=INDIRECT("A"+1)="a"

とすると正しく書式が変わります。しかし、

=AND(INDIRECT("A"+1)="a")

とするとうまく変わりません。ORやNOTでも駄目でした。

これは何故でしょうか。

いろいろ実験してみましたが、そもそもこの式が論理式とみなされているかどうかすら謎です。

Microsoft 365 と Office | Excel | 家庭向け | Windows

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

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

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

Anonymous
2017-03-26T12:15:16+00:00

解決法を記載するのを忘れていましたが、もし現在の設定で条件付き書式を作成するなら、わざわざ問題の発生する可能性のあるINDIRECT関数は使わず、以下のような通常のセル参照の数式にするのが基本です。

=AND($A1="a",$E$2>0)

どうしてもINDIRECT関数を使う必要があるなら、AND条件の場合は、以下のような数式にします。

=(INDIRECT("A"&ROW())="a")*($E$2>0)

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

6 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

8 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-03-23T02:11:04+00:00

    &で試しましたが、+と全く同じ挙動でした。

    AND()を用いたかったのはINDIRECT()の条件と他のセルを参照してその値をトリガーとする条件式との論理積を作りたくて、例えばB2の値が0以下ならA列で値がaのセルを赤く塗りつぶすといったことをします。

    最終的な目的は数値のエラーチェックを行う機構を備えることでしたが、そちらについてAND()のかわりに書式の条件を複数設定することでできています。私が疑問に思っているのはなぜ他の条件式ではAND()を使えるのにINDIRECT()では使えないのかということです。

    関係ないかもしれませんが、条件式を間違えたときのエラーダイアログで、条件付き書式ではANDが使えないといったものが一回でたのですが、もう一度言いますが他の条件式ではAND()を使えているためよくわかりませんでした。

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

    0 件のコメント コメントはありません
  2. Anonymous
    2017-03-21T10:27:31+00:00

    >マウスドラッグで値を移動させた場合も書式の条件式が適用できるようにしたかったのです。(そのため、AND()で式を囲もうとしています)

    この場合AND条件は全く関係ないように思います。

    >このような場合、数字と文字列を連結し、座標の文字列を表す必要がありますが、インターネットで検索したところ、このような書き方があることをしりました。

    もし、A1,A2,A3・・・のように参照するセルを移動したいなら以下の数式になります(提示された数式ではエラーとなります)。

    =INDIRECT("A"&Row())="a"

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

    0 件のコメント コメントはありません
  3. Anonymous
    2017-03-20T13:20:33+00:00

    実際には

    =INDIRECT("A"+Row())="a"

    のような条件を特定の列のすべてのセルに行うことでマウスドラッグで値を移動させた場合も書式の条件式が適用できるようにしたかったのです。(そのため、AND()で式を囲もうとしています)

    このような場合、数字と文字列を連結し、座標の文字列を表す必要がありますが、インターネットで検索したところ、このような書き方があることをしりました。

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

    0 件のコメント コメントはありません
  4. Anonymous
    2017-03-20T08:47:55+00:00

    >A1にaという値を入れて書式を変える条件を

    =INDIRECT("A"+1)="a"

    とすると正しく書式が変わります。

    そもそも上記のINDIRECT関数の参照文字列の部分の数式が間違えていますので(文字に数字を加算するとエラーになる)書式が変わるはずがありません。

    実際に入力した数式をそのまま提示してください。

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

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