【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

エクセルで、最大値や最小値、平均値を出すとき、レコード数が多い時は範囲指定してMAX()等の関数を使うのが大変です。
種類    店名  売り上げ   最大値 ・・・・

ファミマ  ○店   100000円
ファミマ  ×店   100200円



ローソン  ○店   1231円


例えば上のような売り上げの平均を出すときに、コンビニの種類ごとに売り上げの最大値・平均値を出す関数またはマクロを教えてください。因みに、例で言うコンビニの種類の所の項目には実際には7万件くらいデータがありまして、範囲指定で=MAX()等をするのは大変です。
宜しくお願いします。
   

A 回答 (5件)

店名がA2以下に、売上がB2以下にあり、求めたい店名がC2にあるとするとD列


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

VBAで


(データ)A1:B12
グループ計数
a1
a3
a2
a8
b4
c4
c6
c5
d4
d5
d3
(コード)
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
a8
b4
c6
d5
総なめ法なので6万行のデータでそこそこの時間内に
終わるかどうかやって見てください。
    • good
    • 0

第1行目に、コンビニ名、店名、売上など見だし行を作ります。


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

こんばんは



データベース関数を使った例を 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()
も組み合わせて平均を出すことになります
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/05/12 22:11

マクロ使わなくても


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

この回答への補足

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

補足日時:2003/05/12 21:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報