- 締切済み
エクセルで2枚目に・・・。
エクセルで1枚目には通帳のように支出と収入をまとめることができました。 そこで、2枚目に毎月の収入リスト、3枚目に支出リストをつくりたいと思ってます。 エクセル初心者で通帳みたいなのもここのサイトを見てつくることができました。 アドバイスお願いします。 1枚目は通帳のつくりと同じで「Aに日付、Bに項目、Cに支出、Dに収入、Eが残高」です。 2枚目には毎月収入がはいってくるとこが何か所かあるので 「Aに月(1月、2月、3月・・・)、Bに会社名、Cに会社名、Dに会社名・・・って書いていって 月ごとの金額をBの会社から1月にはいくら入った、Cの会社からは1月にいくら入ったって一目で 確認できる表がほしいです。 説明が下手くそで伝わらないかもしれませんが・・・すみません。 1枚目のリストを会社別に2枚目に自動入力できたらうれしいです。 3枚目は同じく支出の会社別リストを作りたいです。 よろしくお願いいたします!!!
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
>収入項目が10こあるんですが、全て金額を入力しているのに収入ページを見てみると8こしか反映されていません;。; 情報不足のため、何が原因なのか特定出来かねますので、以下の事を御確認頂いた上で、その確認結果を御知らせ願います。 (1)作業用シートのB3セルとC3セルに入力されている関数が、本当に回答No.5でお伝えしたものと同じものであるのかを確認して、間違いが無いかどうかを御教え願います。 (2)(1)において入力されている関数に間違いがなければ、再度、作業用シートのB3~D 3の範囲をまとめてコピーして、同じ列の4行目以下に(入力用シートの表の行数を上回るのに十分な行数となるまで)貼り付けてみて、その結果、収入シートや支出シートの表示がどうなったのかを御教え願います。(その表示されない会社名が入力されている行と同じ行において、関数が入力されていなかったりはしないでしょうか?) (3)その表示されない会社名が入力されている行における、金額が入力されているセルの書式の設定が、文字列になっているか否かを御知らせ願います。 (4)適当な未使用の列の3行目に次の関数を入力してから、そのセルをコピーして、その列の2行目のセル~その列の右隣の列における「入力シートに金額が入力されている最下段の行と同じ行」のセルの範囲に貼り付けてみて、TRUEと表示されている箇所が無いかどうかを御知らせ願います。(その表示されない会社名が入力されている行の所でTRUEとなってはいないでしょうか?) =ISTEXT(INDEX(入力用!C:C,ROW())) (5)適当な未使用のセルに次の関数を入力してみて、0と表示されるかどうかを御知らせ願います。 =COUNTIF(IV:IV,0) 上記の件、宜しく御願い致します。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>あと、その月だけの支払いとか収入もあって月別にしなくてもいいものまで2枚目以降にはりつけられるのは仕方ないんでしょうか・・・? との事ですが、そのためには表示しなくとも良い事を、Excelにも判る様に入力シート上に明記した上で、その「表示しなくとも良い」という印がある行に関しては項目名の表示対象とはならない様に工夫する必要があります。 >2枚目、3枚目の項目で出ない項目があるんですがどうしたらいいでしょうか?A社はでてくるけどB社は出てきてないって感じです。 説明がそれだけでは、現在、どの様な状況になっていて、それをどう改善したいのかが見えて来ません。 出ない項目とは一体どの様なものを指しておられるのでしょうか? 入力用シートの収入欄に金額が入力されている会社の中に、収入シートに名前が表示されないものがあるとか、入力用シートの支払い欄に金額が入力されている会社の中に、支出シートに名前が表示されないものがあるという話なのでしょうか? それとも、支払い欄に金額が入力されていない会社の中の一部に関して支出シートに名前が表示される様にしたり、収入欄に金額が入力されていない会社の中の一部に関して収入シートに名前が表示される様にしたり、という事をしたいという話なのでしょうか? もしも、後者(金額がどちらに入力されているかに関わらず、両リストに項目名を表示する)であるのなら、先の「表示しなくとも良い項目名」の件と合わせまして、次の様にされては如何でしょうか? まず、入力用シートのF列において、「支出シートと収入シートの両方に、必ず項目名を表示させる」行には「する」(鉤括弧は無用)を入力(どこか1箇所のみでも良い)し、「表示しなくとも良い項目名」が入力されている行には「しない」(鉤括弧は無用)を入力する様にして下さい。(同一の項目名において、どこか1箇所でも「する」と入力されていますと、他の行で「しない」と入力されていた場合であっても、両月別集計表に表示されます) 次に、作業用シートのB3セルに入力する関数を次のものに変更して下さい。 =IF(AND(INDEX(入力用!$B:$B,ROW())<>"",INDEX(入力用!$F:$F,ROW())<>"しない",OR(ISNUMBER(INDEX(入力用!$C:$C,ROW())),INDEX(入力用!$F:$F,ROW())="する")),IF(COUNTIF(B$2:B2,COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"",COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"") 次に、作業用シートのC3セルに入力する関数を次のものに変更して下さい。 =IF(AND(INDEX(入力用!$B:$B,ROW())<>"",INDEX(入力用!$F:$F,ROW())<>"しない",OR(ISNUMBER(INDEX(入力用!$D:$D,ROW())),INDEX(入力用!$F:$F,ROW())="する")),IF(COUNTIF(C$2:C2,COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"",COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"") そして、作業用シートのB3~C3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>1枚目に通帳通り入力しても2枚目、3枚目に金額が「0」って表示されるんですけど、どこか入力ミスしてるんですかね? 申し訳御座いません、収入シートと支出シートのB2セルに入力する関数を回答欄に入力するために、Excelのセルに入力されている関数をコピーして、回答欄に貼り付けを行う際に、誤って違うセル(古い方のBook)に入力されていた関数をコピーしておりました。 ですから、収入シートと支出シートの各々のシートのB2セルに入力する関数を次のものと差し替えて頂く様御願い致します。 【収入シートのB2セルに入力する関数】 =IF(OR(B$1="",$A2=""),"",SUMIF(作業用!$D:$D,$A2&"◇"&B$1,入力用!$D:$D)) 【支出シートのB2セルに入力する関数】 =IF(OR(B$1="",$A2=""),"",SUMIF(作業用!$D:$D,$A2&"◇"&B$1,入力用!$C:$C))
補足
できました!!! ありがとうございます^^ 私がどう考えてもわかりっこなかったですね。 聞いてみてよかったです。 甘えてばっかりで申し訳ないのですが、もう1点いいでしょうか? 2枚目、3枚目の項目で出ない項目があるんですがどうしたらいいでしょうか?A社はでてくるけどB社は出てきてないって感じです。 あと、その月だけの支払いとか収入もあって月別にしなくてもいいものまで2枚目以降にはりつけられるのは仕方ないんでしょうか・・・?いろいろすいません。 お世話になります。
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答No.2、4です。 前回の私の回答の方法では、支出対象ではない項目が支出シートに表示されてしまったり、収入の対象ではない項目が収入シートに表示されてしまったりと無駄がありましたので、改良してみました。 まず、1枚目のシートのシート名を「入力用」、2枚目のシートのシート名を「収入」、3枚目のシートのシート名を「支出」に変更して下さい。(各シート名には鉤括弧は不要です) 次に、4枚目のシートを新たに作成し、その4枚目のシートのシート名を「作業用」として下さい。 次に、入力用シートの A1セルに 日付 B1セルに 項目 C1セルに 支払い D1セルに 収入 E1セルに 残高 B2セルに 前回繰越金額 と入力して下さい。 次に、入力用シートのE3セルに次の関数を入力して下さい。 =IF(COUNT(INDEX($C:$C,ROW()),INDEX($D:$D,ROW())),$E$2+SUM($D$1:INDEX($D:$D,ROW()))-SUM($C$1:INDEX($C:$C,ROW())),"") 次に、入力用シートのE3セルをコピーして、入力用シートのE4以下に(データを入力する可能性のある最下段の行、即ち、表の枠線が引かれている最下段の行まで)貼り付けて下さい。 次に、作業用シートのA1セルに次の関数を入力して下さい。 =IF(COUNT(入力用!$A:$A),TEXT(MIN(入力用!$A:$A),"yyyy年m月"),"") 次に、作業用シートのA2セルに次の関数を入力して下さい。 =IF(COUNT(入力用!$A:$A),TEXT(MAX(入力用!$A:$A),"yyyy年m月"),"") ※ここまでは回答No.4と同様です。 次に、作業用シートのB3セルに次の関数を入力して下さい。 =IF(AND(INDEX(入力用!$B:$B,ROW())<>"",ISNUMBER(INDEX(入力用!$C:$C,ROW()))),IF(COUNTIF(B$2:B2,COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"",COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"") 次に、作業用シートのC3セルに次の関数を入力して下さい。 =IF(AND(INDEX(入力用!$B:$B,ROW())<>"",ISNUMBER(INDEX(入力用!$D:$D,ROW()))),IF(COUNTIF(C$2:C2,COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"",COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW()))),"") 次に、作業用シートのD3セルに次の関数を入力して下さい。(回答No.4において作業用シートのC3セルに入力したものと同じ) =IF(AND(ISNUMBER(INDEX(入力用!$A:$A,ROW())),INDEX(入力用!$B:$B,ROW())<>""),TEXT(INDEX(入力用!$A:$A,ROW()),"yyyy年m月")&"◇"&INDEX(入力用!$B:$B,ROW()),"") 次に、作業用シートのB3~D 3の範囲をまとめてコピーして、同じ列の4行目以下に(入力用シートの表の行数を上回るのに十分な行数となるまで)貼り付けて下さい。 次に、収入シートのA1セルに「年月」と入力して下さい。 次に、収入シートのA2セルに次の関数を入力して下さい。(回答No.4において入力したものと同じ) =IF(OR(作業用!$A$1="",A1="",A1=作業用!$A$2),"",IF(ROWS($2:2)=1,作業用!$A$1,TEXT((A1&"1日")+32,"yyyy年m月"))) 次に、収入シートのB1セルに次の関数を入力して下さい。 =IF(COLUMNS($B:B)>COUNT(作業用!$C:$C),"",INDEX(入力用!$B:$B,MATCH(SMALL(作業用!$C:$C,COLUMNS($B:B)),作業用!$C:$C,0))) 次に、収入シートのB2セルに次の関数を入力して下さい。 =IF(OR(B$1="",$A2=""),"",SUMIF(作業用!$C:$C,$A2&"◇"&B$1,入力用!$D:$D)) 次に、収入シートのB1~B2の範囲をコピーして、同じ行の右側にあるセル範囲に、(入力シートの表の項目欄に入力されている項目の種類の数を上回るのに十分な列数となる様に)貼り付けて下さい。 次に、収入シートの2行目全体をコピーして、3行目以下に貼り付けて下さい。 次に、支出シートのA1セルに「年月」と入力して下さい。 次に、支出シートのA2セルに次の関数を入力して下さい。(回答No.4において入力したものと同じ) =IF(OR(作業用!$A$1="",A1="",A1=作業用!$A$2),"",IF(ROWS($2:2)=1,作業用!$A$1,TEXT((A1&"1日")+32,"yyyy年m月"))) 次に、支出シートのB1セルに次の関数を入力して下さい。(回答No.4において入力したものと同じ) =IF(COLUMNS($B:B)>COUNT(作業用!$B:$B),"",INDEX(入力用!$B:$B,MATCH(SMALL(作業用!$B:$B,COLUMNS($B:B)),作業用!$B:$B,0))) 次に、支出シートのB2セルに次の関数を入力して下さい。 =IF(OR(B$1="",$A2=""),"",SUMIF(作業用!$C:$C,$A2&"◇"&B$1,入力用!$D:$D)) 次に、支出シートのB1~B2の範囲をコピーして、同じ行の右側にあるセル範囲に、(入力シートの表の項目欄に入力されている項目の種類の数を上回るのに十分な列数となる様に)貼り付けて下さい。 次に、支出シートの2行目全体をコピーして、3行目以下に貼り付けて下さい。 これで準備は完了で、後は入力シートのE2セルに前回の繰越残高を入力してから、入力シートのA列~D列の3行目以下にデータを入力して下さい。 以上です。
お礼
ありがとうございます!!!!! すごすぎてびっくりでした(T-T) こんな詳しく書いていただいてホントにありがたいです。 一生懸命1つ1つコピーしてみました。 まだひと月分ですが、1枚目に通帳通り入力しても2枚目、3枚目に金額が「0」って表示されるんですけど、どこか入力ミスしてるんですかね?きちんと社名とかは2枚目とかに書かれてます。考えててもわからないんでお礼と一緒に書かせてもらいました。またよかったらアドバイスください。 よろしくお願いいたします!
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答No.2です。 >パソコンはwindows7です。 という事は、ExcelのバージョンはおそらくExcel2007かExcel2010ではないかと思われます。(この2つのバージョンの操作方法は殆ど同じです) まず、1枚目のシートのシート名を「入力用」、2枚目のシートのシート名を「収入」、3枚目のシートのシート名を「支出」に変更して下さい。(各シート名には鉤括弧は不要です) 次に、4枚目のシートを新たに作成し、その4枚目のシートのシート名を「作業用」として下さい。 次に、入力用シートの A1セルに 日付 B1セルに 項目 C1セルに 支払い D1セルに 収入 E1セルに 残高 B2セルに 前回繰越金額 と入力して下さい。 次に、入力用シートのE3セルに次の関数を入力して下さい。 =IF(COUNT(INDEX($C:$C,ROW()),INDEX($D:$D,ROW())),$E$2+SUM($D$1:INDEX($D:$D,ROW()))-SUM($C$1:INDEX($C:$C,ROW())),"") 次に、入力用シートのE3セルをコピーして、入力用シートのE4以下に(データを入力する可能性のある最下段の行、即ち、表の枠線が引かれている最下段の行まで)貼り付けて下さい。 次に、作業用シートのA1セルに次の関数を入力して下さい。 =IF(COUNT(入力用!$A:$A),TEXT(MIN(入力用!$A:$A),"yyyy年m月"),"") 次に、作業用シートのA2セルに次の関数を入力して下さい。 =IF(COUNT(入力用!$A:$A),TEXT(MAX(入力用!$A:$A),"yyyy年m月"),"") 次に、作業用シートのB3セルに次の関数を入力して下さい。 =IF(INDEX(入力用!$B:$B,ROW())="","",IF(COUNTIF(入力用!$B$1:INDEX(入力用!$B:$B,ROW()),INDEX(入力用!$B:$B,ROW()))=1,COUNTIF(入力用!$B:$B,">"&INDEX(入力用!$B:$B,ROW())),"")) 次に、作業用シートのC3セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(INDEX(入力用!$A:$A,ROW())),INDEX(入力用!$B:$B,ROW())<>""),TEXT(INDEX(入力用!$A:$A,ROW()),"yyyy年m月")&"◇"&INDEX(入力用!$B:$B,ROW()),"") 次に、作業用シートのB3~C3の範囲をまとめてコピーして、同じ列の4行目以下に(入力用シートの表の行数を上回るのに十分な行数となるまで)貼り付けて下さい。 次に、収入シートのA1セルに「年月」と入力して下さい。 次に、収入シートのA2セルに次の関数を入力して下さい。 =IF(OR(作業用!$A$1="",A1="",A1=作業用!$A$2),"",IF(ROWS($2:2)=1,作業用!$A$1,TEXT((A1&"1日")+32,"yyyy年m月"))) 次に、収入シートのB1セルに次の関数を入力して下さい。 =IF(COLUMNS($B:B)>COUNT(作業用!$B:$B),"",INDEX(入力用!$B:$B,MATCH(SMALL(作業用!$B:$B,COLUMNS($B:B)),作業用!$B:$B,0))) 次に、収入シートのB2セルに次の関数を入力して下さい。 =IF(OR(B$1="",$A2=""),"",SUMIF(作業用!$C:$C,$A2&"◇"&B$1,入力用!$D:$D)) 次に、収入シートのB1~B2の範囲をコピーして、同じ行の右側にあるセル範囲に、(入力シートの表の項目欄に入力されている項目の種類の数を上回るのに十分な列数となる様に)貼り付けて下さい。 次に、収入シートの2行目全体をコピーして、3行目以下に貼り付けて下さい。 次に、支出シートのA1セルに「年月」と入力して下さい。 次に、支出シートのA2セルに次の関数を入力して下さい。 =IF(OR(作業用!$A$1="",A1="",A1=作業用!$A$2),"",IF(ROWS($2:2)=1,作業用!$A$1,TEXT((A1&"1日")+32,"yyyy年m月"))) 次に、支出シートのB1セルに次の関数を入力して下さい。 =IF(COLUMNS($B:B)>COUNT(作業用!$B:$B),"",INDEX(入力用!$B:$B,MATCH(SMALL(作業用!$B:$B,COLUMNS($B:B)),作業用!$B:$B,0))) 次に、支出シートのB2セルに次の関数を入力して下さい。 =IF(OR(B$1="",$A2=""),"",SUMIF(作業用!$C:$C,$A2&"◇"&B$1,入力用!$C:$C)) 次に、支出シートのB1~B2の範囲をコピーして、同じ行の右側にあるセル範囲に、(入力シートの表の項目欄に入力されている項目の種類の数を上回るのに十分な列数となる様に)貼り付けて下さい。 次に、支出シートの2行目全体をコピーして、3行目以下に貼り付けて下さい。 これで準備は完了で、後は入力シートのE2セルに前回の繰越残高を入力してから、入力シートのA列~D列の3行目以下にデータを入力して下さい。 以上です。
- web2525
- ベストアンサー率42% (1219/2850)
- kagakusuki
- ベストアンサー率51% (2610/5101)
>1枚目は通帳のつくりと同じで「Aに日付、Bに項目、Cに支出、Dに収入、Eが残高」です。 との事ですが、それだけでは会社名を示す情報が、1枚目の表の中には存在し無い事になりますから、1枚目のデータを基にしたのでは、会社別リストを作る事は不可能です。 1枚目のリストに、会社名を入力する列を設けられた上で、A列~XFD列のどこに会社名を入力する事にしたのかを、補足欄等を使用して、御教え頂く様御願いします。 それから、1枚目のリストの何行目に「日付」、「項目」、「支出」、「収入」、「残高」といった、各項目名を表す文字列が入力されているのかという事と、金額等のデータは、実際には何行目から入力されているのかという事、及び、(バージョンによってやり方が異なる場合があるため)質問者様が御使いになられているExcelのバージョンも、合わせて御教え願います。
補足
ありがとうございます。 今手元にパソコンがないのでエクセルのバージョンはわかりかねますが、パソコンはwindows7です。 会社名は項目のところに表示されてます。 1枚目は全く通帳と同じ感じで… 1行目のAに日付、Bに項目、Cに支払い、Dに収入、Eに残高。 2行目は例えばAに1月1日、Bに○○社、C空白、Dに50000円、E50000円とすると 3行目はA1月2日、B電気代、C7000円、D空白、E43000円、 4行目、A1月2日、B××社、C空白、D30000円、E73000円 って感じになってます。 図とか添付できればいいのですが…すいません。 よろしくお願いいたします。
- web2525
- ベストアンサー率42% (1219/2850)
覚えると便利なピボットテーブル 質問内容にちょうどあてはまりそうな説明サイトが有りました http://www.becoolusers.com/excel/pivottable.html
補足
ありがとうございます! やってみたけど、いい感じでしたが、ちょっと違うかもしれません。 それぞれのBの項目に対して、支出だったり収入だったりするから空白があったりしてうまくまとめれないみたいです・・・。あと、全ての項目に対してまとめたいわけじゃなく、●会社だったり、■会社だったり、ある特定の会社からの収入をまとめたい感じです。すいません!早い回答ありがとうございました!
補足
ありがとうございます。 説明不足ですいません。 えっと・・・、前者のほうです。 収入項目が10こあるんですが、全て金額を入力しているのに 収入ページを見てみると8こしか反映されていません;。; 何か間違ってるのかもしれませんが、確認方法も全くわからないのでよろしくお願いいたします。