エクセルで家計簿のデータをシートにまとめたい方法

このQ&Aのポイント
  • エクセルで家計簿のデータをシートにまとめる方法を調べています。データを打ち込んだ時に自動的にシートにまとめられる仕組みを作りたいですが、関数がわかりません。
  • 項目別に1月から12月までの明細をシート2に並べたいです。フィルターを使えばできるのですが、自動的にまとめられる方法を知りたいです。
  • トータル金額は=SUMIF関数で計算できますが、項目名と適用も一緒に転記したいです。どうすればいいでしょうか?お力をお借りしたいです。
回答を見る
  • ベストアンサー

エクセル 家計簿より抽出

添付データの様に打ち込んだデータが年間あります。項目別、1月~12月までの、明細(適用、金額)を、シート2に並べたいのですが・・・。フィルターを使えばすぐできますが、データを打ち込んだ時に、すぐにシート2に取りまとめられるという仕組みを作りたいのですが、関数が解りません。トータル金額は=SUMIFでできますが項目、適用、金額も転記したいのです。お力を・・・ 11:肥料                  23:利子割引   月日  項目名  金額           月日  項目名  金額  1月6日 a     10275         1月6日       30000    ・    ・      ・    ・    ・      ・    ・    ・      ・ 12月31日 ・      ・

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

方法1:簡単なVLOOKUP関数だけで解決する 準備: A列に検索番号列を追加する A2: =IF(C2="","",C2&TEXT(COUNTIF($C$2:C2,C2),"-00000")) 以下コピー B列 日付 C列 項目番号 D列…以降続く シート2 A1セルに項目番号 A2に「番号」と記入 A3セルに =IF(ROW(A1)>COUNTIF(Sheet1!C:C,$A$1),"",ROW(A1)) 以下コピー B2に「日付」と記入 B3に =IF(A3="","",VLOOKUP($A$1&TEXT(A3,"-00000"),Sheet1!A:F,2,FALSE)) 以下コピー C2に「項目名」と記入 C3に =IF(A3="","",VLOOKUP($A$1&TEXT(A3,"-00000"),Sheet1!A:F,4,FALSE)) 以下コピー 以後同様。 方法2:関数すら使わないで解決する 準備: シート1のA列に,単純に上から下に番号(連番)を記入する A列から表範囲を列選択 データメニュー(または挿入タブ)からピボットテーブルレポートの作成を開始 ページフィールドに項目番号を投入 行フィールドに番号,月日,項目名,適用を投入 データフィールド(Σフィールド)に金額を投入 「~小計」が出てしまった列は,上にある「項目名▼」をWクリックして集計を無しに設定 「(空白)」が出てしまった行は,そのセルを一個スペースで書き換える ページフィールドから希望の項目番号を選択して完成。 元のデータを追記したら,レポートを更新する。

bull203735
質問者

お礼

方法1を採用させて頂きました。 自分で、VLOOKUP関数でどうにか理解できる設定です。ひとつひとつ設定して間違いの無いように致します。有難うございました。

その他の回答 (3)

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

分かり易く、データが多くなっても計算が重くならない方法です。 それには作業列を作って対応するのがよいでしょう。 例えばシート1に家計簿があり、1行目は項目名でE1セルが金額とすればF列を作業列としてE1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",B2*10000+COUNTIF(B$2:B2,B2)) シート2ではA1セルは項目の番号を入力するためのセルとします。 A2セルには月日、B2セルには項目名、C2セルには金額と入力します。 A3セルには次の式を入力してC3セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$F:$F,$A$1*10000+ROW(A1))=0,"",INDEX(Sheet1!$A:$E,MATCH($A$1*10000+ROW(A1),Sheet1!$F:$F,0),IF(COLUMN(A1)=1,1,IF(COLUMN(A1)=2,3,5)))) このシートを全体を選択して他のシートに貼り付けることで項目番号ごとのデータをそれぞれのシートのA1セルにその番号を入力すことで表示させることができます。

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

