いつもお世話になっております
シート名 1 2 3 があります。
シートごとに 個数と集計をしたいのです。
シートごとです。
わかる方教えてくれませんでしょぅか
Sub erfssa()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Dim val
val = Range("B2").CurrentRegion.Offset(1).Value
Dim wS As Worksheet
aay = Array("1", "2", "3")
For i = LBound(aay) To UBound(aay)
For Each r In Worksheets(aay(i)).Range("B3", Cells(Rows.Count, 2).End(xlUp))
If Not Dic.Exists(r.Value) Then
Dic.Add r.Value, Array(1, WorksheetFunction.Sum(r.Offset(, 1).Value))
Else
v = Dic(r.Value)
v(0) = v(0) + 1
v(1) = v(1) + WorksheetFunction.Sum(r.Offset(, 1).Value)
Dic(r.Value) = v
End If
Next
Dim rr As Range
Set rr = Range("E2")
For Each Key In Dic.Keys
rr.Value = Key
rr.Offset(, 1).Resize(, 2) = Dic(Key)
Set rr = rr.Offset(1)
Next
Next
End Sub
No.2ベストアンサー
- 回答日時:
データがどこの列にあるかで悩みました。
Sub megu()
Dim Dic As Object
Dim r As Range, rr As Range
Dim aay, ar_ws, key, v
Set Dic = CreateObject("Scripting.Dictionary")
aay = Array("1", "2", "3")
For Each ar_ws In aay
With Worksheets(ar_ws)
Set rr = .Range("E2")
For Each r In .Range("B3", .Cells(Rows.Count, 2).End(xlUp))
If Not Dic.Exists(r.Value) Then
Dic.Add r.Value, Array(1, r.Offset(, 1).Value)
Else
v = Dic(r.Value)
v(0) = v(0) + 1
v(1) = v(1) + r.Offset(, 1).Value
Dic(r.Value) = v
End If
Next
For Each key In Dic.Keys
rr.Value = key
rr.Offset(, 1).Resize(, 2) = Dic(key)
Set rr = rr.Offset(1)
Next
Dic.RemoveAll
End With
Next
Set Dic = Nothing
Set rr = Nothing
End Sub
いつもお世話になっております
わかりにくい
質問で申し訳ございませんでした。
うまくいきました。
とても嬉しいです。
ありがとうございました。
No.1
- 回答日時:
こんばんは
>シートごとに 個数と集計をしたいのです
何の個数を、どのように集計したいのかがサッパリわかりません。
仮に計算できたとしても、それをどうしたいのかもわかりません。
(なさりたいことをキチンと伝えないと、回答のしようがありません。)
全くの当てずっぽうで、勝手に以下と推測。
(違っている場合は、以下はすべて無視してください)
・対象範囲は、各シートのB列3行目から最終行までと想定。
・「集計」とは、対象範囲の中の、数値の合計を求めるものと想定。
・「個数」とは、対象範囲の中の、数値の個数を求めるものと想定。
・結果は、とりあえずイミディエイトウインドウに出力します。
以下、ご参考にでもなれば。
(エラー処理等は、一切行っていません)
Sub Sample()
Dim ws As Worksheet, rng As Range
Dim aay, rw As Long, i As Long
aay = Array("1", "2", "3")
For i = LBound(aay) To UBound(aay)
Set ws = Worksheets(aay(i))
rw = Application.Max(ws.Cells(Rows.Count, 2).End(xlUp).Row, 3)
Set rng = Range(ws.Cells(3, 2), ws.Cells(rw, 2))
Debug.Print "シート名:" & ws.Name
Debug.Print "個数:" & WorksheetFunction.Count(rng)
Debug.Print "合計:" & WorksheetFunction.Sum(rng) & vbCrLf
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ワークシートごとに計算結果 2 2022/04/30 22:00
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
ブック名、シート名を他のモジ...
-
【ExcelVBA】全シートのセルの...
-
XL:BeforeDoubleClickが動かない
-
別のシートから値を取得するとき
-
VBA 存在しないシートを選...
-
【VBA】特定の文字で改行(次の...
-
Excelマクロのエラーを解決した...
-
実行時エラー'1004': WorkSheet...
-
ExcelのVBAのマクロで他のシー...
-
エクセル・マクロ シートの非...
-
VBAで指定シート以外の選択
-
VBA 検索して一致したセル...
-
シート削除のマクロで「delete...
-
VBA 最終行まで数式をコピーする
-
vbaでworksheetfunctionでの複...
-
エクセルのマクロでアクティブ...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
excelのマクロで該当処理できな...
-
Excelマクロのエラーを解決した...
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
VBA 存在しないシートを選...
-
シートが保護されている状態で...
-
同じ作業を複数のシートに実行...
-
VBAで指定シート以外の選択
-
Excel VBA リンク先をシート...
-
エクセル・マクロ シートの非...
-
実行時エラー1004「Select メソ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルVBA Ifでシート名が合...
-
userFormに貼り付けたLabelを変...
おすすめ情報
画像添付できませんでした。
シート名1 同様シート名2 3 に
も
支社 売上 青森支社 3 10500
青森支社 1500 秋田支社 3 12000
秋田支社 2000 福島支社 3 13500
福島支社 2500 岩手支社 2 8000
岩手支社 3000
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
秋田支社 6000
福島支社 6500
シート2
支社 売上 青森支社 5 19500
青森支社 1500 秋田支社 4 16000
秋田支社 2000 福島支社 4 18000
福島支社 2500 岩手支社 3 13000
岩手支社 3000
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
秋田支社 6000
福島支社 6500
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
シート2
支社 売上 青森支社 5 19500
青森支社 1500 秋田支社 4 16000
秋田支社 2000 福島支社 4 18000
福島支社 2500 岩手支社 3 13000
岩手支社 3000
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
秋田支社 6000
福島支社 6500
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
シート3
支社 売上 青森支社 5 19500
青森支社 1500 秋田支社 4 16000
秋田支社 2000 福島支社 4 18000
福島支社 2500 岩手支社 3 13000
岩手支社 3000
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
秋田支社 6000
福島支社 6500
青森支社 3500
秋田支社 4000
福島支社 4500
岩手支社 5000
青森支社 5500
すいません、シート2だぶりました。