エクセルで家計簿作成時、項目名の自動表示方法について

このQ&Aのポイント
  • エクセルで家計簿を作成している際、項目名の自動表示方法について質問です。
  • 具体的な要望として、項目名が増える際に自動で表示する方法を知りたいとのことです。
  • また、2月Seatに入力する式についても質問しています。
回答を見る
  • ベストアンサー

セルに入力した文字列を次のシートに自動表示させたい

御世話になります。 Vista エクセル2007 使用 エクセルで家計簿を1月から12月までの12枚Seatで作っています。 支出の項目名が毎月3つ(例 電気・ガス・水道)あるとして、 ある月から2つ増えた場合(電話・新聞代)、 それ以降の月には5つの項目名(電気・ガス・水道・電話・新聞代)、 が表示されるようにしたいのです。 1月Seatに項目名を自分で入力する (縦に3つ入力 A1 A2 A3セル) 2月Seatにはその3つの項目名が自動で表示されるようにする。 (縦に3つ入力 A1 A2 A3セル) 3月Seatに2つ増えたら、3つ目の下に自分で項目名を入力する。 ( A1 A2 A3 までは自動表示、 A4 A5セルは自分で入力する ) 4月~12月Seatには5つの項目名を自動で表示されるようにする。 (A1 A2 ・・・・A5セル) Q) 2月SeatのA1に 「 ='1月'!A1 」と入力すると、 そのままの式が表示されてしまいます。 これは数値だけに通用する式ですか? 文字列にはどんな関数を使えばいいのでしょうか。 説明が下手ですみませんが、関数をどのように入れたらよろしいでしょうか? 教えて下さい。 関数はA1に入力する式を教えて下されば結構です。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

1月から12月までの名のあるシートが用意されているとして一か月前のシート項目をA1セルから下方に表示させるとしたらA1セルには次の式を入力して下方にドラッグコピーします。 =IF(INDIRECT(SUBSTITUTE(TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10)),"月","")-1&"月!A"&ROW(A1))=0,"",INDIRECT(SUBSTITUTE(TRIM(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,10)),"月","")-1&"月!A"&ROW(A1))) これで3月のシートで追加の項目ができれば4月のシートでは4月のシートに上の式を入力して下方にドラッグすることでその追加の項目を含めて項目が表示されます。

kurotyako
質問者

お礼

ご回答ありがとうございました。 2月のA1に [ =IF('1月'!A1="","",'1月'!A1) ] と半角で入力してみましたが =IF('1月'!A1="","",'1月'!A1)  と表示されてしまうので、文字列だったのを 標準にして試してもダメでした。そこで私もINDIRECT関数ならできるかしらと思いやってみましたが難しくてできませんでした。 ご回答のようにすればできるのでしょうけど、項目数が40あるので、余りにも式が多くなってしまうので、どうにか簡単な方法でと思い質問させていただきました。 表示形式を文字列から標準にして1度ファイルを閉じた後 [ =IF('1月'!A1="","",'1月'!A1) ] を入れたところ出来ました。 KURUMITOさまの最後のアドバイスがなかったら(数年前まで私も実行していたが、年のせいかすっかり忘れていました)ファイルを1度閉じてから再度試すことはしませんでした。ちょっとしたアドバイスがとても役に立つのですね。 ありがとうございました。 ANo.5の回答だけを見て「はっ!と」気が付きました。 すぐに出来ました。 他の方にもベストアンサーにしたいのですが、KURUMITOさまの一言が私にとってベストアンサーだったので選ばさせていただきました。<(_ _)>

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答No4です。 式が有効に働くのはいったん作られたブックを保存して再表示してからということになります。保存したものを呼び出してからでないと有効には働きません。

  • OKWavex
  • ベストアンサー率22% (1222/5383)
回答No.3

2月SeatのA1をクリック =を入力(半角) 1月Seatを開いてA1をクリック リターンキー押下

kurotyako
質問者

お礼

