• ベストアンサー

エクセル 左隣のシートを参照

恐れ入りますが御教示ください。 エクセルで新しく次のような表を作りました。 シート名 4月 B列 前月残高 C列 当月増 D列 当月減 E列 当月残高 E列には例えば3行目なら=B3+C3-D3という式が入っています。 次に、このシートを右隣にコピーして、シート名を5月に変えます。 お伺いしたいのは、4月の残高を5月の前月残高に写す、そして6月以降を作る時、この作業(左隣のシートの当月残高を前月残高に写す)を自動化する方法です。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.1

シート名が4月、5月、6月・・・11月、12月 となっているのでしたら以下の数式で試してみてください。 5月のB1に入力して必要な場合下方向にコピーしてください。 未保存のファイルではエラーになります。 =INDIRECT(LEFT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),LEN(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))-1)))-1 & "月!B" & ROW(1:1))

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問者は、エクセル関数でやることが念頭にあるのかな。 すでに回答が出ているが、式が結構長く複雑になる。 またその場合は、下記(2)は手作業でやるのを覚悟する必要がある。 ーー 下記はVBAでやる方法が念頭にあるが、 次月繰り越しは (1)前月データシートをコピーして新しいシート(今月分)にする。 (2)式や見出し文字や書式は保存して、数値だけ0にする Sub test02() Sheets("Sheet1").Cells.Copy Sheets("Sheet2").Range("A1") Cells.SpecialCells(xlCellTypeConstants, 1).Select ' 定数のあるセルを選択 Selection.ClearContents End Sub (3)シート名など関係個所を修正(VBAか手作業) (4)前月繰り越し残を、今月シートへ持ってくる。    前月繰り越し残の入るセル位置が、毎月変わらない仕組み(表)なら    VBAで値を持ってこれる。   前月の繰り越し残高のある行は毎月変わるのだろうが、見出しがその行に   あるなら、(「翌月繰り越し残」など)その文字列を探してその残を取り出し  当月の「前月繰り越し残」の持ってこれる。 (5)データが今月分を入力を終えて、前月より多かったり少ない場合の処理。 ーー シートタブで見て、左隣のシートを参照 Sub test01() x = ActiveSheet.Index MsgBox Worksheets(x - 1).Range("A1") End Sub ーー でもこの考えは使わない方がよいと思う。 手っ取り早いので使うのだろうが。 シートの位置は変えられやすいから。 使うなら左となりのシート名を確認のために出すとかして確認してはどうか。 シートの名前をもとに考えた方がよいと思う。 ーー シート名に年月が入っている場合、今月分の名前を作りだすVBA VBAコードが、結構煩わしくて、手作業でやるのが簡便だと思う。 == 参考(質問課題直接でないが、VBAだが、) エクセル シート月繰り越し  でGoogleなど照会 https://ar-kawabe.com/blog/excel-worksheets-copy/ ExcelマクロのWorksheets.Copyメソッドを使って、月次出納帳シートの自動繰越機能を作成。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1625/2467)
回答No.2

