Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

この記事では、Excelでセルをフォントの色ごとに合計する方法を解説します。1つの表の中に複数のフォントカラーが混在している場合、色別に集計したい場面は少なくありません。以下の画像は、この記事で達成できることを示したものです。手順を追って学んでいきましょう。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

練習用のワークブックは、下のダウンロードボタンから入手できます。

Excelでフォントの色ごとに合計する2つの効果的な方法

方法1:SUBTOTAL関数とフィルター機能を使う

1つの列に異なるフォントカラーが混在するデータセットがある場合、この方法が最も手軽です。以下の手順に従って試してみてください。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

📌 手順

  • まず、セルC13に次の数式を入力します。数式内の「9」はSUM関数を意味しており、SUBTOTAL関数が指定した範囲の合計値を返すように設定しています。

=SUBTOTAL(9,C5:C11)

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

  • 次に、データセット内の任意のセルを選択し、Ctrl+Shift+Lキーを押してフィルターを適用します。すると、下の画像のように見出しセルの右下にフィルターボタンが表示されます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

  • フィルターボタンをクリックし、「色フィルター」から特定の色を選択してデータを絞り込みます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

  • すると、次のような結果が得られます。SUBTOTAL関数は表示されているセルのみを集計するため、絞り込んだ色の合計だけが算出されます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

あわせて読みたい: Excelでフィルター後のセルを合計する方法(5選)

関連記事

  • Excelで選択したセルだけを合計する方法(4選)
  • Excelで列の末尾まで合計する方法(8選)
  • Excelで列を合計する方法(7選)
  • 【解決済み】ExcelのSUM関数が動かず0を返すときの対処法(3選)
  • Excelで複数行を合計する方法(4選)

方法2:ユーザー定義関数(UDF)を使う

前述の方法は、次のように色が行・列方向に散らばっているデータセットでは使えません。そんなときは、ユーザー定義関数(UDF)を作成して対応しましょう。以下の手順で実装できます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

📌 手順

  • まず、ブックをマクロ有効ブック(.xlsm)として保存します。次に、Alt+F11キーを押してVBAエディターを開き、メニューから「挿入」→「標準モジュール」を選択します。これで新しい空のモジュールが作成されます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

  • 続いて、以下のコードをコピーします。
Function SUMBYFONTCOLOR(ref_color As Range, sum_range As Range)
Dim cell_color, sum_color As Long
Dim Cell As Range
Application.Volatile
sum_color = 0
cell_color = ref_color.Font.ColorIndex
For Each Cell In sum_range
If cell_color = Cell.Font.ColorIndex Then
sum_cell = WorksheetFunction.Sum(Cell, sum_cell)
End If
Next Cell
SUMBYFONTCOLOR = sum_cell
End Function
  • コピーしたコードを、モジュールウィンドウに貼り付けます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

  • ワークシートに戻り、セルI5:I9に集計したい色の名前を入力し、それぞれの文字に対応するフォントの色を設定します。
  • 次に、セルJ5に以下の数式を入力し、フィルハンドルを使って下のセルへ数式をコピーします。

=SUMBYFONTCOLOR(I5,$B$4:$G$9)

最終的に、次のような結果が得られます。👇

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

なお、範囲内のセルのフォントの色を変更しても、結果は自動的には更新されません。その場合は、任意のセルをダブルクリックしてから他のセルをクリックすると再計算が実行されます。あるいは、Ctrl+Alt+F9キーを押しても同じ効果が得られます。

  • 毎回手動で再計算するのが面倒な場合は、以下のコードをコピーしてください。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A:Z")) Is Nothing Then
ActiveSheet.Calculate
End If
End Sub
  • VBAエディターに戻り、プロジェクトツリー内の「UDF」というワークシート名をダブルクリックします。空白のコードウィンドウが開くので、そこにコピーしたコードを貼り付けます。

Excelでフォントの色ごとに合計する方法【2つの効果的なテクニック】

これで、フォントの色を変更してセルをクリックするだけで、結果が自動的に更新されるようになります。

VBAコードの解説

Function SUMBYFONTCOLOR(ref_color As Range, sum_range As Range)
このパブリック関数は2つの引数を受け取ります。ref_colorには基準となるセル(参照セル)のフォントカラーを指定し、sum_rangeで指定された範囲内のセルを、フォントの色をもとに合計します。