ご回答ありがとうございました。 表示形式を標準にしたら、1度ファイルを閉じないと有効にならなったようです。 今後ともよろしくお願いいたします。 本当に皆様のご指導には感謝いたしております。

  • gachamuk
  • ベストアンサー率34% (28/81)
回答No.2

もしかして、2月SeatのA1の入力形式が 文字列入力になっていませんか? 2月SeatのA1を右クリックでセルの書式設定を選択して、 標準が選択されていることを確認してみてください。 その後に、同じ式を入力すれば問題は解決するはずです。

kurotyako
質問者

お礼

早速のお答えありがとうございました。 表示形式は色々なセルでいろんな設定をして作った家計簿ですので、気にして確認していました。文字列だったので、標準にして [   =IF('1月'!A1="","",'1月'!A1)    ] を入れたのですが、 このまま表示されてしまったので質問したのですが、標準にしたら、 やはり1度ファイルを閉じなければ機能しなかったみたいです。 本当にありがとうございました。 今後もよろしくお願いいたします。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.1

普通に =1月!A1 これだけで行きませんか?? 数値でも、文字列でも同じ関数で行けると思いますが・・・??

kurotyako
質問者

お礼

早速のお答えありがとうございました。 文字列だったので、標準にして [   =IF('1月'!A1="","",'1月'!A1)    ] を入れたのですが、 このまま表示されてしまったので質問したのですが、標準にしたら、 やはり1度ファイルを閉じなければ機能しなかったみたいです。 本当にありがとうございました。 今後もよろしくお願いいたします。

