Excel:根据条目

时间:2017-02-07 14:02:30

标签: excel cell background-color cells

我有一个大的Excel文件,用于从多个来源收集有关某些事件的数据(让我们称之为Event1,Event2,Event3 ......)。由于多个源可以提供有关同一事件的信息,因此对于引用同一事件的每个源,我插入一个新行和一个新ID(下图提供了一个示例:我有多个描述Event1的源,所以我使用不同的ID对它们进行排序,即1.1,1.2,......)

为了便于这些数据的可视化,我想为相同事件的所有条目的背景着色,颜色相同,如下图所示。例如,第一个单元格具有整数1的所有行应为灰色,具有整数2的所有行应为粉红色,依此类推。 但是,我没有找到任何自动执行此操作的函数或命令。有没有一种方法可以在Excel中自动执行此操作?

Example

3 个答案:

答案 0 :(得分:1)

您应该可以使用此方法直到第3步:http://www.dummies.com/software/microsoft-office/excel/highlight-excel-cells-based-on-the-value-of-another-cell/

在第3步中,您需要根据自己的需要选择一个公式。我还没有测试过这些,但要么应该工作: =SEARCH("1", A1)>1(其中A1Entry ID列中您的单元格的单元格引用) - 您在这里说的是找到/匹配任何以值1开头的单元格 =IF(LEFT(A1,1)="1")(其中A1Entry ID列中您的单元格的单元格引用) - 您在此处说的是找到单元格A1中最左侧的1个字符,如果那是1然后匹配。

参考文献:
https://www.ablebits.com/office-addins-blog/2014/06/10/excel-conditional-formatting-formulas/
If Cell Starts with Text String... Formula

答案 1 :(得分:0)

这取决于事件的数量以及您是否想自己定义每个事件的颜色。如果有少量事件,您可以考虑像Jorg建议的那样单独为每个事件添加条件格式。这将使您能够自己设置颜色方案。如果有很多事件,您可以考虑使用以下公式=VALUE(LEFT(A1;FIND(".";A1)-1))添加辅助列。根据此列,您可以使用色标为行添加条件格式。此方法的缺点是Excel会为您确定颜色。或者,您可以在VBA中按所需顺序定义颜色列表,循环遍历每个规范化事件ID,并分别设置背景颜色。

答案 2 :(得分:0)

您还可以使用宏来检查A列中的值,并在条目ID更改为下一个数字时指定新颜色:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row > 1 Then
    If IsNumeric(Target) Then
        If Target.Column = 1 Then
            If Application.WorksheetFunction.RoundDown(Target.Value, 0) = WorksheetFunction.RoundDown(Cells(Target.Row - 1, 1).Value, 0) + 1 Then

                    r = WorksheetFunction.RandBetween(0, 255)
                    g = WorksheetFunction.RandBetween(0, 255)
                    b = WorksheetFunction.RandBetween(0, 255)
                    Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).Interior.Color = RGB(r, g, b)
            Else
                    Range(Cells(Target.Row - 1, 1), Cells(Target.Row - 1, 3)).Copy
                    Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).PasteSpecial (xlPasteFormats)
                    Application.CutCopyMode = False
            End If
        End If
    End If
End If

End Sub