Dim cell_color, sum_color As Long/Dim Cell As Range
必要な変数を宣言しています。

Application.Volatile
ユーザーが何らかの変更を行うたびに、Excelに再計算を強制するコードです。

sum_color = 0
変数の初期値を定義しています。

cell_color = ref_color.Font.ColorIndex
参照セル(ref_color)のフォントカラーを変数cell_colorに格納します。

For Each Cell In sum_range
このForループにより、sum_range内の各セルに対して以降のコードが順番に実行されます。

If cell_color = Cell.Font.ColorIndex Then
sum_range内のセルのフォントカラーが、参照セルのフォントカラーと一致した場合のみ、次のコード行が実行されます。

sum_cell = WorksheetFunction.Sum(Cell, sum_cell)
SUM関数を使って、フォントカラーが一致するセルの値を順次加算していきます。

SUMBYFONTCOLOR = sum_cell
合計値を格納し、関数の戻り値として返せるようにしています。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
このプライベートサブプロシージャは、特定のワークシート上で選択範囲が変わったときにのみ動作します。

If Not Intersect(Target, Range("A:Z")) Is Nothing Then
ユーザーの操作が定義された範囲(A:Z)内で行われた場合にのみ、次のコード行を実行するための条件文です。

ActiveSheet.Calculate
アクティブなワークシート内のすべての数式の再計算を強制し、変更内容を反映させます。

あわせて読みたい: Excel VBAで行内のセル範囲を合計する方法(6選)

注意点

  • フォントの色を変更した場合は、セルをダブルクリックしてから他の場所をクリックしないと結果が更新されません。代わりにCtrl+Shift+F9キーを押して再計算することも可能です。
  • SelectionChangeイベントで自動更新する場合は、フォントの色を変更した後に、定義された範囲(A:Z)内のセルをクリックする必要があります。

まとめ

今回は、Excelでフォントの色ごとにセルを合計する2つの効果的な方法を紹介しました。SUBTOTAL関数+フィルターならVBA不要で手軽に集計でき、ユーザー定義関数(UDF)を使えば複雑なレイアウトの表でも柔軟に対応できます。この記事がお役に立てたなら幸いです。ご質問やご提案があれば、下のコメント欄でお気軽にお知らせください。当ブログExcelDemyでは、Excelに関する役立つ情報を多数発信しています。今後も学びを続けていきましょう。

関連記事

  • Excelで塗りつぶし色付きのセルを合計する方法(4選)
  • Excelでのセルの合計:連続・ランダム・条件付きなど
  • VBAを使わずにExcelで色付きセルを合計する方法(7選)
  • Excelで数値を足し算する2つの簡単な方法
  • Excelで複数の行と列を合計する方法
  1. Excel で月間カレンダーを作成する方法 (3 つの効果的な方法)

    Excel は、いくつかの計算とテンプレートを自動化する優れたツールです。 Excel を使用して、さまざまな種類の月間カレンダーを作成できます。これを行う方法を探しているなら、あなたは完璧な場所にたどり着きました.この記事では、3 を紹介します。 月間カレンダーの効果的な作成方法 ここから練習用ワークブックを無料でダウンロードできます! Excel で毎月のカレンダーを効果的に作成する 3 つの方法 1. Excel テンプレートから月間カレンダーを作成 Excel自体には、カレンダー用の事前に作成されたテンプレートがいくつかあります.以下の方法に従って、これらのテンプレートから月間カ

  2. Excelでセルの色を基準にフィルターする2つの簡単な方法

    Excelでは、目的に応じてさまざまな色でセルを塗りつぶすことがよくあります。ワークシート内で色を使ってデータの種類を区別しており、特定の色が付いたセルだけを抽出・選択したい場合、この記事が役立ちます。ここでは、Excelでセルの色を基準にフィルター処理を行う方法をわかりやすく解説します。 理解を深めながら実際に練習できるよう、サンプルのExcelブックをダウンロードしてご利用ください。 Excelでセルの色別にフィルターする2つの便利な方法 以下の2つの方法では、「フィルター」コマンドと「検索」コマンドを使用して、セルの色を基準にデータを絞り込む手順を学べます。記事内では、異なる色を付け