[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データベースから違うファイルへリンクして複数条件で合計を出す』(ゆた)
こんなデータベースで ファイル名は2006年7月という感じで月ごとに打ち込んでいきます。↓
ファイル名:集計入力2006年7月
A B C D E F G H 1 集計番号 日付 現場名 得意先名 作業員名 契約項目 BL数 定時 2 1 2006/8/1 大阪 ○△建設 山田太郎 舗装工 1BL 8 3 2 2006/8/1 大阪 ○△建設 山田太郎 舗装工 1BL 8 4 5
↑このような感じで打ち込んでいき、下記のような条件で集計するのですが、違うファイルで表を作って集計したいのです。
ファイル名:集計表
A B C D E F G H
1 現場名 日付 契約項目 BL数 定時
2 大阪 2006/8/1 舗装工 1BL
3
4
↑のような感じで別のファイルに表を作成してE2に式を入れて定時の合計を出したいのですが、違うファイル間でのリンクのためやり方がわかりません。どうしたらできますか?
集計入力2006年7月のデータが20行まで有るとして
集計表のE2セルに
=SUMPRODUCT(([集計入力2006年7月.xls]Sheet1!$C$2:$C$20=A2)*([集計入力2006年7月.xls]Sheet1!$B$2:$B$20=B2)*([集計入力2006年7月.xls]Sheet1!$F$2:$F$20=C2)*([集計入力2006年7月.xls]Sheet1!$G$2:$G$20=D2)*([集計入力2006年7月.xls]Sheet1!
$H$2:$H$20))
でいかがでしょうか?
A B C D E
1 年 月
2 2006 7
3 現場名 日付 契約項目 BL数 定時
4 大阪 2006/8/1 舗装工 1BL
5
としておき INDIRECT関数を使えば良いでしょう。
=SUMPRODUCT((INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1!$C$2:$C$20")=A4)*(INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1!$B$2:$B$20")=B2)*(INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1!$F$2:$F$20")=C2)*(INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1!$G$2:$G$20")=D2)*(INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1! $H$2:$H$20")))
但し参照するファイルが全て開いていなければなりません。
ファイルが開いて以内と#REFとなります。
INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1!$C$2:$C$20")=A4)
↑のように2行目から20行目という感じに入力されてる部分を指定しないとエラーになるのですが、C:CのようにC列全体を指定してもエラーになるし、データが入ってる部分だけの行までを指定したいのですが、どうしたらできますか?
うまくいくかどうか分かりませんが COUNT(INDIRECT("[集計入力"&A2&"年"&B7&"月.xls]Sheet1!$C:$C")) として、最終行数が求まるようならその数字をINDIRECTで使うのも 一つの方法かもしれません。
その際直接「20」と数式を置き換えても良いとは思いますが 式が長くなるので何処かのセルに一度だしてから参照するのが 良いかもしれませんね。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.