- 締切済み
Excelでシートを仕訳するには
excel2010以降で画像のようなことができないかと上司に言われまして考えているところです。 シート1にリストがあります。 シート2,3には、そのシート1から特定したレコードが表示をさせます。 シート2,3には、そのシートで抽出させたい項目を右の列にでも記入する感じで問題ありません。また抽出する際には行の空きがないようにもしたいと思います。無駄にページが印刷されてしまうと思いますので。 フィルタの詳細でやってもうまくいかず、いろいろと調べてみたのですが、うまくいかないのでお知恵をお貸しください。Accessなどは使う予定はありません。購入しないといけないのと使い方がわかるものがいません。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 関数での一例です。 憶測ですが、Sheet1は列方向に数列あるのではないかと思いますので 何列あっても表示するようにしてみました。(今回はD列までとしています) やり方は何列・何Sheetあっても同じです。 ↓の画像で右側上がSheet2・右側下がSheet3で左側が元データのSheet1とします。 Sheet1に作業用の列を設けています。 作業列E2セルに =IF(COUNTIF(Sheet2!E:E,A2),1,IF(COUNTIF(Sheet3!E:E,A2),2,"")) という数式を入れ、フィルハンドルでずぃ~~~!っと下へコピーしておきます。 ※ Sheet数が増える場合はIF関数でネストし、1・2の部分を3・4・・・と増やしていきます。 そしてSheet2のA2セルには =IFERROR(INDEX(Sheet1!A$1:A$1000,SMALL(IF(Sheet1!$E$1:$E$1000=1,ROW($A$1:$A$1000)),ROW(A1))),"") これは配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → Sheet2のA2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 A2セルのフィルハンドルで列・行方向にコピー! これで画像のような感じになります。 Sheet3のA2セルも同様(配列数式) =IFERROR(INDEX(Sheet1!A$1:A$1000,SMALL(IF(Sheet1!$E$1:$E$1000=2,ROW($A$1:$A$1000)),ROW(A1))),"") としてフィルハンドルでコピー! ※ 数式内のSheet1!$E$1:$E$1000=1 で最後の「1」と「2」が違っています。 とりあえずSheet1の1000行目までデータがあっても対応できる数式ですが 配列数式はデータ量が極端に多い場合はおススメしません。 データがもっとある場合は作業用の列を増やすなりして対応します。 5000行程度であれば大丈夫だと思います。m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
フィルタの詳細設定がちゃんと正しく使えれば、それで完成です。 http://www4.synapse.ne.jp/yone/excel2010/excel2010_filter21.html ポイントとしては、 ●元リストの先頭セル(1行目)に「タイトル」を記入する ●クライテリア(各シートの右側)の先頭セル(1行目)には、上述と同じ記載内容で「タイトル」を記入する という点に気を付けて作成します。 また、貼り付け先の各シートを開いた状態で作業を開始してください。
- nitto3
- ベストアンサー率21% (2656/12205)
ネットのリンクと同じなんですよ。 シートに名前を付けて、シート1からそこにリンクすればいいです。