【问题标题】:Changing Row Colours based on Cell Value - Applying the same Cell Value if value is the same根据单元格值更改行颜色 - 如果值相同,则应用相同的单元格值
【发布时间】:2019-09-29 20:33:54
【问题描述】:

在 Excel 中:

我有一份我订购的物品清单。 在第一列的开头,我有订单号。这个数字由供应商名称+我下订单的日期组成(例如Supplier1.17-05-19Supplier2.17-05-19Supplier.23-5-19

我想根据不同的单元格值替换单元格颜色。订单号为 Supplier1.17-05-19 的所有商品都应为白色背景,订单号为 Supplier2.17-05-19 的所有商品应为灰色背景,依此类推。

每当我因为添加了新订单而添加新商品时,我希望这些商品具有相同的背景颜色,但与我之前下的订单号不同。

我已经尝试了使用条件格式提出的所有可能的解决方案,但没有任何效果。

每当我因为添加了新订单而添加新商品时,我希望这些商品具有相同的背景颜色,但与我之前下的订单号不同。

例子:

-Supplier1.17-05-19 - White Background Colour
-Supplier1.17-05-19 - White Background Colour
-Supplier1.17-05-19 - White Background Colour
-Supplier2.17-05-19 - Grey Background Colour
-Supplier2.17-05-19 - Grey Background Colour
-Supplier2.23-05-19 - White Background Colour
-Supplier2.23-05-19 - White Background Colour
-Supplier3.23-05-19 - Grey Background Colour
-Supplier3.23-05-19 - Grey Background Colour
-Supplier3.23-05-19 - Grey Background Colour
-Supplier3.23-05-19 - Grey Background Colour

【问题讨论】:

  • 为什么供应商 2 是白色和灰色的?供应商 1 只有白色,供应商 3 只有灰色?
  • 嗨,迈克,感谢您的提问。这很简单,因为只要订单号发生变化,颜色就会交替变化
  • 编辑现在清楚地显示它......
  • 我有几种方法可以做到这一点 - 我今天晚些时候有时间会回答。

标签: excel colors cell conditional-formatting


【解决方案1】:

方法一

将当前单元格与前一个单元格进行比较。

如果不同且前一个单元格尚未格式化,则将其涂成灰色。

如果相同且前一个单元格已格式化,则将当前单元格着色为灰色。

很遗憾,这不能使用像 CELL 这样的工作表函数来完成,因为它不能识别条件格式。

方法二

从列开始计算唯一值的数量并测试它是奇数还是偶数。这在 Google 表格中使用 Countunique 功能很容易做到,但在 Excel 中您需要这样的东西:

=ISEVEN(SUM(--(FREQUENCY(MATCH(A$2:A2,A$2:A2,0),MATCH(A$2:A2,A$2:A2,0))>0)))

这确实适用于测试数据,但如果相同的订单号在另一个订单号之后再次出现(即它们未分类为块),则会失败。

方法3

计算数据中的圈数,即订单号更改为当前行的次数,看看它是奇数还是偶数。到目前为止,我看不出这个有什么问题:

=ISEVEN(SUMPRODUCT(--(A$1:A1<>A$2:A2)))

【讨论】:

  • 亲爱的汤姆,首先非常感谢您!疯了吧!不幸的是,我没有很好地解决它。我正在使用你的火法,它不能完全工作。你能解释一下那个公式中发生了什么吗? Ivyline.03-05-19 Ivyline.03-05-19 Ivyline.03-05-19 Ivyline.03-05-19 Decco.08-05-2019 Ferm Living.03-05-2019 Ferm Living.03-05- 2019 陶罐.08-05-2019 陶罐.08-05-2019
  • 亲爱的汤姆,首先非常感谢您!疯了吧!不幸的是,我没有很好地解决它。我正在使用您的第三种方法,但它不能完全起作用。每个块的最后一个和第一个条目的颜色错误。你能解释一下那个公式中发生了什么吗?我渴望学习。 Sumproduct 后面的“--”是什么?这部分“A$1:A1A$2:A2”在做什么?再次感谢,非常感谢您的帮助。
  • 我面前没有测试表,所以我不能完全回答你的问题,但需要注意的是(1)公式中的范围必须与您正在格式化,因此如果它从第 10 行开始(例如),您必须将其更改为 A$9:A9A$10:A10 (2) -- 将比较结果(真或假)更改为一个数字,因此 sumproduct 可以将其相加 (3) $A1:A1A$2:A2 将范围内的每个单元格与前一个单元格进行比较,因此整个 sumproduct 的结果是当前单元格不是的次数等于前一个。
猜你喜欢
  • 1970-01-01
  • 2012-09-06
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多