
No.2ベストアンサー
- 回答日時:
ワークシート関数ではセルの「色番号」は取得できません。
マクロ(ユーザ定義関数)が必要です。
ユーザ定義関数で「背景色が赤で、文字列が○のセル」を数えることも可能ですが、質問は「例えば」で書かれていそうなので、あまりきっちりとマクロを書くと修正が必要になりそうです。
そこで汎用的に使えそうな「手抜きバージョン」で回答します。
まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。
Function Cidx(ByVal trg As Range) As Integer
With trg.Cells(1, 1).Interior
If .ColorIndex = xlNone Then
Cidx = 0
Else
Cidx = .ColorIndex
End If
End With
End Function
次にVBE画面を閉じてワークシート画面に戻り、
=Cidx(A1)
の式を1行目の空いている列(例えばB列)に入力し、30行分下にコピーします。するとA列のセルの「色番号」が表示されます(背景色なしは0)
ただしセルに値を入力した後で背景色を変更した場合は、ユーザ定義関数の結果は自動的に変わりません。Alt+Ctrl+F9で強制再計算させる必要がありますのでご注意ください
後は別の関数で赤色(色番号=3)で「○」印があるセルをカウントします
=SUMPRODUCT((A1:A30="○")*(B1:B30=3)*1)
ご回答ありがとうございます。
普通の関数では難しいのですね。
マクロは、直接書いたことはありませんが、
ご説明いただいたとおり作業すれば私でもできそうです。
今からチャレンジしてみようと思います。
(ご回答いただいたことに気づかず、色のセルをCOUNTIFの足し算で
ながーい関数を作っておりました。)
ご丁寧かつ分かりやすいご説明、ありがとうございました。
助かりました。
No.1
- 回答日時:
一般機能の関数で色つきセルを数えることはできません。
マクロでも、セルが単純にパレットで塗りつぶされている場合と条件
付き書式で塗りつぶされている場合とで、処理が異なります。
以下は「単純にパレットで塗りつぶされている」場合です。
まず、標準モジュールに以下を記述します。
Function Cnt(Area As Range)
Dim rng
Application.Volatile
For Each rng In Area
If rng.Interior.ColorIndex <> xlNone And rng.Value = "○" Then
Cnt = Cnt + 1
End If
Next
End Function
で、答えを表示したいセルに =Cnt(A1:A30) と入力します。
ご回答ありがとうございました。
関数では難しいのですね。
マクロはあまり使ったことがありませんが、
挑戦したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL 複数の条件に合致する個数を求めるには? 3 2022/04/19 16:39
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/09 14:54
- Excel(エクセル) エクセルのA1~A5の任意のセルを選んだら1、A6~A10のセルなら2と返す設定にしたいと思ってます 6 2023/03/20 18:46
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで文字色がついているセル数をカウント
Windows Vista・XP
-
エクセル関数使用で赤色数字をカウントしたい
Windows Vista・XP
-
Excelで特定の文字と文字色をカウントする方法
Excel(エクセル)
-
-
4
COUNTIF セルに色を塗るとカウントされないようにするには?
Excel(エクセル)
-
5
エクセル 特定の文字を入れると他のセルの色が変わる
Excel(エクセル)
-
6
エクセルで特定の色の数字だけ計算させることはできますか?
Excel(エクセル)
-
7
【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法
Excel(エクセル)
-
8
(EXCEL)CELLの色をカウントする。
Windows Me・NT・2000
-
9
EXCELでCOUNTIF(,,)のようにセルの書式を条件でセルの数をカウントする方法
Excel(エクセル)
-
10
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
11
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
12
特定のセル(色付き、色なし、色付き文字あり、色なし文字あり)だけを数える関数はありますか?
Word(ワード)
-
13
エクセルカウントについて
Excel(エクセル)
-
14
特定の色の塗りつぶしのセル個数をカウント
Excel(エクセル)
-
15
条件付き書式の色付きセルのカウント方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
枠に収まらない文字を非表示に...
-
(Excel)数字記入セルの数値の後...
-
エクセルで指定したセルのどれ...
-
excelの特定のセルの隣のセル指...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excel 例A(1+9) のように番地の...
-
Excelで数式内の文字色を一部だ...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
数式を残したまま、別のセルに...
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
エクセルVBA、ファイル名をセル...
-
【エクセル】IF関数 Aまたは...
-
EXCELのセルの中の半角カンマの...
-
エクセルの書式設定の表示形式...
-
エクセルで、複数の参照範囲を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
連続しないセルから最小値を引...
おすすめ情報