目次
複数のシートにまたがるデータがある場合、いくつかのテクニックを知っておくことで サミフ 関数を使用する3つの方法を紹介します。 サミフ Excelの複数のシートにまたがって
例えば、データシートに異なるセールスマンによる四半期ごとの売上があるとします。 ここで、異なるセールスマンの年間売上を計算したいとします。 そのためには、各セールスマンの異なる四半期の売上を合計する必要があります。
練習用ワークブックをダウンロードする
複数シートにまたがるSUMIF.xlsm複数のシートでSumifを使用する3つの方法
方法1:各シートでSUMIF関数を使用する
計算を行う方法のひとつは SUMIF関数 というシートで、各営業マンの年間売上高を計算したいとします。 営業概要。 セルに次の数式を入力します。 C5,
=SUMIF('第1四半期'!B5:B9,'売上集計'!B5,'第1四半期'!C5:C9)+SUMIF('第2四半期'!B5:B9,'売上集計'!B5,'第2四半期'!C5:C9)+SUMIF('第3四半期'!B5:B9,'売上集計'!B5,'第3四半期'!C5:C9)
これです。 'クォーター1′!B5:B9' = シート内の範囲 第1四半期 条件が一致する場所
販売概要」!B5′。 = 基準
'クォーター1′!C5:C9' = シート内の範囲 第1四半期 で、ここから総和の値が取得されます。
同じように サミフ はすべてのシートに使用されます。
を押した後 ENTER, のセルには、3四半期分のMarkの売上高の合計が表示されます。 C5.
売上をドラッグする C5 をデータセットの最後に追加すると、全営業マンの年間売上高が得られます。
続きを読む: Excelで異なるシートにまたがる複数条件をSUMIFする(3つの方法)
方法2:SUMPRODUCT SUMIFとINDIRECT関数を使用する。
を繰り返さずに サミフ 関数を複数回実行すると SUMPRODUCT関数 は、その サミフ 機能、および INDIRECT機能 altogether で同じ結果を得ることができます。 まず、シートの名前を挿入します ( 第1四半期、第2四半期、第3四半期) を、年商の計算をするシートの中に入れてください。
その後、セルに次の数式を入力します。 C5,
=SUMPRODUCT(SUMIF(INDIRECT("'"&$E$5:$E$7&"'!$B$5:$B$9"),B5,INDIRECT("'"&$E$5:$E$7&"'!$C$5:$C$9"')))
これです。 E$5:$E$7 は、四半期ごとの売上高の数値について、異なるシートを参照しています。
B$5:$B$9 = 基準のルックアップ範囲
B5 は基準( マーク)
C$5:$C$9 = 条件が一致する場合、値の範囲。
を押した後 ENTER, のセルには、3四半期分のMarkの売上高の合計が表示されます。 C5.
売上をドラッグする C5 をデータセットの最後に追加すると、全営業マンの年間売上高が得られます。
類似の読み物
- 複数条件のSUMIF (最も簡単な5つの例)
- Excel SUMIF関数で複数条件を指定する(3つの方法+ボーナス)
- 複数のシートでExcelのSUMIF & VLOOKUPを結合する方法
方法3:VBAを使って複数のシートにまたがって合計する
シート数が多い場合、上記2つの方法は非常に時間がかかり複雑になります。 計算を高速化するためには、以下のような方法があります。 ビジュアルベーシックアプリケーション(VBA) を作成し、カスタムフォーミュラを作成します。
初回プレス ALT+F11 を開いてください。 ブイビーエー ウィンドウを開きます。 シート名の上で右クリックし Insert> Module.
コードウィンドウが表示されます。
次のコードをコピーして、このウィンドウに貼り付けてください。
関数 SUMIFOS(lookup_value As Range, ParamArray cellranges() As Variant) Dim i As Integer, rng1 As Variant, temp As Single, a As Boolean Dim rng2 As Variant, value As Variant, j As Single If (UBound(cellranges) + 1) Mod 2 0 Then Exit Function End If For i = LBound(cellranges) To UBound(cellranges) Step 2 if cellranges(i).Rows.Count cellranges(i + 1).Rows.Count Then End If ifCellranges(i).Columns.Count 1 Then Exit Function End If rng1 = cellranges(i).value rng2 = cellranges(i + 1).value For j = LBound(rng1) To UBound(rng1) For Each value In lookup_value If UCase(rng1(j, 1)) = UCase(value) Then a = True Next value If a = True Then temp = temp + rng2(j, 1) a = False Next j Next i SUMIFOS = temp End機能
その後、VBAウィンドウを閉じ、セルに次の数式を入力します。 C5,
=SUMIFOS(B5,'Quarter 1'!B5:B9,'Quarter 1'!C5:C9,'Quarter 2'!B5:B9,'Quarter 2'!C5:C9,'Quarter 3'!B5:B9,'Quarter 3'!C5:C9)
これです。 スミフォス はカスタム関数です。 B5 はルックアップ値である。 クォーター1′!C5:C9 という名前のシートの値の範囲です。 第1四半期 と クォーター1′!B5:B9 という名前のシートにある基準の範囲です。 第1四半期 この数式には、何枚でもシートから値を挿入することができます。
を押した後 ENTER, のセルには、3四半期分のMarkの売上高の合計が表示されます。 C5.
売上をドラッグする C5 をデータセットの最後に追加すると、全営業マンの年間売上高が得られます。
続きを読む: SUMIF複数レンジ【6つの便利な方法
結論
1の方法は、枚数が多い場合は時間がかかるため、あまり便利ではありません。 枚数が少ない場合は1の方法、枚数が多い場合は2、3の方法が効率的です。
複数のシートにSUMIFを適用する方法について、何か問題があれば、コメントを残してください。