タイトル通りなのですが詳細を書きます。
sheet1からsheet100まで全く同じフォーマットの集計
シートがあります。
シートを甲乙丙の3種類に分類するため、各シートのA1セル
、B1セル、C1セルの何れかに数字の「1」を入れてフラグを
立てています。
A2以下のセルには関数等で計算された数値があります。
ここでA1のセルに「1」が入力されているシートのみの数値を
甲合計シート、B1のセルに「1」が入力されているシート
のみの数値を乙合計シートにという感じで串刺し算で求め
たいのですが、SUMIFではうまくいきませんでした。
甲合計シートのA2セルに関数がおかしいのは承知で
=SUMIF(Sheet1:Sheet100!A2,A1=1,Sheet1:Sheet100!A2)
と入力してもダメでした。
当方VBAは全く知らないのですが、条件付の串刺し算は
関数では実現できないのでしょうか?
VBAでなら可能というのであれば、その方法を教えて
いただけませんか?
No.1ベストアンサー
- 回答日時:
VBAならわかるのでサンプルを書いてみました。
「集計シート」という名前のシートを追加してから
このマクロ(と呼ぶんでしょうか?)をやってみてください。
Sub 集計()
Dim xlSheet As Worksheet
Dim 集計シート As Worksheet
Set 集計シート = ThisWorkbook.Sheets("集計シート")
集計シート.Range("A1:C1").Value = 0
For Each xlSheet In ThisWorkbook.Worksheets
If xlSheet.Name <> "集計シート" Then
If xlSheet.Range("A1").Value = "1" Then
集計シート.Range("A1").Value = _
集計シート.Range("A1").Value + _
Application.WorksheetFunction.Sum(xlSheet.Range("A2:A100"))
ElseIf xlSheet.Range("B1").Value = "1" Then
集計シート.Range("B1").Value = _
集計シート.Range("B1").Value + _
Application.WorksheetFunction.Sum(xlSheet.Range("A2:A100"))
ElseIf xlSheet.Range("C1").Value = "1" Then
集計シート.Range("C1").Value = _
集計シート.Range("C1").Value + _
Application.WorksheetFunction.Sum(xlSheet.Range("A2:A100"))
End If
End If
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) Excelで特定の文字列を判定し計算する数式を教えて下さい。 1 2022/05/01 12:04
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別シート参照のセルをシート毎...
-
エクセルでファイル保存時に複...
-
複数シートの特定の位置に連番...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
エクセルで前のシートを連続参...
-
excelでシート毎の最終更新日を...
-
Excel、同じフォルダ内のExcel...
-
エクセルの複数シートの保護を...
-
特定のシートの削除を禁止した...
-
VBAでシートコピー後、シート名...
-
Excelで同じシートのコピーを一...
-
EXCELで1ヶ月分の連続した日付...
-
VBA・オートフィルタで抽出・貼...
-
エクセル:ブックを開くとき、...
-
VBA セルの値と同じ名前のシー...
-
前の(左隣の)シートを連続参...
-
複数シートの固定のセルの値を...
-
エクセルVBAでパスの¥マークに...
-
EXCELで同一フォーマットのシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
エクセル 計算式も入っていない...
-
スプレッドシートの関数VLOOKUP...
おすすめ情報