関連するQ&A

  • セルに自動で文字を表示するには

    関数が全くにがてなエクセル初心者を助けてください。 指定セルが空白の時は空白、そうでなければ文字を表示するif関数の入力を教えていただけませんか? 例えばA1のセルが空白ならA2も空白、A1に文字を入力するとA2に自動で文字を表示したいのです。 履歴を検索しましたが見つけられなくて新規に質問させて頂きました。 皆様よろしくお願いします。

  • Excelで月を入力すると、日付を自動で表示

    Excelで以下を実現したいのですが↓ 手順1:A1セルに「5」と手入力する 手順2:A2~A32セルに、「5/1」~「5/31」までの日付が自動で入力される 手順2を実現する関数を教えて下さい。 A1セルに入力された「5」を読み取り、 5月の日付を自動でA2~A32セルに表示する関数を教えて下さい。 (※5月だけではなく、1月~12月にも対応できる関数で) よろしくお願いします。

  • Excel:セル枠外にはみ出た文字列全体の表示

    お世話になります。WindowsXPでExcel2002を使用しております。是非教えてください。 Excelで入力した文字列がセルの横幅を越えた長さとなった場合、右隣のセルが未入力であれば、自動的に全体が表示されるようになっています。 しかし、右隣のセルに、例えば関数を入力していた場合など何らかのデータを入力していた場合には、枠内までの文字しか表示されなくなります。 右隣のセルが、関数計算の結果、何らかの数値、文字列が表示される場合には致し方ないと思いますが、特に何も表示されない時、左隣のセルの文字列全体が表示されるようにしたいのですが、何らかの方法はございますでしょうか。 ちなみに、具体的な状況については以下の通りです。  |A|B| 1| | | ・A1、B1セルにはそれぞれ同じIF関数(=IF([論理式],A21,""))を入力。 ・A1セルのIF関数が「真」となったため、A21の文字列("浜崎総務部長の来訪")が表示される。 ・B1セルのIF関数が「偽」となったため、何も表示されず。 宜しくお願い致します。

  • 番号入力後に データベースシートから自動入力

    エクセルの関数で、 下記、ご助言願います。 エクセルのシートで、 番号と項目名(1対1対応)を記載したデータベースシートを作ります。  別シートで、番号を入力すると 先程のデータベースシートを参照して、(番号入力をしたセルの横のセルに) 入力番号に対応する項目名を自動で入力するようにしたいと思います。 関数で可能でしょうか? 例えば、  データベースシート:  01 りんご  02 みかん 03 バナナ 入力シート 03 <ばななが自動入力> よろしくお願いいたします。

  • EXCEL◆入力した文字列を別シートへ自動でコピー

    エクセルについてです。 例えば、Sheet1のA1セルに「みかん」と入力した時に、自動的にSheet2のA1セルにも同じく「みかん」という文字がコピーされるようにしたいです。 この場合、Sheet2のA1セルに 「=Sheet1!A1」 と入力すればコピーされるのは知っているのですが、これだとSheet1のA1セルに何の文字も入力されていない場合、Sheet2のA1セルに「0」と表示されてしまいます。 Sheet1のA1セルに何も入力されていない場合、Sheet2のA1セルにも同じく何も表示されない方法を教えて頂けませんでしょうか? 以前会社のエクセルファイルでそのような関数が入力されており、多分VLOOKUP関数が使われていたように思うのですが、そのファイルがなくなってしまった為、確認が出来なくなってしまいました。 こういったシートを作る目的としては、Sheet2が印刷する為のシートなのですが、入力箇所が列も行もバラバラの為、いちいちそのセルをクリックして入力していると時間がかかる為、Sheet1を入力専用シートにしたいからです。 自分なりに調べてみましたが、似たような質問が見当たりませんでした。

  • 計算式を別のセルで文字列として自動的に表示させたい

    計算式を別のセルで文字列として自動的に表示させたいのですが、 例えば、A1セルで =2*3*2 と入力すると自動的に B1セルで 2*3*2 と表示される方法はありますか? よろしくお願いします。

  • Excel 隣のセルの頭文字に応じて文字を自動入力

    Excelの質問です。 隣のセルに入力された文字列の頭の文字に応じて、セルに自動的に文字を入力するにはどうすればよいのでしょうか?関数初心者です。 具体的には、 A1のセルに「T○○○○○」(○は任意の数字)が入力されていれば、頭文字がTなので、B1のセルに東京と自動的に表示する。 A2のセルに「N○○○○○」(○は任意の数字)が入力されていれば、頭文字がNなので、B2のセルに長野と自動的に表示する。 です。 よろしくお願いします。

  • A1セルにシート名が自動的に表示

    GoogleスプレットシートでA1セルにシート名が自動的に表示するにはどうすればいいでしょうか。 エクセルならば、Cell 関数で取得できましたが、Googleではできません。 どうそ、よろしくお願いいたします

  • エクセルでセルに入力されたら、隣に*を表示させたい

    例えば、A1のセルに何かが入力されたら、 その隣のB1のセルに*が自動的に表示できるように するにはどの関数を使えばいいですか。

  • VBAでシート名を自動入力時のINDIRECT

    C1セルに日付を入れています。それがVBAで自動でシート名に入力されるようにしています。 例えば、「2014年 9月1日」と入れていると、シート名も「2014年 9月1日」となります。 そのようなシートを集計シートで値を合計していきたいと思っているのですが、INDIRECT関数を使って、シート名を参照しようとしてもエラーになってしまします。 例えば、集計シートのA1セルに、「2014年 9月1日」と入力しておいて、、「2014年 9月1日」シートのB1セルに「20」といれているとします。通常は、=INDIRECT(A1&"!B1")という関数を集計シートのA2セルにいれると、「20」と表示されますが、VBAでシート名を取得している場合はエラーになってしまいます。この場合、無理なのでしょうか? また、もう1件、VBAのシート名取得で、「2014年 9月1日」は問題ないのですが、9月の9の前に半角スペースがあるのでそれを消すと、実行時エラー’1004’:が表示されて、C3セルの表示が###となります。C3セルの列幅を広げると、 、「           2014年9月1日」このような表示になっています。しかし、スペースが先頭に入力されているわけではありません。、「2014年9月1日」というシート名は手入力でいれても問題ないのですが、VBAで自動で入れた場合、エラーになるのは、プログラムに問題があるのでしょうか?下記プログラムを入力しています。 If Target.Address = "$C$1" Then Sh.name = Target.Range("A1").Value End Sub すいませんが、よろしくお願いいたします。