
INDIRECT関数で他のシートを参照していて、シートを複製した際に関数が必ず#REFとなってしまう。
関数は変更していないので間違っているはずはない。。なんなら関数を打ち直すと値が表示される。
原因はなんだろう?どうしたら改善できるんだろう??

#REFが出ている原因は、シート名に記号「-」が入っていることじゃ。
indirect関数で#REFが表示されないためには?
- シート名に「-」を入れない。
私の場合は、どうしてもシート名の最初に「-」を入れたいのでこの方法は選択したくありませんでした。 - 「-」を記号ではなく、文字列として認識させる。
「-」を記号ではなく、文字列として認識させる
#REFエラーが出ていた関数
=indirect(A1&“!C2”)
=indirect(A1&“!C2”)
修正後の関数
=indirect(“‘”&A1&”‘!C28”)
=indirect(“‘”&A1&”‘!C28”)
※この関数ではA1セルにシート名が入力されています。
※シート名は「-231015」、シート名はA1セルで以下の関数を入れることで生成しています。
=“-“&text(TODAY(),“YYMM”)&“15”
※関数を分解すると右のようになっています。 indirect ( ” ‘ ” & A1 & ” ‘ ! C28 )
※シート名は「-231015」、シート名はA1セルで以下の関数を入れることで生成しています。
=“-“&text(TODAY(),“YYMM”)&“15”
※関数を分解すると右のようになっています。 indirect ( ” ‘ ” & A1 & ” ‘ ! C28 )
記号「-」文字列として認識させるためには、記号を「’」で囲む必要があります。
「’」は、「”」で囲む必要があります。
このままではA1部分がA1という文字列になってしまうので、&でAIを囲みます。