- ベストアンサー
EXCELで交通費未払いの明細を自動的に作成するには
- EXCELで交通費未払いの明細を自動的に作成する方法として、50名程のグループの会計担当者の方は、集計表を作成し、氏名欄に氏名を入力すると未払いの明細が自動的に生成されるようにしたいと考えています。
- 現在はオートフィルで氏名を抽出していますが、それには手間がかかります。したがって、マクロを使わずに関数を使ってこの作業を行いたいと思っています。
- しかし、マクロや関数の知識が不足しているので、どのように関数を使用すれば良いか分かりません。ご教授いただけますと幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 外していたらごめんなさい。 ↓の画像で説明させていただきます。 Sheet1に作業用の列を設けています。 作業列J2セルに =B2&I2 という数式を入れオートフィルで下へずぃ~~~!っとコピーします。 そして、Sheet2の数式は全て配列数式になってしまいますので この画面からコピー&ペーストしただけではエラーになると思います。 各セルに数式を貼り付け後、F2キーを押す、又は貼り付けたセルをダブルクリック、又は数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 Sheet2のA5セルは =IF(COUNTIF(Sheet1!$J:$J,$A$2&$B$2)<ROW(A1),"",INDEX(Sheet1!$A$2:$A$1000,SMALL(IF(Sheet1!$J$2:$J$1000=$A$2&$B$2,ROW($A$1:$A$999)),ROW(A1)))) B5セルは =IF(A5="","",INDEX(Sheet1!$C$2:$C$1000,SMALL(IF(Sheet1!$J$2:$J$1000=$A$2&$B$2,ROW($A$1:$A$999)),ROW(A1)))) C5セルは =IF(A5="","",INDEX(Sheet1!$H$2:$H$1000,SMALL(IF(Sheet1!$J$2:$J$1000=$A$2&$B$2,ROW($A$1:$A$999)),ROW(A1)))) として全て Shift+Ctrl+Enterキーで確定です。 最後にA5~C5セルを範囲指定し、C5セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式はSheet1の1000行目まで対応できるようにしていますが データ量によって範囲指定の領域はアレンジしてみてください。 以上、長々と書きました。 参考になれば良いのですが、 的外れなら読み流してくださいね。m(__)m
お礼
すごい!!できました! ありがとうございました! アレンジして使わせていただきます。本当にありがとうございました!