エクセル関数は、「条件による行の抜き出し」は不得手です。配列数式を使ったり(処理が重くなる恐れ有り)、複雑な式の組み合わせ(初心者中級者には式の意味の理解が難しい)を使ったりする。Googleでimogasi方式で照会すれば、その質問例や回答タイプが判る。 ーー こういうのはVBAで処理するのは相応しい。 ーー imogasi方式は、作業列を余分に使いますが、式が比較的わかりやすいと思う。 以下は手抜きをして最小限の記述にしている。もし考えるなら類推して考えてください 例データ Sheet1 A2:G13 Fretuは空白。G列が作業列です。 日付    コード   コード内容 コメント   係数            上からのコードごと連番 2010/1/2 11 a x 11 111 2010/1/4 11 a 23 112 2010/1/5 12 b 42 121 2010/1/6 13 c 12 131 2010/1/7 23 d 14 231 2010/1/6 11 a 25 113 2010/1/7 13 c 6 132 2010/1/8 14 e 7 141 2010/1/8 11 a 18 114 2010/2/3 11 a 33 115  <-第11行目 0 0 G2の式は =B2&COUNTIF($B$1:B2,B2) うえの行からコードごとに出現の(連続の)順番を振っている。 第12行目以下も入力する前に、入力の見込みデータ数以上行に、式を複写しておく。0の表示が気になるならIF関数をかぶせて空白にしておく。A列が空白ならG列は空白とする式。 ーーー Sheet2で B1に 11=肥料のコードを入れておく A2に =INDEX(Sheet1!$A$1:$F$100,MATCH($B$1&(ROW()-1),Sheet1!$G$1:$G$100,0),COLUMN()) と入れて右方向にF列まで式を複写。 これはSheet1のデータ行数を100行目までにしているが適宜増やしてください。 そのがA2:F2の式を下方向に式を複写 結果 Sheet2 肥料シート 11 2010/1/2 11 a x 11 2010/1/4 11 a 0 23 2010/1/6 11 a 0 25 2010/1/8 11 a 0 18 2010/2/3 11 a 0 33 #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A この#N/Aが目障りならば、Sheet1のコード11の行数よりSheet2の行が下になったら、空白をセルにセットするIF関数の式をかぶせる。 適当行数まで式を埋め込んでおく。 ==== 肥料=11以外のコード分もシートを分けて、11=肥料と同じ式を埋め込む。B1は費目ごとに変わる。 ーー すると、Sheetす1にデータを追加すると(本例では第12行目以下)即座に関係のシートの今までのデータの直下にデータが追加される。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 ↓の画像で右側がSheet2としています。 とりあえず項目「11」(肥料)の場合での数式です。 他の項目も同様の数式でOKですので、別列で試してみてください。 Sheet2のA3セルに =IF(COUNTIF(Sheet1!$B:$B,$A$1)<ROW(A1),"",INDEX(Sheet1!$A$1:$E$1000,SMALL(IF(Sheet1!$B$1:$B$1000=$A$1,ROW($A$1:$A$1000)),ROW(A1)),COLUMN(A1)*2-1)) これは配列数式になってしまいますので、この画面からコピー&ペーストする場合は A3セルに貼り付け後、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このA3セルを列方向と行方向にオートフィルでコピーすると画像のような感じになります。 (これ以上、データはない!という位まで下へコピーしておいても構いません) 尚、A列はシリアル値が表示されますので表示形式は日付にします。 以上、参考になれば良いのですが・・・m(__)m

bull203735
質問者

お礼

早速の回答ありがとうございます。 コピペで直ぐ使えるのは良かったのですが、シート2への行の追加が上手く行きませんでした。楽な設定だと思います!!

