プロが教えるわが家の防犯対策術!

数式内のセル参照の仕方について分かる方が居れば教えてください。

例えば、
 =IF(30>=20","〇"、"×")
という数式があり、数式内の30をセル参照にする場合(A2セルを参照先にする場合)
 =IF(A2>=20","〇"、"×")
となり、さらに数式内の20をセル参照にする場合(A3セルを参照先にする場合)
 =IF(A2>=A3","〇"、"×")
となると思います。

ここからさらに演算子である>=をセル参照にする場合(A4セルを参照先にする場合)、
どのように記述すれば良いのでしょうか?
(そもそも演算子をセル参照にすることって出来ましたっけ???)

単純に
 =IF(A2A4A3","〇"、"×")
と書くと#NAME?になり、
 =IF(A2&A4&A3","〇"、"×")
と書くと#VALUE!になってしまいます。

因みに当方環境はOffice365となります。

質問者からの補足コメント

  • へこむわー

    すいません、数式上にダブルクォーテーションが1つ多かったです。
    20もしくはA3の右横のダブルクォーテーションは無視してください。

      補足日時:2020/12/10 17:49

A 回答 (2件)

こんなのでどうでしょう?

「エクセルのセル参照の仕方について」の回答画像1
    • good
    • 0
この回答へのお礼

回答有難うございます。
う~ん、確かに求めた動作をしますね。
動作する理屈も理解できます。

IF関数の場合は文字列連結で数式を作っても、
論理式と認識されずに”30>=20”という文字列として認識されてしまっているのが原因で求める動作をしない思うのですが、論理式として認識させることはできないのでしょうか・・・。

お礼日時:2020/12/10 22:45

通常の関数としては、論理式として認識しません。


どうしてもとなると、マクロ関数として数式として認識できる
EVALUATE関数を使うことになります。
https://excel-ubara.com/excelvba4/EXCEL231.html
http://ryu-hairstone.air-nifty.com/blog/2012/07/ …

[名前の定義]で[参照範囲]を
 =EVALUATE(Sheet1!$A$2&Sheet1!$A$4&Sheet1!$A$3)
にして、[名前]を「論理式」と仮に命名します。
(シート名は適宜変更してください)

IF関数で結果を求めるセルに
 =IF(論理式,"〇","×")
と入力することで、論理式の部分が認識できるようになります。
「エクセルのセル参照の仕方について」の回答画像2
    • good
    • 0
この回答へのお礼

回答有難うございます。
Evaluateメソッドですか・・・。
今まで使ったことがないメソッドですが、
知っていたらいろいろ使えそうなメソッドですね。

私も掲載ページにあるINDIRECT関数は知っていて
今回利用できないかは考えていたんですが、Evaluateは知りませんでした。

ただ、今回の機能を実現するためだけに名前の設定までするのは
ちょっと大げさ感があって抵抗がありますね。
数式がすっきりして見た感じはかなり良いのですが。

お礼日時:2020/12/12 19:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!