
いつもお世話になっております
シート名 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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
【VBA】シート名に特定文字が入...
-
VBAで指定シート以外の選択
-
エクセルのシート名変更で重複...
-
ユーザーフォームに入力したデ...
-
【Excel VBA】Worksheets().Act...
-
別のシートから値を取得するとき
-
シートが保護されている状態で...
-
Excel VBA リンク先をシート...
-
実行時エラー1004「Select メソ...
-
IFステートの中にWithステート...
-
userFormに貼り付けたLabelを変...
-
Worksheet_Changeの内容を標準...
-
エクセルVBA Ifでシート名が合...
-
C#でExcelのシートを選択する方法
-
ブック名、シート名を他のモジ...
-
エクセルで通し番号を入れてチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
【ExcelVBA】全シートのセルの...
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
ブック名、シート名を他のモジ...
-
【VBA】シート名に特定文字が入...
-
シートが保護されている状態で...
-
VBAで指定シート以外の選択
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
VBA 存在しないシートを選...
-
IFステートの中にWithステート...
-
実行時エラー'1004': WorkSheet...
-
Excel VBA リンク先をシート...
-
エクセルVBA Ifでシート名が合...
-
ExcelVBA:複数の特定のグラフ...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
おすすめ情報
画像添付できませんでした。
シート名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だぶりました。