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

INDIRECT関数を使うと、表に変更がなくても保存するかどうかが問われます。
これをINDIRECT関数を使用しないで、CELL関数を使用することで回避しようとしています。
下記の表で実例を示します。表のフォーマットを維持するために必要に箇所には、空白の代わりにアンダーバー("_")を使用しています。

___A___B___C___D
1__C2
2__________OK
3

INDIRECT関数は、 =INDIRECT(A1) で、演算結果は文字列"OK"を得られます。
CELL関数は、 =CELL("contents",CELL("contents",A1)) で、「数式が正しくない」となります。

修正方法をご教示頂きたくよろしくお願いします。

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

  • CELL関数もINDIRECT関数と同様に再計算が行われるようです。
    ですので、INDEX関数を使用してことにして解決することが出来ました。

      補足日時:2015/05/18 21:43

A 回答 (1件)

式 =CELL("contents",C2) で文字列 "OK" が得られるのはご承知のとおり。


しかし、この式中の「C2」は文字列でなく、範囲名に等しい
だから、セル C2 に例えば target なる範囲名を付けておけば、
式 =CELL("contents",target) でも文字列 "OK" が得られる次第。

式 =CELL("contents",A1) で得られる 「C2」は文字列 "C2" なの。
だから 式 =CELL("contents","C2") は駄目よ、駄目、駄目。
式 =CELL("contents","target") が駄目なのと同じく、無駄よ、無駄、無駄。

「修正方法」?知りません。私も知りたい!
    • good
    • 0
この回答へのお礼

早速回答頂きありがとうございます。

「数式が正しくない」と駄目よ、駄目、駄目と言われた理由が分かりましたが、・・・

お礼日時:2015/05/18 17:30

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