KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel のリストで最大または最小の3 件の値を合計するには、どうすればよいですか?

著者Xiaoyang変更日

Excel では、数値範囲全体を合計するのは SUM 関数を使えば簡単です。しかし、ビジネスやデータ分析の現場では、データセット内の最大値や最小値の上位(または下位)数件だけを合計することがよくあります。たとえば、売上の上位3 件を集計したり、経費の下位5 件を評価したりするケースです。こうした作業を手動で行うと、特にデータ量が増えるにつれて面倒で、ミスも起こりやすくなります。幸い、Excel にはこの課題を効果的に解決するためのさまざまな方法があります。

以下では、数式による解決法、実用的なツールを活用した代替手段、高度な自動化に役立つ VBA マクロ、そしてグループ化されたデータに最適なピボットテーブルの活用法など、包括的なステップ・バイ・ステップの手法をご紹介します。それぞれのアプローチは異なる状況に適しており、あなたのニーズにぴったりの方法がきっと見つかります。

数式で範囲内の最大/最小の3 件の値を合計する

VBA コードで範囲内の最大または最小の n 件の値を合計する

PivotTable を使ってカテゴリごとの上位 n 件の値を合計する

絶対値の合計を計算しますをKutools for Excel でリスト内に良いアイデア3


数式で範囲内の最大/最小の3 件の値を合計する

Excel にはデータセットがあり、上位3 件または下位3 件の値を素早く合計したい場面があります。これはパフォーマンスレビュー、ランキング分析、あるいは外れ値に注目したいときに特に役立ちます。

サンプルデータ

この解決には2 つのよく使うもの数式手法があります:

1.LARGE 関数および SMALL 関数を使った数式:

範囲内で n 番目に大きい値を特定して合計するには、LARGE 関数を使用します。この方法は直感的で、合計する上位または下位の値の個数を変更する際にも簡単に調整できます。

空白セル(例:E1)に次の数式を入力します:

=LARGE(A1:D10,1)+LARGE(A1:D10,2)+LARGE(A1:D10,3)

数式を入力した後、Enterキーを押すと、最大3 件の値の合計が表示されます。

LARGE 関数を適用して、最大の n 個の値を合計する

完了後、結果が選択したセルに表示されます。

結果を取得

注意事項:

  • 上位5 件の値を合計するには、次のように数式を拡張します:
    =LARGE(A1:D10,1)+LARGE(A1:D10,2)+LARGE(A1:D10,3)+LARGE(A1:D10,4)+LARGE(A1:D10,5)
  • 最小値を合計する場合は、同様の方法でSMALL 関数を使用します:
    =SMALL(A1:D10,1)+SMALL(A1:D10,2)+SMALL(A1:D10,3)

この方法は n が小さい場合には有効ですが、n が大きくなると手動での拡張が煩雑になります。

2.大きな n または小さな n 向けの配列数式:

より大規模な合計には、拡張性と可読性に優れた配列数式を使用します:

セルに次のように入力します:

=SUM(LARGE(A1:D10,{1,2,3}))
次に、Ctrl + Shift + Enter(旧バージョンのExcel をご利用の場合)を押してください。これにより、上位3 件の値の合計が計算されます。必要に応じて、中かっこ内の数値を調整してください。

最大の20 件の値を合計する場合は、次を試してください:

=SUM(LARGE(A1:D10,ROW(INDIRECT("1:20"))))
再度、確定にはCtrl + Shift + Enter.Excel 365 以降のバージョンでは、配列数式のサポートが強化されているため、通常の Enter キーを押すだけで十分です。「20」は必要な n に置き換えてください。

同様に、最小の n 件の値を合計するには次を使用します:

=SUM(SMALL(A1:D10,{1,2,3}))
=SUM(SMALL(A1:D10,ROW(INDIRECT("1:3"))))

VBA コードで範囲内の最大または最小の n 件の値を合計する

上位または下位 n 件の値の合計を頻繁に取る必要がある場合や、異なるデータセットでこの処理を自動化したい場合は、VBA マクロが非常に効率的な解決策です。特に n の値が頻繁に変わるときや対象範囲が広い場合には、その威力を最大限に発揮します。

このマクロを使えば、選択した範囲から指定した最大または最小の n 件の値を合計できます。繰り返し分析が簡単になり、更新やカスタマイズもスムーズに行えます。

  1. 開発者ツールVisual Basicをクリックして、VBA エディターを開きます。(「開発者ツール」が表示されない場合は、「Excel のオプション」>「リボンのユーザー設定」から有効にしてください。)
  2. VBA エディターで、挿入標準モジュールを選択してください。新しいモジュールに、次のコードを貼り付けてください:
Sub SumTopOrBottomNValues()
    Dim WorkRng As Range
    Dim n As Integer
    Dim i As Integer
    Dim arr() As Double
    Dim result As Double
    Dim choice As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Select a range:", xTitleId, WorkRng.Address, Type:=8)
    
    choice = Application.InputBox("Type 'L' for largest, 'S' for smallest:", xTitleId, "L", Type:=2)
    
    n = Application.InputBox("Sum how many values? n =", xTitleId, 3, Type:=1)
    
    If WorkRng Is Nothing Then Exit Sub
    
    ReDim arr(1 To WorkRng.Count)
    i = 1
    
    For Each cell In WorkRng
        If IsNumeric(cell.Value) Then
            arr(i) = cell.Value
        Else
            arr(i) = 0
        End If
        i = i + 1
    Next
    
    If choice = "L" Or choice = "l" Then
        Call BubbleSortDescending(arr)
    ElseIf choice = "S" Or choice = "s" Then
        Call BubbleSortAscending(arr)
    Else
        MsgBox "Invalid choice. Enter 'L' or 'S'."
        Exit Sub
    End If
    
    result = 0
    For i = 1 To WorksheetFunction.Min(n, UBound(arr))
        result = result + arr(i)
    Next
    
    MsgBox "Sum of " & n & " " & IIf(choice = "L" Or choice = "l", "largest", "smallest") & " values is: " & result
End Sub

Sub BubbleSortDescending(arr() As Double)
    Dim i As Integer, j As Integer, temp As Double
    
    For i = LBound(arr) To UBound(arr) - 1
        For j = i + 1 To UBound(arr)
            If arr(i) < arr(j) Then
                temp = arr(i)
                arr(i) = arr(j)
                arr(j) = temp
            End If
        Next j
    Next i
End Sub

Sub BubbleSortAscending(arr() As Double)
    Dim i As Integer, j As Integer, temp As Double
    
    For i = LBound(arr) To UBound(arr) - 1
        For j = i + 1 To UBound(arr)
            If arr(i) > arr(j) Then
                temp = arr(i)
                arr(i) = arr(j)
                arr(j) = temp
            End If
        Next j
    Next i
End Sub

3.コードを貼り付けたら、実行ボタン(実行)ボタンをクリックしてマクロを実行します。次の操作が求められます:

  • 対象のデータ範囲を選択してください;
  • 最大値を合計する場合は「L」を、最小値の場合は「S」を入力してください。
  • 必要な個数 n をご入力ください。

確認後、マクロは指定した条件に基づいて合計を計算し、表示します。範囲内に数値以外の値が含まれている場合は、計算エラーを回避するため、それらはゼロとして扱われます。正確な結果を得るには、常に選択範囲が正しいことと、n に有効な数値が入力されていることをご確認ください。


PivotTable を使ってカテゴリごとの上位 n 件の値を合計する

データがカテゴリ別(例:販売地域、製品ラインなど)にグループ化されており、各グループの上位 n 件の値を合計したい場合、PivotTable の組み込み「値のフィルター」機能が強力な解決策となります。

この方法は、明確なカテゴリ列と数値列を含む表形式のデータに最適です。たとえば、各地域ごとの上位3 件の売上金額を合計したい場合などにぴったりです。

  1. まず、データテーブルを選択し、挿入タブからピボットテーブルを挿入します。
  2. PivotTable フィールド一覧で、カテゴリフィールドを「行」エリアに、数値フィールドを「値」エリアにドラッグします(集計方法が「合計」になっていることを確認してください)。
  3. 次に、「行ラベル」エリア内の値フィールドの横にあるドロップダウン矢印をクリックし、値のフィルター上位10 を選択します。
  4. ダイアログボックスで、「上位」を3(または任意の n)に設定し、フィルター対象フィールドを指定します。これにより、カテゴリごとに上位 n 件のみが表示されるように PivotTable が制限されます。
  5. その後、テーブルには各グループのフィルター済み値の合計が表示されます。

注意PivotTable の値フィルターは、データが適切に整形され、カテゴリが一貫している場合に最も効果を発揮します。下位 n 件の値を合計したい場合は、「上位 n」ではなく「下位 n」でフィルターを適用してください。この方法なら、サマリーレポートや迅速なビジュアル分析にも柔軟に対応できます。ただし、PivotTable はデータ変更時に自動的に更新されますが、場合によっては手動での更新(テーブルを右クリック>「更新」)が必要になる点にご注意ください。


絶対値の合計を計算しますをKutools for Excel でリスト内に

リストに正の数と負の数が混在している場合、算術的な合計ではなく、すべての絶対値を合計したいことがあります。これは、大きさ(絶対値)が重要な財務や科学計算で特に役立ちます。Kutools for Excel には、この作業を効率的にこなす便利な「絶対値の合計を計算します」機能が搭載されています。

サンプルデータ

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

Kutools for Excel をインストール後、次のように操作してください:

1.結果を表示する空白セルを選択し、次にKutools関数ヘルパー関数ヘルパーをクリックします。
Kutools の数式ヘルパー機能をクリック

2.関数ヘルパーウィンドウで、フィルターチェックボックスをオンにして、検索バーに「sum」と入力します。表示された数式から「絶対値の合計を計算します」を選択し、引数入力エリアでダイアログボックスでオプションを設定をクリックして範囲を指定したら、OKをクリックして確定します。
ダイアログボックスでオプションを設定

すぐに絶対値の合計が計算・表示されます。
Kutools で絶対値を合計

Kutools はこのプロセスを合理化し、複雑なExcel 関数に不慣れなユーザーでも、数式エラーのリスクを減らしながら時間を節約できます。ただし、この機能は本テーマである上位または下位の値の合計とは若干異なり、絶対値の合計に特化していますが、会計処理や照合、測定関連のシナリオでは非常に価値があります。


関連記事:

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得