Excelで条件付き書式で色付けされたセルの文字列をまとめて別シートの1つのセルに表示したい場合、通常の関数では正しく取得できないことがあります。特に、セルの書式設定で表示している文字(例えば「円」「人」など)はデータとしては存在しないため、そのままではTEXT関数や&演算子では反映されません。
1. なぜ関数が正しくないと表示されるのか
原因の多くは以下です。
- セルの書式で追加された文字(「円」「人」)は実際の値に含まれていない
- 条件付き書式による色付けは値には影響しないため、関数で参照できない
- 関数の構文ミスや引数の指定が正しくない場合
つまり、色や書式だけで文字列を取得しようとしても、標準関数では取得できず「正しくありません」となります。
2. 解決策の方向性
1つのセルにまとめたい場合は、以下の方法があります。
- VBA(マクロ)を使い、色付きセルを判定して値と書式文字を組み合わせる
- 元のセルの数値に対応する文字列を別列に作り、TEXT関数やCONCATENATE関数で結合する
VBAであれば条件付き書式の色を判定して、表示文字をまとめることが可能です。
3. 実例(VBA使用)
例えば、ワークシート上のセルA1:A10の背景色が黄色のセルだけを抽出し、値に「円」「人」を付加してB1セルに結合する場合。
Function ConcatenateByColor(rng As Range, color As Long) As String
Dim cell As Range
Dim result As String
result = ""
For Each cell In rng
If cell.Interior.Color = color Then
result = result & cell.Value & "円×1人, "
End If
Next cell
If Len(result) > 0 Then result = Left(result, Len(result) - 2)
ConcatenateByColor = result
End Function
このようにVBAを用いると、条件付き書式や書式文字も組み合わせて1つのセルに表示可能です。
まとめ
Excelで条件付き書式で色付けされたセルの文字列をまとめる場合、書式や色は標準関数では取得できません。関数エラーになる原因はここにあります。解決にはVBAで色判定と文字結合を行うか、元データに文字列列を作る方法が推奨されます。


コメント