
ゲーム感覚で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関数でみているので、参照エラーにはならないというわけです。
うまい方法ですね!
まだまだ学ぶことはたくさんたくさんありますね!