• ベストアンサー

エクセルの表から特定のデータのみを別のエクセルの表に出したいのですが

表1には売上金額が日付入りで顧客毎に記載されてます。 これを合計金額として表2に出したいのですが条件があります。 その条件が ・顧客毎の合計 ・今月以前は合計に含まない ・表1は日々更新される これを更新入力は手作業で行いますが、そうすると同時に上記の条件を満たし自動的に表示されるようにしたいのですがどうすればいいか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

表1を提示していただけないと具体的な回答は難しいと想います。 ピボットテーブルは試して見られましたか。 表1  A   B   C 日付 顧客名 金額 ・・・とあるならば 表1  A   B   C  D 作業列 日付 顧客名 金額 と1行列を挿入して、A列に =TEXT(B2,"yymm") と入れて下までコピィしておけば 年と月が表示されますので、ツールバーのデータ=>ピボットテーブルと・・・ のウィザードからご希望の表が出来ると想います。

12113
質問者

お礼

回答ありがとうございます! 何とかできました!!

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

気軽に着手して、はまってしまいました。もっと簡単な解があると思いますが、ご参考まで。 Accessで試してから、ADOに載せ替えたのですが、こんなサブクエリを使わないと本当に出来ないのか、質問したいところです。 元データ 売上げ履歴.xlsのSheet1 ......................A...............B...............C ..1................日付.........顧客.....売上げ ..2.....2008/10/22...............a................1 ..3.....2008/10/23...............a...............2 ..4.....2008/10/24...............b...............3 ..5.....2008/10/25...............c...............4 ..6......2008/11/26...............a............100 ..7......2008/11/27...............b...........200 ..8......2008/11/28...............a...........300 ..9......2008/11/29...............c...........400 10......2008/11/30...............b...........500 実行結果 ...............A....................B ..1...............a................400 ..2...............b................700 ..3...............c................400 Sub test() Dim CN As Object, RS As Object Dim mySQL As String Const adOpenStatic As Long = 3 Const adLockReadOnly As Long = 1 On Error GoTo errorHandle Set CN = CreateObject("ADODB.Connection") Set RS = CreateObject("ADODB.Recordset") CN.Provider = "Microsoft.Jet.OLEDB.4.0" CN.Properties("Extended Properties") = "Excel 8.0" CN.Open "C:\Documents and Settings\?????\My Documents\売上げ履歴.xls" mySQL = "SELECT Alias.顧客,Sum([Sheet1$].売上げ) FROM ((select 顧客,日付,売上げ from [Sheet1$] where 日付>=datevalue(Format(Now(),'yyyy/mm') & '/01')) as Alias) GROUP BY Alias.顧客;" RS.Open mySQL, CN, adOpenStatic, adLockReadOnly Range("a1").CopyFromRecordset RS Set RS = Nothing Set CN = Nothing Exit Sub errorHandle: MsgBox "接続に失敗しました", vbCritical Set CN = Nothing End Sub 同じブック内でのADO接続はトラブルがあると聞いているので、別ブックにしてあります。集計先のブックがアクティブになった時に実行されるイベントマクロにでも組み込んでおけば、使いたい時には最新化されるでしょう。(当方xl2000です)

12113
質問者

お礼

回答ありがとうございます! 結構難しい問題でしたね… 早速こちらでも試して見ます!!

関連するQ&A