- 締切済み
エクセルでシートの一覧表から必要な行だけを別のシートにコピーできる関数を教えてください
エクセルで家計簿を作っています。 Sheet1にはすべての取引を記入した上で口座取引は口座毎に別のSheetに通帳記入のような形で記入したいのですが、 該当する関数が分かりません。 例えばSheet1の項目を『1列=No.,2列=日付,3列=収入費目,4列=収入内訳,5列=支出費目,6列=支出内訳,・・・10列=収入金額,11列=支出金額,12列=現金残高』とします。 口座引出の場合は収入費目=口座引出、収入内訳=銀行口座名、収入金額=口座引出額 口座預入の場合は支出費目=口座預入、支出内訳=銀行口座名、支出金額=口座預入額 です。 そこで、収入内訳or支出内訳の銀行口座名がA銀行の行のみをSheet2(A銀行)にSheet1のデータをもってきて、A銀行の残高を集計します。 例えばSheet1にデータが50行あったとして、そのうち3,10,17,29,48行目の収入内訳or支出内訳だった場合、Sheet2にはその5行のみが自動的に反映されるという関数です。 説明下手で申し訳ありませんが、ご回答頂ければ助かります。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
解答No3です。ご質問のタイトルが該当する行を別のシートにとのことでしたのでそのような答えになっています。もしも必要な列だけを表示されるのでしたら、それなりの式に変形する必要がありますね。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2ではA1セルに例えばA銀行と銀行名を入力するとして2行名ではシート1に書かれた項目名をコピーして貼り付けることにします。 その上でシート1の13列目であるM2セルには次の式を入力して下方にドラッグコピーします。 =IF(AND(ISERROR(FIND(Sheet2!$A$1,D2)),ISERROR(FIND(Sheet2!$A$1,F2))),"",MAX(M$1:M1)+1) これでD列およびF列の口座名にシート2で指定された銀行名があればその行については上から順に番号が振られます。 次にシート2のA3セルには次の式を入力しL3セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR(COUNTIF(Sheet1!$M:$M,ROW(A1))=0,A$2=""),"",INDEX(Sheet1!$A:$L,MATCH(ROW(A1),Sheet1!$M:$M,0),COLUMN(A1))) これでシート1でA1セルで指定された銀行名を含む口座名の行すべてがシート2に表示されることになります。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 参考になるかどうか判りませんが・・・ 現金と口座に関しては「収入科目」と「支出科目」が逆になると思いますので ↓に画像をアップしてみました (画像が小さくて見えにくいかもしれません) Sheet1が現金出納帳でSheet2が「A銀行」のSheetだとします。 Sheet2に作業用の列を使わせてもらっています。 Sheet2のA4セルに =IF(OR(Sheet1!D4=Sheet2!$B$1,Sheet1!F4=Sheet2!$B$1),ROW(A1),"") という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 (Sheet1と同じ行くらいまでコピーしておきます) B4セルに =IF(COUNT($A$4:$A$100)<ROW(A1),"",INDEX(Sheet1!$A$4:$A$100,SMALL($A$4:$A$94,ROW(A1)))) C4セルに =IF(B4="","",VLOOKUP(B4,Sheet1!$A$4:$B$100,2,0)) D4セルに =IF(B4="","",INDEX(Sheet1!$K$4:$K$100,B4)) E4セルに =IF(B4="","",INDEX(Sheet1!$J$4:$J$100,B4)) という数式を入れ、B4~E4セルを範囲指定し、E4セルのフィルハンドルで 下へコピーすると画像のような感じになります。 (とりあえずSheet1の100行まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。) 尚、Sheet1が空白の場合は「0」が表示されますので 当方使用のExcel2003の場合ですが、 メニュー → ツール → オプション → 表示タブで「ゼロ値」のチェックを外しています。 以上、長々と書きましたが 参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m
- tadagenji
- ベストアンサー率23% (508/2193)
検索範囲が元帳の行数自然増の関係から、関数は固定できません。 関数は設定したセルをBASEに他のシートを参照できますが、その逆はできません。 VBAで処理するか、元帳から全てアクセスを使ってクエリでした方がよろしいようで。