関連するQ&A

  • エクセルで抽出分だけを別シートに反映

    エクセルで家計簿を作っています。 まず、「基本」と名づけたシートに、毎日の買い物などを入力しています。 項目は、月、日、勘定科目、金額、です。 別に「試算表」と名づけたシートを作り、 勘定科目ごとにSUMIFを使って「基本」の金額を 合計させるようにしています。 この場合、「基本」でオートフィルタで例えば6月のデータを抽出し、 それだけを「試算表」に反映させる方法はあるでしょうか? また、同じように抽出したデータだけを、 ピボットテーブルに反映させることはできますでしょうか? 説明が下手ですみません。どうかお知恵を貸してください。

  • Excelで家計簿を作る方法

    Excelで家計簿を作りたいと考えています。 画像は簡略化したものですが、 A:Cに日付、適用、金額を入力した後、 右側の表に、 月ごと、適用ごとの金額をまとめたいです。 SUMIF関数を使って、 適用の合計額(三か月合計)を出すことはできたのですが、 月ごとに分類して合計する方法が分かりません。 関数、VBAのどちらでもかまいませんので、 解決法を教えてください。 よろしくお願いします。

  • エクセルの抽出について

    月 日 項目   金額 3 2 A商品 3000 3 2 A商品 2000 4 3 B商品 2500 4 2 A商品 2000 5 3 B商品 1000 3 2 A商品 700 3 2 B商品 650 3 2 B商品 1200  上記の表から 月日と項目が一致する金額の合計だけを別シートの 表にそれぞれ表したいのですがDGET とかVLOOKとか見てるのですが 何かいい関数とかやり方とかあれば教えていただきたいのですが宜しくおながいします。(一回抽出してその合計を出す方法しかないですかね)

  • Excelの入力規則で可能ですか?

    Excelにおいて出納帳の作成を試みています。 現在、 各月のシート 月日:科目:適用:収入:支出:残高:メモ 1/1:利子:◎銀行:50:空白:50:空白 科目帳シート 科目:適用 利子:◎銀行、△銀行 売上げ:A様、B様 という形で作成しています。 また、入力規制を使って各月シートの「科目」と「適用」をリスト化しています。 今回の質問なのですが、 各月シートの科目が収入項目のときは収入にしか記入できないようにしたいのですがどうすればいいでしょうか。(入力規則ではないかと考えていますが、マクロ以外の方法でお願い致します。) 各月のシート 月日:科目:適用:収入:支出:残高:メモ 1/1:利子:◎銀行:50:入力できない:50:空白 とすることができますでしょうか。 支出科目の時も同様にしたいと思っています。 少々わかりにくい説明で申し訳ないのですが、宜しくお願い致します。

  • EXCELの表からの「抽出」、「転記」

    1.元帳(Sheet8)から転記した「金融機関向け提出資料」(Sheet10)があったので、こ れからまた転記して組単位で「No.」と「氏名」の表(Sheet5)を作りたいので  す。 2. 添付画像「金融機関向け提出資料」(Sheet10)において、9組を例にとると、No.7、No.16、No.17、No.23の、以下続  く。これ等をSheet5の表に抽出していきたいのです。Sheet5の構想は、1行目:組 番号、2行目は項目名:No.(A2)と氏名(B2)、3行目~27行目(25名分)に各  データを 抽出、転記する。一組分の範囲はA1:B27です。 3.組の数は9組ありますが、一組だけその方法を教えて頂ければ結構です。 4.尚、Sheet10のNo.は1~188です。Sheet10のG列に、組番号を転記しています。こ の組番号はSheet10では印刷領域外です。 5. Sheet10からSheet 5に抽出し、転記した最初の人の(1)No.と(2)氏名をオートフィ ルで下にコピーすると、同じ組のNo.と氏名が表示されたら良いのですが・・・。 6.私はマクロが使えません。INDEX関数やMATCH関数は使ったことがあります。 元帳(Sheet8)からINDEX関数で「金融機関向け提出資料」(Sheet10)に転記して います。 7.最初から9組分の表を作成しておいて、そこにデータを順次転記していく方法もあ るのかも知れません。 8.Sheet10の一部を「画像添付」します。 以上ですが、よろしくご指導ください。

  • 商品名の紐づけと数量および金額の転記

    マクロもしくは関数で下記処理を行いたいです。 添付画像の項目名は実際とは異なり例となりますが、 同一項目(例えば、シート1の「健康診断」とシート2の「一般検診」を同じものを指している)として扱います。 シート1の「健康診断」の項目に、シート2の「一般検診」の数量および金額を転記したいのですが、シート2の項目は時と場合に応じて項目数が変動します。 今月は3項目全てデータがあるが、次月は一般検診だけデータがなく、「おしぼり」と「プラスチック」だけデータがある、というような状態です。 シート1の項目においては据え置きで、シート2にて対応する項目のデータがなければ「0」と表記したいです。 このように転記元の項目数に変動(項目名は変わらない)があり、且つ転記先と項目名が異なる場合の、データ転記方法はどのようなものがあるでしょうか? VLOOKUPでは希望する処理が出来ないと考えますので、マクロしかないのかな?と思っていますが…

  • 転記

    Sheet1     月日     借方   貸方    金額     適用 1  H21.10.10   燃料費  現金   10,000    ガソリン代 2  H21.10.25   現金   普通預金  15,000  引出     Sheet2 燃料費元帳     月日    科目      適用        借方   貸方 1  H21.10.10  現金    ガソリン代      10,000 Sheet3 現金元帳     月日    科目      適用        借方   貸方 1  H21.10.10  燃料費    ガソリン代           10,000 2  H21.10.25  普通預金  引出         15,000 Sheet1に入力した項目をSheet2,3に転記したいのですが何か良い方法はありませんか?IF関数を用いていろいろ試しましたがダメでした。 どなたかよろしくお願いします。

  • Excelの関数で項目を抽出する

    excelの関数で悩んでおります。 例: ■シート1 連番 項目 金額 1 トマト \100 2 きゅうり \0 3 レタス \0 4 たまご \180 シート1は、A列連番、B列に項目、C列に金額を記載しています。 これにシート2を作成します。 シート2は、シート1を参照して、 「¥0の項目は、その項目の行を表示させない」 「表示しない項目は行を削除する」 「表示していない項目は連番をつけない」ということをしたいです。 オートフィルタを使わず(且つ自動で)、関数若しくはVBAを利用したいと思っています。 ■シート2の結果 連番 項目 金額 1 トマト \100 2 たまご \180 よろしくお願いします。

  • エクセルで家計簿

    エクセルで家計簿を作りたいと思います。 やりたい事は、 1.入力画面とデータを他の画面で管理したい。 2.変更や検索を行うには入力画面から行いたい。 です。 例えば、sheet1が入力画面で、「日付」「項目」「金額」を入れると、それが、順番にsheet2に表示され、修正等を行うにはsheet1の入力画面からでしか、できないようにしたいのです。sheet2は場合によって並べ替えなどが行えるようにしたい。 どなたか、よろしくお願いします。

  • Excel オートフィルターを使わずに抽出

    Sheet1A列に日付、B-G列に業種等の項目が入っており、通年の全データが入っています。データ総数は500ほどです。 これを月ごとのシートに分割したいと考えています(Apr,May,Jun,Jul・・・)。これらはSheet1と同じブック内で管理したいと考えています。 Sheet1と月ごとのシートはフォーマットが違い、項目の順序等が異なっています。各列ごとに関数を指定する必要があるかと思います。月ごとのデータ数は20-100くらいで変動します。 こういう状況なのですが、オートフィルター、VBAを使わずに関数で処理したいと考えています。過去の質問などから、INDEX, SMALL, ROWを使ったような関数で処理しようと思ったのですが、うまく処理できないのでご質問させていただいた次第です。 Libraoffice CalcとExcelを両方使う環境です。 どうぞよろしくお願いします。 Sheet1   A    B    C   D   E 3 日付   業者  金額  業種  カテゴリー 4 26/8/19  A社  569  食品  22-1  5 30/4/19  B社  278  加工  32-3 6 5/4/19   C社  654  書類  45 7 11/12/19  A社   754  服飾  63 8 Apr(月別シートの一例)   A    B    C    D     E    F    G 14 日付   業者  業種   カテゴリー 金額  その他1 その他2    15 16

専門家に質問してみよう