[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『同一項目をまとめて別シートに集計したいのですが』(キタリン)
エクセル素人です。 皆様よろしくお願いします。 早速ですが、Sheet1に下記のデータがあるとします。
リンゴ 10 いちご 30 バナナ 5 リンゴ 10 オレンジ 20 オレンジ 10 バナナ 20
これをSheet2に、果物別にまとめ集計を出したいのですが、 どうしたら良いでしょうか? 実際には項目が30個程度あり、SUMIF関数では手間がかかると思います。 どうかよろしくお願いします。
こういうのはダメですか? (代奈)
う(T_T) な、なんか嬉しい。。。 (代奈@ピボット推進委員会) ←会員約1名(ーー;)
委員会応援者約1名 [[20041110173119]]『顧客毎の売り上げ累計を出したい』(もぐ)
(川野鮎太郎)
統合愛好派、約1名。 (LOOKUP) [[20040517123225]]『集計方法を教えてください』(はぴ)
おぉ! 鮎さん、元祖というか、委員会創始者だったんですね〜(*^◇^*) じゃあ、委員長ですね(笑)
そうそう! LOOKUPさんは統合のエキスパートでもいらっしゃるんですよね! あと、誰も知らない裏ワザとか(^o^)丿 (代奈)
私なら、ちょこっとこんなコードを書くかな?? Option Explicit Sub てすと() Dim MyDic As Object Dim MyA As Variant, MyAry() As Variant Dim i As Long, k As Long, x As Long Set MyDic = CreateObject("Scripting.Dictionary") With Worksheets("Sheet1") MyA = .Range("A1", .Range("A65536").End(xlUp)).Resize(, 2).Value End With For i = 1 To UBound(MyA, 1) If Not MyDic.Exists(MyA(i, 1)) Then k = k + 1 ReDim Preserve MyAry(1 To UBound(MyA, 2), 1 To k) MyDic.Add MyA(i, 1), k MyAry(1, k) = MyA(i, 1) MyAry(2, k) = MyA(i, 2) Else x = MyDic(MyA(i, 1)) MyAry(2, x) = MyAry(2, x) + MyA(i, 2) End If Next With Worksheets("Sheet2") .Range("A1").CurrentRegion.ClearContents MyAry = Application.Transpose(MyAry) .Range("A1").Resize(UBound(MyAry, 1), 2).Value = MyAry End With Erase MyA, MyAry Set MyDic = Nothing End Sub (SoulMan)
おおおぉぉぉ\(◎o◎)/! マクロ派のSoulManさん! こ、これはすごい。。。一瞬の出来事でした。。。 ちょっと、どうなっているのか頑張って謎解きしてみます(*^◇^*)/ 有難うございました〜!! (代奈)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.