Excelで複数シートにまたがるSUMIFを行う(3つの方法)

  • これを共有
Hugh West

複数のシートにまたがるデータがある場合、いくつかのテクニックを知っておくことで サミフ 関数を使用する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を適用する方法について、何か問題があれば、コメントを残してください。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。