12月、1月、2月と続く場合はNo1の式を以下のように変更するか1月だけ手入力するかで試してください。 =IF(LEFT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),LEN(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))-1)))="1",INDIRECT("12月!B" & ROW(1:1)),INDIRECT(LEFT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),LEN(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))-1)))-1 & "月!B" & ROW(1:1)))

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 計算結果の反映

    お世話になります。 上手く説明できるかどうか。 A列に日付 B列に収入 C列に支出 D列に残高 とします。 日々、入力していきます。 日々、残高を表示させます。 当月末の残高が出ました。 その残高を翌月の前月残高として始めたいのです。 月ごとにシートを増やしていっても、必ず当月残が翌月の前月残として反映させる計算式がありますか。

  • EXCELについて教えて下さい

     1月  +  -  2月 A B C 計  罫線がないのでわかりにくいのですが、上図のように項目ごとに毎月、残高を計算する表を作ろうと思っています。  項目が多いので実際にはひと月ごとにシートを作っていきたいのですが、シートをコピーすれば当月の残高が翌月に前月の残高のところにくるようにすることはできないのでしょうか?毎月シート増えていくものなので毎回設定していては大変なので・・。教えて下さいお願いします。

  • エクセルの参照について

    こんにちは。 みなさんのお知恵をお借りしたく、質問させていただきました。 エクセルで月別のシートを作っているのですが、 当月シートに前月のデータを参照させたいと思っています。 例えば11月セルB1に10月のA1のデータをかえすといったように。 もちろん10月シートを指定すればよいのでしょうが、 それではシート毎に個別に参照を設定しなければならず、 ちょっと面倒だなと感じております。 上記の方法では11月のシートをコピーして12月のシートを作成しても 前月参照セルは10月のシートを参照してしまうことになります。 常に前月のシートを参照するためにはどうすればよいのでしょうか? シートを相対参照すればよいのかと思いますが、その方法がわかりません。 勉強不足で申し訳ありませんが、ご存知の方いらっしゃいましたら教えてください。 よろしくお願いいたします。

  • エクセルでシート間のセルの参照について

    困っていますので教えてください。 (1月)シート1         (2月)シート2 当月数量 累計数量 金額     当月数量 累計数量 金額           合計               合計 このような書式の表がシート1とシート2にあります。 当月数量に数字を入力すると累計数量に足されるようになっています。 このシート1(1月)の累計数量をシート2(2月)の累計数量に入れ、なおかつ2月の当月数量と足して2月の累計数量を表示するようにするにはどうしたらいいでしょうか? もう一つ。 単価 数量 金額 a 5  3  15 b 1  1  1 c 2  2  4 同じ表がシート4まであり、シート1で入力された数字をそのまま シート2~シート4にも同じように表示するようにするにはどうしたらいいでしょうか? こちら初心者なので説明が分かりずらいかもしれませんが 詳しい方教えてください。よろしくお願いします。

  • Excelで2シートに渡る参照、数式の方法がわからず困っています。

    育児休暇明けのワーキングマザーです。 上司より、こういうことをやりたいからその数式を考えて表を作りなさいと・・・・次々にオーダーがきます。ちなみにExcel初心者です。 今困っているのは、以下のことです。 Sheet1のA列の企業名がSheet2のA列に重複してあり、且つSheet1のA列に対してB列に何らかのチェックがあった場合のみ、Sheet2のB列にチェックをつける。 具体的にはこんな感じ <Sheet1> A列 B列 A社  B社 C社 電話 D社 メール E社 <Sheet2> A列 B列  A社 B社 C社 ○  D社 ○ E社 色々調べてみたのですがわからず(涙) 宜しくお願いします。

  • Excel 別のシートを参照し、行のデータを列の向きに直したい

    <Sheet1> A  B  C  D   E   F ~ 1 商品名 価格 数量 割引率 合計 2  イ 3  ロ 4  ハ 5  ニ のようなデータを <Sheet2>に    A   B  C  D  E  ~ 1 商品名  イ  ロ  ハ  ニ 2  価格 3  数量 4 割引率  5  合計  のように、向きを変えて表を作り変えたいのですが、 <Sheet2>のB列に    A   B      1 商品名 =Sheet1!B2   2  価格 =Sheet1!C2 3  数量 =Sheet1!D2 4 割引率 =Sheet1!E2 5  合計 =Sheet1!F2 と入れて、オートフィルさせても、だめですよね。 当然のようにC列はSheet1!B3にならずSheet1!C2 になってしまいます。 どうすれば、良いかご存知の方、教えてください。 宜しくお願いたします。  

  • エクセル VB を使ってシートをまたいだセルへの自動記入を教えてください

    エクセルとマクロ(VB)を使い、こづかい帳や家計簿の様な物を想定して、 「前月シート」の「今月残高」が「翌月シート」の「先月残高」に 自動で記入する方法を教えてください。 現在Sheet1のセルには      A    B      C      D 1 2008年12月 2        12   前月残高    99999 3           収入    5555 4           支出     7777 5           今月残高   97777 ずれるので書き直しますと A1:2008年12月(=Date(2008,B2,1) B2:12 C2:"前月残高 " C3:"収入 " C4:"支出" C5:"今月残高" D2:99999 D3:5555 D4:7777 D5:9777(=D2+D3-D4) D5は式「=D2+D3-D4」、B2は作業セルでA1に入力されている関数 「=DATE(2008,B2,1)」を表示させ、マクロを実行するごとにSheetが一つずつコピー増加され、B2が+1し、それに伴いA1の年月が変わります。 新しく現れたSheetの名前は、A1を参照して(この場合ですと)「12月」となります。 このマクロを実行するごとに「12月」「1月」・・・とシートが増えていきますが、 (先月の)「今月残高」を(翌月の)「前月残高」に記入する方法が分かりません。 VBAは Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/12/9 ユーザー名 : ' ' Sheets("Sheet1").Select Sheets("Sheet1").Copy Before:=Sheets(2) Sheets("Sheet1 (2)").Select Sheets("Sheet1 (2)").Name = Format(Range("A1").Value, "mm") & "月" Sheets("Sheet1").Select Range("B2").Value = Range("B2").Value + 1 Range("D2:D4").Select Selection.ClearContents Sheets("sheet1").Select Range("d2").Select ActiveCell.FormulaR1C1 = "='12月'!R[3]C" End Sub 最後の行の 「"='12月'!R[3]C"」をマクロを実行するごとに「 "='1月'!R[3]C"」 「 "='2月'!R[3]C"」・・・・・・・ とする方法は無いでしょうか。よろしくお願いいたします。

  • エクセルのシート名参照関数

    エクセル関数でいろいろ試したのですがうまくいかず困っています。 VBAは出来ないので(苦手なので)できましたら関数で教えてください。 12年1月~12年12月で別々のシートがあり、それぞれ別の『行』『列』に参照をしたい数字があります。 集計シート名『Sheet1』の『A1』に『検査値』、『B1』~『B12』に『12年1月』~『12年12月』、『C1』~『C12』に『該当する値』を表示したいと思います。 具体例 <シート名 : Sheet1> ---A-----B----C 1 リンゴ 12年1月 値 2 -----12年2月 値 3 -----12年3月 値 4 -----12年4月 値 5 -----12年5月 値 <シート名 : 12年1月> ---A----B 1 リンゴ 100 2 バナナ 50 3 メロン 10 4 スイカ 5 5 ミカン 1 <シート名 : 12年2月> ---A----D 1 パイン 10 2 バナナ 20 3 メロン 30 4 リンゴ 40 5 ミカン 50 <シート名 : 12年2月> ---A----F 1 パイン 10 2 バナナ 20 3 スイカ 30 4 リンゴ 40 5 ミカン 50 <シート名 : 12年3月> ---A----C 1 パイン 1 2 レモン 10 3 リンゴ 100 4 メロン 1000 5 イチゴ 10000 上記<シート名 : Sheet1>の『C列』に式を入れ、それぞれのシートから『A1』に該当する値を表示させたいと思います。 文書が下手ですのでわかりにくい内容で申し訳ありません。

  • エクセル:シートを増やすと計算が反映されません・・

    No.465690で計算の仕方を教わったものです。(以下引用) -------------------- 今現在、 ・毎月の計算で、月ごとにシートが増えていきます。 ・毎月、当月の売上と累計を手入力しています。 例として、1月からスタートするとして <1月 sheet1>   A     B 1当月売上 150(手入力) 2売上累計 150(手入力) <2月 sheet2>   A     B 5当月売上 180(手入力) 6売上累計 330 ※分かりやすくする為、行の番号を変えてみました1.2と5.6  A.Bは列番号とお考え下さい これを、2月の当月売上だけを入力すれば、 自動的に2月の売上累計が増えるようにはできませんか? そして3月も同じく、当月売上を入力して 2月で計算された累計にプラスすることはできるのでしょうか?? ご指導お願いいたします。 -------------------- これで教えていただいた方法(2月sheet2で =sheet1!B2+B5)で 確かに計算は出来たのですが、 翌月(3月)にシートをコピーなどして増やしても sheet3の欄には =sheet1!+B5 となってしまい、 1月+3月という形になってしまいます。(当たり前なのでしょうが・・) 毎月計算式を手入力するのなら式を入れる意味が無いので・・・ なんとか「前月+今月」という計算をする方法は無いでしょうか。 シートを毎月増やしていく事から、シートの増やし方も踏まえて 教えていただけないでしょうか・・・。 <1月 sheet1>   A     B 1当月売上 150(手入力) 2売上累計 150(手入力) <2月 sheet2>   A     B 5当月売上 180(手入力) 6売上累計 330(=sheet1!B2+B5) <3月 sheet3>   A     B 7当月売上 50(手入力) 8売上累計 380 になるために・・(?)

  • エクセルで別シートを参照

    「あ」のシートに"社員番号"(A列)と"カナ"(B列)のリストがあり、 「い」のシートには"社員番号"(A列)と"漢字氏名"(B列)・"部署"(C列)のリストがあります。 「あ」のシートのC列とD列に、「い」のシートのB列とC列を表示させるにはどうしたらよいでしょうか。 新規に社員番号を入力していく場合は、VLOOKUPなどで出来ると思いますが、すでに入力済みのデータについて一括で参照する方法が判りません。 よろしくお願いいたします。

専門家に質問してみよう