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

3つのエクセルをそれぞれのシートのセルに反映させたいときはどうしたらいいでしょうか?
例えば①シートのA1の数値を②シートのB1と③シートのC1に反映したい。=でいーと思いますが、毎月シートの名前が変わるので、その都度、=で変更しないといけないと思いますが、それをしたくなくないのでシート名が変わっても自動で反映する方法はないでしょうか?
ちなみに①と②のエクセルはシートが30シートほどあります

「3つのエクセルをそれぞれのシートのセルに」の質問画像

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

  • 写真のように、ファイル名がR5.3からR5.4にかわっても、今入れている=の部分もR5.4に自動でかわらないですよね?

    「3つのエクセルをそれぞれのシートのセルに」の補足画像1
      補足日時:2023/04/25 22:26

A 回答 (4件)

ご質問者のご希望と合致しているかどうかわかりませんが、以下のような方法で実現できると思います。



まず、各ファイルの置き場所ですが、セルを参照する3ファイルは同一のフォルダにあるものとします。
ご掲示の画像で言えばデスクトップ、つまりC:\Users\ユーザー名\Desktop\の傘下にあるということになります。

ご質問のような状況では、ファイル名は当該の年月に合わせて決定するのが一般的です。従って、令和5年3月であれば、ファイル名は①★R5年3出勤簿.xlsx、②★R5年3明細.xlsx、③★R5年3源泉一覧.xlsxというファイル名となり、これが、令和5年4月であれば、ファイル名は①★R5年4出勤簿.xlsx、②★R5年4明細.xlsx、③★R5年4源泉一覧.xlsxとなるということです。

つまり、年月によって、ファイル名の一部が共通になるというルールで運用されていることが前提です。このルールで運用されている場合、自分のファイル名がわかれば、他の2つのファイル名は容易に推測できます。

これを利用すると、例えば②★R5年3明細.xlsxの●●●シートのD10セルに①★R5年3出勤簿.xlsxの○○○シートのK47セルを反映させるとすれば、まず、自分のファイル名・シート名である②★R5年3明細.xlsxの●●●シートのフルパスのファイル名、シート名を取得して、そのファイル名の「②」を「①」に、「明細」を「出勤簿」に、シート名では「●●●」を「○○○」に変えれば①★R5年3出勤簿.xlsxというファイル名とシート名を生成できます。

ファイル名とシート名が生成できれば、あとはセル範囲を指定すればよいので、ファイル名は当該の年月に合わせて決定するというルールなら、②★R5年3明細.xlsxの●●●シートのD10セルに

=INDIRECT("'"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CELL("filename"),"明細.","出勤簿."),"[②","[①"),"]●●●","]○○○")&"'!K47")

という数式を記述することで、ファイルを更新しても自動的に新ファイル名で参照機能が有効になります。

明細、出勤簿に「.」を付けているのはファイル名であることを特定するため、①、②に「[」を付けているのはファイル名の頭文字であることを特定するため、●●●、○○○に「]」を付けているのはシート名であることを特定するためです。

但し、fujillinさんの回答にもあるとおり、INDIRECT関数は参照先ブックが開いた状態にないと値の参照はできないため、数式記述セルが「#REF!」となってしまいます。
    • good
    • 1
この回答へのお礼

わかりました。ありがとうございました。


そうしたら、他の人がこのエクセルを使うとしたらファイルをかならず開いていることを説明しておかないといけないですね。
ありがとうございました。

お礼日時:2023/04/26 15:53

No2です。



>具体的にどういうふうに作るか教えて欲しかった
質問が抽象的なので、その情報の範囲で可能な、方法を具体的に回答しています。

回答者には質問文に記載されている内容が全てなので、その情報の範囲でしか回答できません。
コピペできるような回答をお求めなら、それに必要な情報を提示する必要があります。

 ="[" &TEXT(TODAY(),"ge.m")& "]" &TEXT(TODAY(),"d")&"!A1"

などと回答してみたところで、「うまくできません」とだけ言われるのがオチなのは見えていますから。
    • good
    • 0
この回答へのお礼

ありがとうございました!
どうもすみませんでした。
自分では抽象的ではなく、月でフィル名が変わるので、そのまま=で3つのファイルを各々参照するとしたら、毎月=を手で変えたくなかったので自動でできたらいいな思い、自動で出来るものはないかと思い伝えたつもりでしたが伝わってなく申し訳ありません。
教えてもらって出来ませんなんていうつもりもないですし、そもそもそれでしたら質問してません。決めつけたようにオチがみえたとは。
こちらの質問もあなたのように出来ないから質問自体が抽象とか言われる、取られるかもしれませんが決めつけは違うので。
気を悪くさせたようで、大変申し訳ございませんでした。

お礼日時:2023/04/26 15:48

No1です



>ファイル名がR5.3からR5.4にかわっても~~
No1に書いた通りです。
論理的な計算で導けるのなら可能です。
忖度が必要ならできません。
    • good
    • 0
この回答へのお礼

具体的にどういうふうに作るか教えて欲しかったのでが、初心者には関数だけを言われても難しいですね。

時間とって頂いてありがとうございました。

お礼日時:2023/04/26 11:16

こんばんは



>シート名が変わっても自動で反映する方法はないでしょうか?
どう変わるのか不明な場合には、質問者様の思惑を忖度することはできません。

説明に無いのでよくわかりませんけれど、なんとなく日付に関係しそうな感じなので・・
もしそうなら、以下のような方法があるかも知れません。

1)TODAY関数等を利用して、参照シート名を文字列で計算し、INDIRECT関数で参照式を作成することは可能でしょう。
ただし、INDIRECT関数は揮発性関数であることと、参照先ブックが開いた状態にないと値の参照はできません。

2)被参照シートを参照される期間中は固定名にしておく。
「当月シート」等の固定名にしておいて、被参照期間が終わったら別名にし、次の被参照シートを固定名にする。
ルールさえきちんと守れれば、関数式は固定のままですみます。

3)参照元ブックを開いた際に、マクロで自動的に参照式内のシート名を変更する。
(参照先のシート名を、計算等で求められることが条件です)
質問者様がマクロを使える必要がありますが、1)とは異なり直接に参照式を変更できるので、参照先ブックが閉じた状態でも値の参照は可能です。
ただし、指定するブック名だけではなく、ブックのフルパスからアドレスを指定する必要があります。
    • good
    • 2

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