- ベストアンサー
集計
driverIIの回答
- driverII
- ベストアンサー率27% (248/913)
GROUP BY と SUM 関数でしょうね。
関連するQ&A
- 2つのテーブルを結合
VB6.0 SQL SERVER winXP にて開発中です。 よろしくお願いします。 2つのテーブルを結合したいと思っています m_seihinというテーブルに 品番 品名 12 あいう 13 かきく m_tanabanというテーブルに 棚番 品名 333 あいう 555 かきく があります。 TDBGridに品番を入力するとm_seihinの品名と m_tanabanの棚番を表示させたいのですが 例えば12と入力すると あいう 333 教えてください。
- ベストアンサー
- Visual Basic
- ExcelのVLOOKUP関数について教えて下さい。
こんばんは。 下の表をExcelでVLOOKUP関数を使用して、品名と単価を求めたいのですがうまくできません。 エラーがでるそうなのですが、品名のところに1000が表示されます。 絶対参照は使用しました。 どなたかやり方を詳しく教えていただけないでしょうか? よろしくお願いします。 (ケーキ売上日計表) A列4に伝票番号、B4品番、C4品名、D4数量、E4単価、F4売上金額です。 伝票番号 品番 品名 数量 単価 売上金額 1 K001 256 2 M002 157 3 M001 219 4 K002 135 (品名別金額一覧表) A11~C15に 品番 品名 単価 M001 丸型クリーム 2,000 M002 丸型チョコ 3,500 K001 角型クリーム 3,000 K002 角型チョコ 2,500
- 締切済み
- オフィス系ソフト
- エクセルでの簡単な集計について
A B C D E F ・・・・W X 1 2 3 4 1の行に単価、2~4の行は個数です Xの列に単価*個数の合計を各行ごとに出したい。 なるべく簡単な式を教えてください。
- ベストアンサー
- Windows系OS
- ACCESS97のMAX関数について
ACCESS97を使用しています。 "関数"の使い方が全くわかりません。 (というより、SQLも含めて…) テーブル"TBL_A"の"項目B" から最大値を変数SDHSに取得したいのですが どうすればいいのでしょうか? Dim db As DATABASE Dim RS As Recordset Dim SDHS, strSQL As String Set db = CurrentDb() strSQL = "SELECT Max(項目B) FROM TBL_A ;" Set RS = db.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) SDHS = Max(項目B)
- ベストアンサー
- オフィス系ソフト
- 【excelマクロVBA】表の集計・転記マクロの改造点について
以前、こちらのカテゴリーで重複をチェックしてその行を削除し表を整頓するマクロとしてプログラムを教えて頂きました。 (資材受け入れシート) → (Sheet2) 受入日 品名 Lot 数量 受入日 品名 Lot 数量 7/7 A BNR32 10 7/8 A BNR32 15 7/8 A BNR32 5 7/10 B SW200 14 7/10 B SW200 2 → 7/7 B AE860 4 7/7 B AE860 4 7/9 C GD300 11 7/8 B SW200 12 7/7 C DC200 7 7/9 C GD300 10 7/7 C GD300 1 7/7 C DC200 7 プログラムの内容は、 Sub test() Dim strSql As String Dim cnXL As Object Dim rsXL As Object Const adOpenForwardOnly = 0 Sheets("資材受け入れシート").Range("A1:D1").Copy Sheets("資材受け入れシート").Paste Destination:=Worksheets("Sheet2").Range("A1:D1") Application.CutCopyMode = False Set cnXL = CreateObject("ADODB.Connection") Set rsXL = CreateObject("ADODB.Recordset") With cnXL .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & ThisWorkbook.FullName & "; ReadOnly=True;" .Open End With strSql = "select max(受入日) as 日付,品名,Lot,sum(数量) as 合計" _ & " from [資材受け入れシート$]" _ & " group by 品名,Lot order by max(受入日),品名,Lot" Debug.Print strSql rsXL.Open strSql, cnXL, adOpenForwardOnly Worksheets("sheet2").Cells(2, 1).CopyFromRecordset rsXL Worksheets("sheet2").Columns("A:A").NumberFormatLocal = "m/d" rsXL.Close: Set rsXL = Nothing cnXL.Close: Set cnXL = Nothing MsgBox "Sheet2に出力しました" End Sub と記述されており、正常に動作いたしました。 ところが、会社から受入日,品名,Lot,数量だけでなく、納入業者,賞味期限,担当者の項目(列)を追加し転記できるように欲しいと命じられました。業務の都合上、列の順番は受入日,<納入業者>,品名,Lot,<賞味期限>,数量,<担当者>の順番で挿入し、追加した3項目については計算させる必要は無く、転記だけさせたいと考えています。上のプログラムを元に改造を試みたのですが、転記が上手くできません。どこの部分にどのように記述・変更したら良いのかが分りません。どなたかご存知の方、お教え願えませんでしょうか?表の作成までにもう少しというところで躓いてしまい頭を悩ませております。初歩的な質問かもしれませんが、宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルVBAでエラー!
エクセルでVBAを組んでいます。 Aシート・Bシートにデータがあり、それをSQLで集計し、 Cシートに出力をしたいのですが、 『リンクされているExcelのワークシートを表示するための接続が切断されました。』 というエラーが出て、解決しません。 (調べてみましたが、似たような例がなく解決には至りませんでした・・・。) どなたかご教示お願い致します。 Private Sub CommandButton1_Click() Dim dbCon As Object Dim dbCols As Object Dim dbRes As Object Dim strSQL As String Dim sh1 As Worksheet Set sh1 = Worksheets("Cシート") Set dbCon = CreateObject("ADODB.Connection") dbCon.Provider = "Microsoft.Jet.OLEDB.4.0" dbCon.Properties("Extended Properties") = "Excel 8.0" dbCon.Open ThisWorkbook.FullName strSQL = "" strSQL = strSQL & "SELECT *" strSQL = strSQL & vbCrLf & "FROM [Aシート$] LEFT JOIN [Bシート$] ON [Aシート$].NO= [Bシート$].NO" Set dbRes = CreateObject("ADODB.Recordset") dbRes.Open strSQL, dbCon, adOpenKeyset, adLockReadOnly sh1.Range("A1").CopyFromRecordset dbRes dbRes.Close Set dbRes = Nothing dbCon.Close Set dbCon = Nothing End Sub
- 締切済み
- オフィス系ソフト
- 組み合わせごとの集計の仕方を教えてください
エクセルでの集計の仕方を教えてください。 分類A~Cの中からそれぞれ好きなものを1つずつ選択してもらい1セットで売るという商品があるとします(3品1セット)。 受注データを集計し、人気の組み合わせをランク付けしたい場合どのような方法があるでしょうか? 分類 品番 品名 A A1 Tシャツ1 A2 Tシャツ2 B B1 ジャケット1 B2 ジャケット2 C C1 スカート1 C2 スカート2 受注データは以下のような形で出ます。 <受注データ> 注文番号 品番 品名 数量 1001 A1 Tシャツ1 1 1001 B1 ジャケット1 1 1001 C2 スカート2 1 1002 A2 Tシャツ2 1 1002 B2 ジャケット2 1 1002 C2 スカート2 1 1003 A2 Tシャツ2 1 1003 B2 ジャケット2 1 1003 C2 スカート2 1 1004 A1 Tシャツ1 1 1004 B1 ジャケット1 1 1004 C2 スカート2 1 1005 A1 Tシャツ1 1 1005 B1 ジャケット1 1 1005 C2 スカート2 1 ・ ・ ・ いろいろと試してみたのですがなかなかうまくいきません。 組み合わせごとの集計というところがポイントです。 どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- AccessでSQL結果を直接csvに書き出すには?
Access2003,WinXP お世話になります。 自作のSQLを書いて、結果をTransferTextで手軽にCSVにできないかと考えてこんなのを書いてました。 Dim strSql AS String Dim strPath AS String strSql = 自作SQL文 strPath = c:\test.csv Docmd.TransferText acExportDelim, , strSql, strPath, True しかし、TransferTextでは「テーブル」か「クエリ」名を直接書くように指示してあり、これだと動かない?んでしょうか。 SQLは300個くらい出力する必要があるため(クエリ300個作れば解決するのですが・・・)上のようなコードをループして動かしたいのですが、何か他の簡単な出力方法があるのでしょうか。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excelでの集計その2
以前、似た質問をしたものです。下記のケース を、Excel(Excel2000)で作れるでしょうか 次のようなデータが10000件ほどあります。 ------------- (A)--------------------------- 行 商品コード 品名 品番 数量 金額 1 10010005 A商品 A-005 5 1000 2 10010006 B商品 B-006 5 1050 3 10010006 B商品 B-006 6 1100 4 10010007 C商品 C-007 10 100 5 10010008 D商品 D-008 6 60 6 10010009 E商品 E-009 3 300 7 10010010 F商品 F-010 7 700 8 10010010 F商品 F-010 3 300 ------------- (B)--------------------------- 行 商品コード 品名 品番 数量 金額 1 10010005 A商品 A-005 5 1000 2 10010006 B商品 B-006 11 2150 3 10010007 C商品 C-007 10 100 4 10010008 D商品 D-008 6 60 5 10010009 E商品 E-009 3 300 6 10010010 F商品 F-010 10 1000 ------------------------------------------------- (A)のような商品コードが一部同じデータを商品コードをキーにして、数量、金額を集計して(B)のようにしたいのですが、Excelでどのようにしたら出来るでしょうか? よろしくお願いします。
- 締切済み
- その他([技術者向] コンピューター)
- エクセル VBA SQL 開始行の指定
namatyu MC285Pさんの質問からの解答を利用させていただいて、会社の履歴表を作成しましたが、訳あって、(資材受け入れシート)側の開始行をA1からA2に変えた所、「パラメータがすくなすぎます。14を指定してください」と出てしまいます。 Sheets("資材受け入れシート").Range("A1:D1").Copyを Sheets("資材受け入れシート").Range("A2:D2").Copyに変えても解決しません… SQL文が勉強不足で、変更場所が分かりません 1 2 3 4 受入日 品名 Lot 数量 7/7 A BNR32 10 7/8 A BNR32 5 7/10 B SW200 2 7/7 B AE860 4 7/8 B SW200 12 7/9 C GD300 10 7/7 C GD300 1 7/7 C DC200 7 Sub test() Dim strSql As String Dim cnXL As Object Dim rsXL As Object Const adOpenForwardOnly = 0 Sheets("資材受け入れシート").Range("A1:D1").Copy Sheets("資材受け入れシート").Paste Destination:=Worksheets("Sheet2").Range("A1:D1") Application.CutCopyMode = False Set cnXL = CreateObject("ADODB.Connection") Set rsXL = CreateObject("ADODB.Recordset") With cnXL .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _ "DBQ=" & ThisWorkbook.FullName & "; ReadOnly=True;" .Open End With strSql = "select max(受入日) as 日付,品名,Lot,sum(数量) as 合計" _ & " from [資材受け入れシート$]" _ & " group by 品名,Lot order by max(受入日),品名,Lot" Debug.Print strSql rsXL.Open strSql, cnXL, adOpenForwardOnly Worksheets("sheet2").Cells(2, 1).CopyFromRecordset rsXL Worksheets("sheet2").Columns("A:A").NumberFormatLocal = "m/d" rsXL.Close: Set rsXL = Nothing cnXL.Close: Set cnXL = Nothing MsgBox "Sheet2に出力しました" End Sub 色々、試したのですが、分かりません… すいませんが、どたたか教えてください、お願いします。
- ベストアンサー
- オフィス系ソフト