首页 > 解决方案 > 检查列中的重复值,然后在相应行中 SUM > 8 时添加条件格式

问题描述

我不知道我是否正确地提出了我的问题,我似乎无法自己弄清楚这个问题的逻辑。我正在使用 Excel 中的资源规划器

我知道如何解释的最好方法是用屏幕截图显示:

  1. 检查每天的工作时间是否 > 8,然后将条件格式应用于最后添加的数字 不适用

  2. 检查每周工作的小时数是否 > 40,然后对最后添加的数字应用条件格式以指示超出的小时数

不适用

所以基本上,我的想法是:首先我必须检查“资源”列中的重复值。然后我必须将这些行与实际的 DAY 列(例如星期一)相匹配,然后每次将总小时数相加。如果总数超过 8,则应用条件格式来指示错误。

然后当它超过 40 小时时,整整一周都这样做。

我对 Excel 或公式不是很好,所以我想不出一种方法来组合几个公式来实现我的目标。我正在考虑将数组公式与多个 IF 语句相结合?但我什至不知道从哪里或如何开始。

要找到我可以使用这个公式的重复项?=COUNTIF(A:A, A2)>1

但是,我如何确保相应的行知道在每天检查 SUM > 8 时要使用哪些单元格?此外,如何添加相应的单元格以每周检查 SUM > 40?

任何帮助将不胜感激!

标签: excelexcel-formulaarray-formulas

解决方案


对于日限制,您可以尝试以下公式:

=ADDRESS(ROW($E4),COLUMN(E$4),4)=ADDRESS(IF(SUMPRODUCT(($A4=$A$4:$A$14)*E$4:E$14)>8,MAX(IF(($A4=$A$1:$A$14),ROW(($A$1:$A$14))-MIN(ROW($A$1:$A$14))+1)),1),COLUMN(E4),4)

它完全符合您的要求。

在此处输入图像描述

但是一周的问题比较复杂,如果工作时间超过40,我只能提供最后一行突出显示的解决方案。

=ADDRESS(ROW($E4),COLUMN(E$4),4)=ADDRESS(IF(SUMPRODUCT(($A4=$A$4:$A$14)*INDIRECT(ADDRESS(4,5+(7*FLOOR.MATH(MAX(COLUMN(E1)-4)/7.000001)))&":" & ADDRESS(14,11+(7*FLOOR.MATH(MAX(COLUMN(E1)-4)/7.000001)))))>40,MAX(IF(($A4=$A$1:$A$14),ROW(($A$1:$A$14))-MIN(ROW($A$1:$A$14))+1)),1),COLUMN(E4),4)

在此处输入图像描述


推荐阅读