Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 25

Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php:25) in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 81
科学好き者の日々::エクセル INDIRECT関数

エクセル INDIRECT関数

エクセル初め.jpg  エクセル終わり.jpg

ゲーム感覚で4文字熟語を学ぶエクセルを作っている方がいらっしゃいます。
上の図のように、穴埋め問題として、2行目にある候補を正しい場所に持ってくると、問題番号位置に正解と表示し、全問正解すると1行目におめでとうございますと表示するというものです。(ここでは2問目以降は割愛しています)

ここで、A3に=IF(C4="中","正解","1.")という関数を書きます。C2にある正解である”中”をC4にマウスでドラッグしてもってくると#REF!の参照エラーになってしまいます。

エラーにならないようにするにはどうしたらいいでしょうか?と相談を持ちかけられました。

確かにやってみるとそうなります。C2をC4にコピーするのならエラーにはなりません。コピーではどうですか?と申し上げると、それでは、C2をC4に持っていったという感じにならないので、移動でできないか?ということです。

ちょっと時間を戴いて考えてみることにしました。



コピーをしたあと、元のセルをクリアするマクロをつくってみたのですが、一般的になりません。
数日後、「どうもうまくゆきません。ちょっと降参です」と話したら、INDIRECT関数でうまくいったとのことです。

F4に=INDIRECT("c4")と書いておき、A3に=IF(F4="中","正解","1.")とF4をみることにします。F4はC4をINDIRECT関数でみているので、参照エラーにはならないというわけです。

うまい方法ですね!

まだまだ学ぶことはたくさんたくさんありますね!


Calendar
<< May 2024 >>
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
262728293031
search this site.
tags
archives
recent comment
recent trackback
others
admin