基于第一个单词的条件格式

时间:2016-07-01 14:31:28

标签: excel conditional-formatting

Alba Botanica Hawaiian Hand + Body - 24 oz. - Replenishing Cocoa Butter
Alba Botanica Very Emollient Body Lotion - 32 oz. - Unscented Original
Aveeno Active Naturals Daily Moisturizer - 2 x 4 oz.
Aveeno Active Naturals Daily Moisturizing Lotion - 2 x 18 oz.
Aveeno Clear Complexion Favorites - 6 oz. Cleanser + 4 oz. Moisturizer
Cetaphil Moisturizing Lotion - 40 oz. - For All Skin Types
Clean & Clear Daily Skincare Essentials - 20 oz. - Cleanser + Moisturizer
Everyone Lotion For Every Body 3in1 - 32 oz. - Coconut + Lemon

这是我的产品列表,我正在尝试有条件地格式化,以便具有不同第一个单词的每一行具有不同的颜色。我该怎么做?

1 个答案:

答案 0 :(得分:0)

这不完美,但可能已经足够了。

您可以使用第一个x字母ascii代码创建数字半唯一ID,然后使用它来为单元格着色。这可以通过两种方式完成,但两者都从创建新列(“辅助列”)开始,并在第一个单元格中粘贴以下公式: CODE(LEFT(B1,1))+CODE(MID(B1,2,1))+CODE(MID(B1,3,1))+CODE(MID(B1,4,1))+CODE(MID(B1,5,1))+CODE(MID(B1,6,1))

这会将每行的前6个字符(在B列中)转换为ascii代码,并将它们相加。如果6个字符不够,您可以通过添加+CODE(MID(B1,x,1))来增加使用x,其中=A1/MAX(A:A)*54的数量正在增加。

将药物注入所有专栏之后,你会得到类似的结果:

Getting ascii code

  1. 使用条件格式的颜色范围:
  2. 这是更简单快捷的方式,可能更适合您的需求,而不是另一个。只需在第一列使用范围颜色条件格式,您将获得基于每行第一个单词的颜色:

    Color-rang conditional formatting

    1. 使用颜色索引和VBA
    2. 上述解决方案并未对所有行进行着色,如果这对您很重要,您可以尝试使用以下公式添加另一个辅助列:

      A

      Sub format_text() Sheets(1).Select RowCount = Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To RowCount Cells(i - 2, 3).Interior.ColorIndex = Cells(i - 2, 2).Value + 2 Next End End Sub 是第一个辅助列。然后您可以使用此VBA代码:

      C

      将颜色列function (json) { return callback(json) } (现在是带有文本的列)与Excel中预设颜色的3-56之间的颜色索引(1& 2为黑白):

      enter image description here

      您可能会发现并非所有颜色都是可读的,但有效的颜色编码是有限的(大约有7种颜色),所以这是问题的固有问题。

      告诉我它是否解决了问题;)

相关问题