• ベストアンサー

Excelの関数について

エクセルで、最大値や最小値、平均値を出すとき、レコード数が多い時は範囲指定してMAX()等の関数を使うのが大変です。 種類    店名  売り上げ   最大値 ・・・・ ファミマ  ○店   100000円 ファミマ  ×店   100200円 ・ ・ ・ ローソン  ○店   1231円 ・ ・ 例えば上のような売り上げの平均を出すときに、コンビニの種類ごとに売り上げの最大値・平均値を出す関数またはマクロを教えてください。因みに、例で言うコンビニの種類の所の項目には実際には7万件くらいデータがありまして、範囲指定で=MAX()等をするのは大変です。 宜しくお願いします。    

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

VBAで (データ)A1:B12 グループ 計数 a 1 a 3 a 2 a 8 b 4 c 4 c 6 c 5 d 4 d 5 d 3 (コード) Sub test01() d = Range("a2").CurrentRegion.Rows.Count MsgBox d t = 1 Cells(1, "E") = Cells(2, "A") Cells(1, "F") = Cells(2, "B") '----- For i = 2 To d For j = 1 To t If Cells(i, "A") = Cells(j, "E") Then If Cells(i, "B") > Cells(j, "F") Then Cells(j, "F") = Cells(i, "B") End If GoTo p01 End If Next j t = t + 1 Cells(t, "E") = Cells(i, "A") Cells(t, "F") = Cells(i, "B") p01: Next i End Sub (結果)E1:F4 a 8 b 4 c 6 d 5 総なめ法なので6万行のデータでそこそこの時間内に 終わるかどうかやって見てください。

その他の回答 (4)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.5

店名がA2以下に、売上がB2以下にあり、求めたい店名がC2にあるとするとD列 =MAX(IF($A$2:$A$65536=C2,$B$2:$B$65536,""))といれctrlキーとShiftキーを押しながらEnterキーを押すと配列数式になり、C2の最高売上が出てきます。あとはC列に店名を入れて数式をD列以下にコピーしていけばいいです。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

第1行目に、コンビニ名、店名、売上など見だし行を作ります。 (1)コンビニ名で表全体をソートします。 (2)データ-集計-(グループの基準)コンビニ名 (集計方法)最大値(集計するフィールド)売上 現在の集計表と置き換える-集計行をデータ行の下に挿入する。-OK これでコンビニ別の最大値が出ます。

  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんばんは データベース関数を使った例を 1案   A    B   C 1 種類   店名 売り上げ 2 ファミマ ○店 100000円 3 ファミマ ×店 100200円 4 ローソン ○店  1231円 ・ ・ ・   E     F   G 1 種類   最大値  平均 2 ファミマ 式1   式2 3 種類 4 ローソン  ↓    ↓ 5 種類 4 7/11  ↓    ↓ ・セルF2に 式1 =DMAX(A:C,3,E1:E2) ・セルG2に 式2 =DAVERAGE(A:C,3,E1:E2) ・F2:G3の範囲を選択 ・下行へ必要数フィルドラッグ PS. >7万件くらいデータがありまして EXCELの最大行数は65536行です(^^; もし複数シートでの処理なら DSUM() と DCOUNT() も組み合わせて平均を出すことになります

myutarou
質問者

お礼

ありがとうございます! そうでした・・1シート65536行でしたね(^^; 因みにその方法でこれから全部で15シート分試してみます!!

  • koba_nob
  • ベストアンサー率29% (22/75)
回答No.1

マクロ使わなくても 最初の行をアクティブにして、 ctrl + shift + ↓ とすれば、最終行まで指定出来ますが、これじゃだめですか?

myutarou
質問者

補足

それで全体の値はでるのですが、行の途中で例で言うコンビニの種類が変わります。種類が変わったらまたその種類の最大値や平均値を出したいのです。