- 日時: 2007/07/15 19:27
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[グリッド関係][][] * * キーワード:MSHFlexGrid,フレックスグリッド,科目別集計,小計合計,, * ***********************************************************************************
元質問 No.2358 項目別の集計 投稿者:おーちゃん [2001/06/26(火)15:08分]
VBで、あるデータ表から項目別の集計が出せるようにしたいのです。 例) 日付 品名 メーカー 購入個数 6月23日 ノート じゃ○にか 50 6月23日 ノート ○印良品 50 6月23日 鉛筆 じゃ○にか 150 6月23日 消しゴム じゃ○にか 10 6月24日 ノート じゃ○にか 250 6月24日 ノート ○印良品 50 6月24日 鉛筆 じゃ○にか 150 6月24日 消しゴム じゃ○にか 10 ・ ・ 以上のような表で、品名を第一優先、メーカーを第二優先の順で、購入した個数をそれぞれ求めたいのですが、どのような関数で求められるのでしょうか?
------------------------------------------------------------------------------ No.2368 RE:項目別の集計 投稿者:ゆう(U) [2001/06/27(水)14:04分] ------------------------------------------------------------------------------
実行結果の図(下記サンプルを一部改造しております) http://hanatyan.sakura.ne.jp/samplepic/vb6_346.htm
サンプル) Private Sub Form_Load() With MSFlexGrid1 .Redraw = False .Rows = 10 .Cols = 4 .FixedRows = 1 .FixedCols = 0 .Row = 0 .Col = 0 .RowSel = .Rows - 1 .ColSel = .Cols - 1 .Clip = "日付" & vbTab & "品名" & vbTab & "メーカー" & vbTab & "購入個数" & vbCr _ & "6月23日" & vbTab & "ノート" & vbTab & "じゃ○にか" & vbTab & "10" & vbCr _ & "6月23日" & vbTab & "ノート" & vbTab & "○印良品" & vbTab & "20" & vbCr _ & "6月23日" & vbTab & "鉛筆" & vbTab & "じゃ○にか" & vbTab & "30" & vbCr _ & "6月23日" & vbTab & "消しゴム" & vbTab & "じゃ○にか" & vbTab & "40" & vbCr _ & "6月23日" & vbTab & "消しゴム" & vbTab & "○印良品" & vbTab & "50" & vbCr _ & "6月24日" & vbTab & "ノート" & vbTab & "じゃ○にか" & vbTab & "60" & vbCr _ & "6月24日" & vbTab & "ノート" & vbTab & "○印良品" & vbTab & "70" & vbCr _ & "6月24日" & vbTab & "鉛筆" & vbTab & "じゃ○にか" & vbTab & "80" & vbCr _ & "6月24日" & vbTab & "消しゴム" & vbTab & "○印良品" & vbTab & "90" .Row = .FixedRows .Col = .FixedCols .Redraw = True End With End Sub Private Sub Command1_Click() Dim strHinmei As String Dim strMaker As String Dim lngKosuu As Long Dim i As Long
With MSFlexGrid1 .Redraw = False .RowSel = .Row .Col = 1 .ColSel = 2 .Sort = flexSortStringAscending For i = .Rows - 1 To .FixedRows Step -1 .TextMatrix(i, 0) = "" If strHinmei = .TextMatrix(i, 1) Then If strMaker = .TextMatrix(i, 2) Then lngKosuu = lngKosuu + CLng(.TextMatrix(i, 3)) .TextMatrix(i, 3) = CStr(lngKosuu) .RemoveItem i + 1 Else strMaker = .TextMatrix(i, 2) lngKosuu = CLng(.TextMatrix(i, 3)) End If Else strHinmei = .TextMatrix(i, 1) strMaker = .TextMatrix(i, 2) lngKosuu = CLng(.TextMatrix(i, 3)) End If Next .Row = .FixedRows .Col = .FixedCols .Redraw = True End With End Sub
|