
No.3ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。通常、関数は値しか扱えません。つまり、フォント色やセル背景色などの書式
を関数で扱うことはできません。では、どうするか? 方法は2つあります。
1. 4.0マクロ関数を使う
このカテゴリー内で GET.CELL で検索すると過去に類似の質問があります。
参考にして下さい。
2. マクロ(VBA)を使う
フォント色で集計を行うツールを作ってみました。お試し下さい。
【手順】
1)[Alt]+[F11]で Visual Basic Editor (以下 VBE )を起動
2)[挿入]-[標準モジュール]
3)2)で開いたスペースに以下のコードをコピー&ペースト
4)VBE を閉じる
【使い方】
[ツール]-[マクロ]-[マクロ]で実行
'以下コードです。
Sub フォント色別に数値集計()
Dim rngTARGET As Range
Dim rngTEMP As Range
Dim DIC As Dictionary
Dim rngCELL As Range
Dim lngC_IDX As Long
Dim dblNUM As Double
Dim vntKEY As Variant
Dim i As Long
'ユーザーに集計範囲を指定してもらう
If TypeName(Selection) = "Range" Then
Set rngTEMP = Selection
Else
Set rngTEMP = ActiveCell
End If
On Error Resume Next
Set rngTARGET = Application.InputBox( _
Prompt:="フォント色別に数値を集計します。" _
& vbCrLf & "集計範囲をマウスで選択して下さい。", _
Title:="集計範囲の選択", _
Default:=rngTEMP.Address, _
Type:=8)
Set rngTEMP = Nothing
If rngTARGET Is Nothing Then Exit Sub
On Error GoTo 0
'フォント色別に集計開始
Set DIC = CreateObject("Scripting.Dictionary")
For Each rngCELL In rngTARGET
With rngCELL
If .Value <> "" And IsNumeric(.Value) Then
lngC_IDX = .Font.ColorIndex
If Not DIC.Exists(lngC_IDX) Then
DIC.Add Key:=lngC_IDX, Item:=.Value
Else
dblNUM = .Value + DIC.Item(lngC_IDX)
DIC.Item(lngC_IDX) = dblNUM
End If
End If
End With
Next rngCELL
'結果出力
On Error Resume Next
Set rngTARGET = Application.InputBox( _
Prompt:="集計が終了しました。結果の貼り付け先を指定して下さい", _
Title:="結果出力", _
Type:=8)
If Not rngTARGET Is Nothing Then
Set rngTARGET = rngTARGET.Cells(1, 1)
i = 0
Application.ScreenUpdating = False
For Each vntKEY In DIC.Keys
With rngTARGET
With .Offset(i, 0)
.Font.ColorIndex = vntKEY
.Value = "FONT COLOR:= " & vntKEY
End With
.Offset(i, 1).Value = CDbl(DIC.Item(vntKEY))
End With
i = i + 1
Next vntKEY
End If
Terminate:
On Error GoTo 0
Application.ScreenUpdating = True
Set rngTARGET = Nothing
Set DIC = Nothing
End Sub
No.4
- 回答日時:
#3 です。
すみません。#3 のコードで、Dim DIC As Dictionary
を
Dim DIC As Object
に差し替えて下さい。次のような感じになります。
Sub フォント色別に数値集計()
Dim rngTARGET As Range
Dim rngTEMP As Range
Dim DIC As Object
以下 略
開発時のなごりです、、気にしないで下さい。
すごい!!できました。ありがとうございます。
感激です!!
これから計算がとっても楽になります。
本当に本当にありがとうございました。
No.2
- 回答日時:
えーっとひょっとして、#1の人が言うのと違って、データが、A社のものなのかB社のものなのか色でしか判別できないってことですか?
だったら多分マクロを使わないと無理です。
大体、そういう形式だとしたら、入力も非常に面倒だと思いますので、この機会に、#1さんの言っているような形にすることをお勧めします。
私の記憶の範囲内では、セルに設定されているフォントの色のデータを取得できる関数はなかったと思います。
マクロを組むなら比較的簡単なマクロで実現できますがやってみますか?
あと、ひょっとしたら、4.0マクロ関数ってやつに何かあるかもしれません。これについては、私の知識を超えていますので、どなたかエキスパートの方よろしくお願いします。
ありがとうございます。おっしゃるとおりです。色だけの区別です。面倒なのですが、いろいろと使い続ける理由がありまして。。。
フォントの色のデータを取得できる関数はないとのことですので、関数で計算させるのは無理なのでしょうね。。。
マクロを組むというのは考えておりませんでした。
私には難しいかもしれませんが、勉強してみます。ありがとうございます。
No.1
- 回答日時:
A社とB社とで、文字の色を変えているのでしたら、
素直にSum関数+If関数+配列で、A社、B社で条件指定して合計をとれば良いのではないでしょうか?
例)
会社名 売上
A10
B15
B20
A15
A10
B15
A社合計:{=SUM(IF(A2:A7="A",B2:B7))}
B社合計:{=SUM(IF(A2:A7="B",B2:B7))}
あと、蛇足ですが文字の色分けも条件付き書式を利用されても良いかと思います。
ありがとうございます。
A社、B社とわけて入力しているわけではなく、A社の売上げは赤色文字、B社の売上げは青色文字としているので、うまくいかないんです。
おっしゃっているような表の作り方であれば簡単にできるのですよね。。。作り変えたいのはやまやまなのですが、社から渡されている管理フォームなので勝手に変えられないので困ってます。
でも、勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
文字(数字)色別に計算するには?
Excel(エクセル)
-
エクセル関数使用で赤色数字をカウントしたい
Windows Vista・XP
-
エクセル表で数字の色別合計は可能ですか
Excel(エクセル)
-
-
4
Excelで任意の塗りつぶし色の数字を集計する方法はありますか?関数を使ってできる方法があれば教えて
Excel(エクセル)
-
5
赤字と青字だけ合計する
Excel(エクセル)
-
6
COUNTIF セルに色を塗るとカウントされないようにするには?
Excel(エクセル)
-
7
エクセルで文字色がついているセル数をカウント
Windows Vista・XP
-
8
Excel 書式を関数で判断。
Excel(エクセル)
-
9
セルの個数から色付きセルを引き算したいです。
Excel(エクセル)
-
10
自分の部署・担当を言うとき、どういう言い方が正しいでしょうか?? 会社のときは、弊社といいますが、部
その他(ビジネス・キャリア)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルタをしても最下行を常に...
-
エクセルの小計を自動的に色づ...
-
エクセル、リソース不足エラー...
-
【エクセル】オートフィルタで...
-
EXCELで予約品の時間帯別管理が...
-
ピボットテーブルでは時間の表...
-
アンケートの集計
-
VBAで重複する項目を1つにまと...
-
ピボットテーブルグループ化に...
-
ピボットテーブルのページエリ...
-
ピボットの集計方法「合計」初...
-
EXCELピボットテーブル関数につ...
-
エクセル 関数を使った横方向の...
-
エクセルで円グラフに引き出し...
-
エクセルで文字が白くなる
-
エクセル条件付書式で指定の時...
-
EXCELの散布図で日付が1900年に...
-
Excelで小数点以下1桁の年数を...
-
Excelマクロのエラーを解決した...
-
エクセルで長い行を5行ごとに1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】オートフィルタで...
-
ピボットテーブルでは時間の表...
-
フィルタをしても最下行を常に...
-
VBAで重複する項目を1つにまと...
-
エクセル、リソース不足エラー...
-
ピボットを更新すると数式が入...
-
ピボットテーブルのページエリ...
-
エクセル 関数を使った横方向の...
-
エクセルで特定の色の数字だけ...
-
アンケートの集計
-
Excelの集計結果だけをコピー貼...
-
excelで集計の合計を降順に並べ...
-
ピボットテーブルで同じデータ...
-
ピボットテーブルの自動計算を...
-
エクセル 日付(年月日)の合...
-
エクセルについてご教示願いたい。
-
いい機能だけど、毎回めんどく...
-
常にタイトル行と合計行を表示...
-
エクセル 最小値を求める関数...
-
ピボットの集計方法「合計」初...
おすすめ情報