アプリ版:「スタンプのみでお礼する」機能のリリースについて

検査日ごとに作成されたエクセルブック(検査表)があり、各検査表の結果を参照し別途一覧表にまとめているのですが、リンクの修正が手間です。オートフィルで出来ないでしょうか。

=[001検査表.xlsx]sheet1!$A$5
=[002検査表.xlsx]sheet1!$A$5
=[003検査表.xlsx]sheet1!$A$5

↑こんな感じで、ブックの名前だけ連続で変わっていくのを、なるべく効率的にやりたいです。

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

  • 回答ありがとうございます。セルの参照式です。

    教えてもらった関数をどれも使ったことがなく、試しに式を入力してみましたが、うまくいっていません・・・。試行錯誤してみます。

      補足日時:2023/05/18 17:07

A 回答 (2件)

こんばんは



>リンクの修正が手間です
ハイパーリンクのことでしょうか?
もしそうなら、HYPERLINK関数を利用すれば簡単です。

HYPERLINK関数の第一引数にリンク先を文字列で指定すれば良いので、INDIRECT関数も必要ありません。
連番で変わる部分だけを、ROW()関数やCOLUMN()関数を利用して作成するようにすれば良いです。

=HYPERLINK("[フォルダパス\"&Text(row(A1),"00#")&"検査表.xlsx]sheet1!$A$5", Text(Row(A1),"00#")&"検査表")
みたいな感じです。

ハイパーリンクではなく、セルの参照式のことであるなら、No1様の回答にある通りになさってください。
    • good
    • 0

『[001検査表.xlsx]sheet1!$A$5』


という文字列を作ってやり、それをINDIRECT関数で範囲に置き換えれば良い。

ということで、文字列を作る関数を組めばイイ。
『001』の部分が変わるということで、
 縦方向にオートフィルするなら「ROW関数」
 横方向にオートフィルするなら「COLUMN関数」
で値を返すようにするだけです。
 ROW(A1)
とするなら、オートフィルで
 ROW(A2)
 ROW(A3)
 …
となり、返ってくる値も1ずつ増える。
数字3桁になるという事なら、TEXT関数で書式を指定すれば余裕でしょう。
 TEXT(ROW(A1),"000")
こんなんでいい。
ぶっちゃけ
 TEXT(ROW(A1),"[000検査表.xlsx]sheet1!$A$5")
で良いんだ。

あとはINDIRECT関数に入れて範囲に置き換えるだけ。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています