koook
@koook

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

INDIRECT関数、SUBSTITUTE関数を組み合わせた計算式に関数エラー

解決したいこと

毎年作成する、あるエクセル集計表の集計値を前年度と比較して、大きな差が生じていないかを確認する作業を行う必要があります。
集計表がエクセルファイルで数十個、また各エクセルファイル内に複数のシート、その各シート内に数百の集計値がありますので、ひとつひとつ手作業で差を持ちめるのは無理があります。
そのため、別途エクセルで比較表を作成し、今年度の集計値とそれに対応する前年度の集計値の差を各セルに表示しようと考えています。

本題ですが、今年度の集計値を参照するための関数でどうしても#REF!のエラーが出てしまうため、正しく参照できるようにしたいです。

参考
今年度作成ファイル名:〇〇〇.xlsx
昨年度作成ファイル名:R5_〇〇〇.xlsx
比較表ファイル名:(比較表)〇〇〇.xlsx

それぞれ同一フォルダの中で、「R6」「R5」「比較表」というフォルダに分けて保存しています。

*上記ファイルがそれぞれ数十個ずつあります。

発生している問題・エラー

#REF!

該当するソースコード

=INDIRECT("'"
&LEFT(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))-5)
&"R6\"
&SUBSTITUTE(MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1)),99),"(比較表)","")
&"'!"
&ADDRESS(ROW(),COLUMN()))

自分で試したこと

=INDIRECT("'"
&LEFT(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))-5)
&"R6\"
&"[ファイル名]"
&MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,99)
&"'!"
&ADDRESS(ROW(),COLUMN()))

上記ではエラーなく狙い通りに参照可能です。

また、ファイル名およびシート名を取得する関数


SUBSTITUTE(MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1)),99),"(比較表)","")

上記ではファイル名およびシート名が狙い通りに取得可能です。

そのため、エラーなく参照できている関数の内、
ファイル名を取得する関数
シート名

&"[ファイル名]"
&MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,99)

を、ファイル名およびシート名を取得する関数

&SUBSTITUTE(MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1)),99),"(比較表)","")

に置換した関数でも狙い通りに参照可能と思ったのですが、なぜかエラーになってしまいます。

解決方法にアイディアがあればご教示願います。

0

3Answer

Excelメニュー → 数式 → 数式の検証 で、
「検証」をクリックすると、一番内側の式から、1ステップづつ展開しいくので、どの関数でエラーになるか見つけることができます。

q2.png
2Like

Comments

  1. @koook

    Questioner

    ありがとうございます。知らない機能でした。エラーチェックに活用したいと思います。

&LEFT(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))-5)

-5はどこからデてきたものでしょうか?
-1ではないでしょうか?

1Like

Comments

  1. @koook

    Questioner

    ありがとうございます。確認してみます。

ファイルを閉じてしばらく経過して再度開くと無事エラーが解消されました。ご迷惑おかけしました。回答いただいた方、ありがとうございます。

0Like

Comments

  1. 解決したのであれば、本問をクローズしましょう。

  2. ファイルを閉じてしばらく経過して再度開くと無事エラーが解消されました。

    そんなことがあるんですね。何だったろうか?

Your answer might help someone💌