Excelで条件付き書式の文字列をまとめて別シートに表示する方法と関数エラーの原因

Excel

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で色判定と文字結合を行うか、元データに文字列列を作る方法が推奨されます。

コメント

タイトルとURLをコピーしました