- ベストアンサー
データの抽出
再びエクセルの質問をします。 エクセルでデータベースを作っています。 データベースの合計金額を別シート(日報シート)に反映させたいのですがどんな関数を使えばいいのか分かりません。 データベースシートのB5~B204までには「現場名」が入力されていて、C5~AJ5までは費目別に合計金額が入力されています。C3~AJ3には費目(運搬費・施工図費・工事管理費など)が入力されています。 日報シートのA1~A26には費目が入力されていて、別シート(予算シート)のA1に現場名が入力されたら日報シートのB列に費目別に合計金額を反映させる関数を入力したいのですが・・・なにか良い関数がありましたらよろしくおねがいします。分かりづらい文章ですいません;;
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
費目のタイトルをC4~AJ4に移動できませんか? 4行目がタイトル行になっていればピボットテーブルが使えます。 B4セルには「現場名」とタイトルが入っているものとします。 B4~AJ204がタイトル行を含めた表の範囲となります。 表内のセルを一つ選択します。 メニューの「データ」-「ピボットテーブルと~」をクリックします。 「次へ」ボタンを押すとデータの範囲が自動的に表示されます。 違っていたら指定しなおします。データを追加する予定があるなら、 範囲を広く取っておきます。 質問では、AJ204までになっていると思いますが、AJ300とかAJ1000に変更しておきます。 「次へ」ボタンを押して、「完了」ボタンを押します。 「ピボットテーブル」ツールバーから、費目のボタン(運搬費・施工図費・工事管理費など)を「ここにデータアイテムをドラッグします」に順次ドラッグします。 「ページのフィールド~」に「現場名」のボタンをドラッグします。 「現場名」は(すべて)になっていると思いますが、右の▼をクリックして現場名を選択すれば、その現場名のデータが表示されます。 データは「合計 : 運搬費」のようになっていると思いますが、 「個数:運搬費」などになっていたら、右クリックで[フィールドの設定]で[合計]を選択します。 「ページのフィールド」の「現場名」を右クリックして「ページの表示」を選択すると、現場名ごとのシートが出来上がります。 「現場名」を「ページのフィールド」から「行のフィールド」にドラッグして移すと、費目ごとの現場のデータ、現場ごとの費目のデータが表示されます。 「現場名」が右にあれば費目ごと、左にあれば現場ごとになります。 ドラッグで位置を変えられます。 範囲を入力していない範囲まで広くとった場合、(空白)と表示されますが、じゃまなら右クリックで「表示しない」を選択します。 元の表に追加・修正があった場合、ピボットテーブルツールバーの赤い「!」マークを押せば、ピボットテーブルが更新されます。
その他の回答 (3)
> C5~AJ5までは費目別に合計金額 C5~AJ204でしょうか? 日報シートB1 =VLOOKUP(予算シート!A$1,データベースシート!$B$5:$AJ$204,MATCH(A1,データベースシート!$B$3:$AJ$3,0),0) B26までコピー ということでしょうか?
- oresama
- ベストアンサー率25% (45/179)
現場で抽出するだけなら、 SUMIF DBのどこかに日付があって、 日次で現場毎の合計であれば SUMPRODUCT を使用します。 現場だけなら =SUMIF(<データベースシートのB列>,<予算シートのA1>,<データベースシートの費目が該当する列>) <>内は適切なセル参照にしてください。
- keirika
- ベストアンサー率42% (279/658)
VLOOKUP関数はどうでしょうか
補足
vlookupはデータの前?に数字を入れないといけないので、断念しました;あと複数の条件で抽出できないとおもったので・・・違ったらすいません(×-×;)