web-dev-qa-db-ja.com

現在のワークシートの名前を参照して、別のワークシートのセルを参照しますか?

24枚のワークブックを作成する予定です。シート名は、Jan、Jan item、Feb、Feb itemなどになります。

基本的には、予算に関するもので、月という名前のシートには概要情報があり、名前に「アイテム」があるものにはより詳細な情報があります。

これで、「Jan」スプレッドシートの「Jan item」スプレッドシートのセルJ3を参照するセルが必要な場合、次のことができます。

='Jan item'!J3

ただし、各サマリーシート(1月、2月など)に対してこのような数式を再入力する代わりに、次のようなものが必要です。

=(reference-to-this-sheet's-name + " item")!J3

そうすれば、式を1月から2月にコピーでき、Xxx itemを明示的に入力しなくても、正しいFeb itemシートが自動的に表示されます。

私がこれを尋ねる理由は、各サマリーシートに対して、対応する箇条書きシートのセルへのそのような参照が多数あるためです。

私が求めていることは実行可能ですか?

24
King_V

まだ間接的に使用しています。 A1セルが、参照シート(Jan)の名前を含む変数であるとします。あなたが行く場合:

=INDIRECT(CONCATENATE("'",A1," Item'", "!J3"))

その後、「Jan Item」!J3値が得られます。

31

あなたがVBAルートに行ってタブ名を解決したい場合を除き、Excelの式はMid関数などに基づいてかなりいです。しかし、これらの方法は両方とも見つけることができます here

むしろ、私がそれを行う方法は次のとおりです。

1)たとえば、Reference_Sheetという名前のシート上の1つのセルを作成し、そのセルに値 "Jan Item"を入力します。

2)次に、次のようなIndirect関数を使用します。

=INDIRECT(Reference_Sheet&"!J3") 

3)今、各月のシートについて、その1つのReference_Sheetセルを変更するだけです。

これがあなたが探しているものをあなたに与えることを願っています!

12
John Bustos

フェルナンドと同様の方法で月次ページを作成した方法は次のとおりです。

  1. 月の各ページ番号に手動で書き込み、その場所にThisMonthという名前を付けました。これしかできないことに注意してくださいbeforeシートのコピーを作成します。 Excelをコピーした後、同じ名前を使用することはできませんが、シートコピーを使用すると、同じ名前を使用できます。このソリューションは、名前を付けなくても機能します。
  2. 月の週数をロケーションC12に追加しました。命名も結構です。
  3. 私はすべてのページで5週間を作り、5週目には機能を作りました

      =IF(C12=5,DATE(YEAR(B48),MONTH(B48),DAY(B48)+7),"")
    

    今月が4週間しかない場合は、5週目が空になります。 C12は週数を保持します。

  4. ...
  5. 年次Excelを作成したので、12枚のシートがありました(毎月1枚)。この例では、シートの名前は「Month」です。このソリューションは、すべてのスペースを「_」文字として変更する必要がある場合を除き、ODSファイル標準でも機能することに注意してください。
  6. 最初の「Month」シートの名前を「Month(1)」に変更したため、同じ命名規則に従っています。必要に応じて「Month1」という名前を付けることもできますが、「January」にはもう少し作業が必要になります。
  7. シート#2から始まる最初の日のフィールドに次の関数を挿入します。

     =INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!B15"))+INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!C12"))*7
    

    したがって、別のWordでは、前のシートで4週間または5週間を記入すると、日付が正しく計算され、正しい日付から継続されます。

0
Timo Riikonen