- ベストアンサー
セルの参照
教えてください!! たとえばExcelで、家計簿を作成してるとしますよね。 シート別に「銀行」「財布」「メイン」と作成します。 で、メインのシートに「年月日」「項目」「収入」「支出」「備考」という欄を作成し、備考欄に「銀行」と入力すると銀行シートに転記されるように作成したいのですが、どうすれば、作成できますか? 何かマクロなどを組まないといけないのでしょうか? そのような関数はないのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
「転記」では無く「参照」ですが、ワークシート関数のみでも、できなくはないです。 非常にややこしいですが・・・・・。 (1)まず、「メイン」「財布」「銀行」の3つのシートがあり、3シートとも A列:参照キー B列:年月日 C列:項目 D列:収入 E列:支出 F列:備考 として、シートの1行目にタイトルとして入力します。 なお、年月日を日付値として入力する場合は、3シートともB列の書式を日付の形式にしておいてください。 (2)「メイン」シートのA2のセルに =F2&COUNTIF(F$2:F2,F2) と入力し、それを必要な行数分、下方向へコピーしてください。 こうすると、例えば備考欄に「銀行」と入れた場合、その行を含めて何回目の「銀行」かをカウントし、3回目なら「銀行3」と表示します。 (3)「財布」シートの A2に 財布1 B2に =IF(ISERROR(VLOOKUP($A2,メイン!$A:$F,2,FALSE)),"",VLOOKUP($A2,メイン!$A:$F,2,FALSE)) C2に =IF(ISERROR(VLOOKUP($A2,メイン!$A:$F,3,FALSE)),"",VLOOKUP($A2,メイン!$A:$F,3,FALSE)) D2に =IF(ISERROR(VLOOKUP($A2,メイン!$A:$F,4,FALSE)),"",VLOOKUP($A2,メイン!$A:$F,4,FALSE)) E2に =IF(ISERROR(VLOOKUP($A2,メイン!$A:$F,5,FALSE)),"",VLOOKUP($A2,メイン!$A:$F,5,FALSE)) F2に =IF(ISERROR(VLOOKUP($A2,メイン!$A:$F,6,FALSE)),"",VLOOKUP($A2,メイン!$A:$F,6,FALSE)) と入力して、それを必要な行数分、下方向へオートフィルでコピーしてください。 (A列は、連続データ(財布1、財布2、財布3、・・・・)にしてください。) (4)「銀行」シートは、A2を「銀行1」とする以外は、「財布」シートと同じです。 _____________ こうすると、「メイン」シートの備考欄に「銀行」又は「財布」と入力した場合、それぞれ「銀行」又は「財布」シートに表示されます。 ・・・・・わかります?
その他の回答 (4)
- Spur
- ベストアンサー率25% (453/1783)
>論理式のところで「#NAME?」と表示されてしまいます (1)ができていないからだと思います。 メインシートのセルに名前が付いていないのではないでしょうか? メインシートの、例えばA列が「年月日」を入れるところ、B列が「項目」を入れるところだとすれば、セルの上の列名で「A」を選択して、「挿入」→「名前」→「定義」で「年月日」を作りましたか? 同じようにB列には「項目」という名前を作りましたか?
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 やりたいことは、[メイン]のシートで入力すると同時に、[銀行]と[財布]のシートにも順に入力するということだと思います。 これはマクロを使用しないと出来ません。 マクロを組む面倒を考えれば、全て1つのシートにまとめ、備考欄でフィルタをかけたりする方がいいのではないでしょうか。 どうしても、シートを分ける必要があるのでしょうか。
- Spur
- ベストアンサー率25% (453/1783)
計算式だけでもできますよ。 (1)メインシートのセルに名前をつけます。 つまり、「年月日」の列には「年月日」、「項目」の列には「項目」です。 (2)銀行のシートのセルに、例えば年月日のセルなら、 =IF(Book1!備考="銀行",Book1!年月日,"") と計算式を入れればOKです。 項目のセルなら、 =IF(Book1!備考="銀行",Book1!項目,"") それを全部のセルにコピーするだけです。
一番簡単な方法は 別のシートの目的のセルで=を入力してからメインのシートから転記させたいセルをクリック。 そうするとセルには =銀行!B3 のように入力されます。 銀行と入力したら転記よりは簡単なやりかたです。
補足
さっそくの回答ありがとうございます。 あの、上記の方法ですると 論理式のところで「#NAME?」と表示されてしまいます。。。。何故でしょう?