与主列表相比,突出显示缺失的唯一对 - Excel
Highlighting missing unique pairs when compared to master list - Excel
关于Sheet 1,我有一个数据的主列表,具有相应的属性。有的数据有多个属性,有的只有一个,有留白的可能。分配给不同名称时可以重复属性。
我在下面发布了一些示例数据,所以我们都可以谈论相同的 cells/names 等
在 Sheet 2 上,有更多的自由格式数据 input/analysis 正在进行中。用户可以使用数据验证从下拉菜单中 select 'Name',然后再次使用下拉菜单从与该名称对应的可用属性中 select。名称和属性可以以任何顺序出现在 Sheet 2.
重要的是在第二个工作中考虑所有配对sheet。
是否可以使用条件格式来突出显示 'Name' 字段(在 Sheet 2 上),直到至少有一行包含所有可能的配对?在下面的示例中,您可以看到我们忘记添加任何与 Sally is Happy 这一事实相关的信息,因此 'Sally' 被突出显示以提醒人们注意缺少一些信息这一事实。
目前的想法:
我已经有一个与相应名称匹配的属性列表 - 这是驱动 Sheet 2 上的下拉菜单的原因,并且在 Sheet 上选择名称时在后台 sheet 中生成] 2. 我可以计算这个范围内的非空白单元格以找出所需的对总数。
然后我想计算与当前行具有相同名称的行上的非重复属性的数量,并比较该值。
我希望这会进入数组公式的领域,但可能是错误的...
我还希望数组公式不能直接与条件格式一起使用,并且需要使用 'helper column' 来驱动格式。让我知道这是否不正确?
类似下面的内容(为便于阅读而格式化为伪代码,但这应该被视为高级描述,而不是实际代码)
{Count the 1s in the array(AND(
'Check if it's a name match'
If($D:$D=[$ACurrent],[set flag to 1],[set flag to 0])
'Check if it's a unique value'
[somehow check array values set at 1 to see if there is a duplicate value in column E, and then set the array value to zero if so])
}
这种方法是否有意义,我将如何构建这个实际的公式?
如果需要,我不介意使用 VBA,但如果可能的话我宁愿避免使用它(公司政策,抱歉)。
好吧,如果值 Sally, Happy
没有出现在 Sheet2 中,您想要突出显示该值,所以您只需要一个 COUNTIFS
我知道了:
我使用了基于我自己的公式的条件格式规则。我使用的公式是:
=IF($B2="";IF(COUNTIFS($F:$F;$A2;$G:$G;"")=0;TRUE;FALSE);IF(COUNTIFS($F:$F;$A2;$G:$G;$B2)=0;TRUE;FALSE))
有 2 个 COUNTIFS,因为可以为空值:
IF(COUNTIFS($F:$F;$A2;$G:$G;"")=0;TRUE;FALSE)
将计算 Sheet2 中有多少行具有相同名称和非空白属性。如果为 0,则它将 return True
并突出显示行。
IF(COUNTIFS($F:$F;$A2;$G:$G;$B2)=0;TRUE;FALSE)
将计算有多少行具有相同的名称和空白属性。如果为 0,则它将 return True
并突出显示
使用初始 IF,您可以使用空白或非空白属性,只是为了确保计算所有可能的值。
我已将示例上传到 mi Gdrive,以供您下载并在您的 PC 上自动翻译打开的公式。
https://drive.google.com/open?id=1Im4LoaK4EIvINBj7tfyEcYk9juWUp7zr
希望您能根据自己的需要进行调整。
@Foxfire And Burns And Burns 帮助我解决了我的问题 - 我稍微修改了他的公式,删除了双 COUNTIFS
,并考虑了主数据中两个单元格都是空白的行 - 下面是我用的
=IF (OR($A2<>"",$B2<>""),
(IF(COUNTIFS($D:$D,$A2,$E:$E,IF($B2="","",$B2))=0,TRUE,FALSE)
)
)
这通过从以下逻辑检查返回 TRUE
或 FALSE
来实现 - 如果最终结果是 TRUE
,则显示格式。
OR($A2<>"",$B2<>"")
- 检查母版中的任一单元格是否而非空白。 - 如果两个单元格都是空白的,则此 returns FALSE
并且不会格式化任何内容(请参阅 A10:B10
)。
IF(COUNTIFS($D:$D,$A2,$E:$E,[see point 3])<1,TRUE,FALSE)
- 这计算 范围 $D:$D
包含单元格 $A2
的值的次数,以及范围$E:$E
包含单元格 $B2
的值。如果该数字是 <1
,(零个匹配项),则语句 returns TRUE
并执行格式化。
IF($B2="","",$B2)
- 这个嵌套的 IF 语句检查 Cell $B2
是否为空,如果 returns ""
为空,或者保持 [=22] 的值=] 否则。这是因为 COUNTIFS
会将单元格视为 'zero',否则为空白(参见 A9:B9
)。
- 我没有使用类似的嵌套 if 来检查
$A2
是否为空,因为它 不应该为空 ,因此突出显示用户有此处的数据输入也出错(参见 A2:B2
- 一旦用户输入名称,它将保持红色,因为它将不再匹配 D2:E2
。)
参考下图:
关于Sheet 1,我有一个数据的主列表,具有相应的属性。有的数据有多个属性,有的只有一个,有留白的可能。分配给不同名称时可以重复属性。
我在下面发布了一些示例数据,所以我们都可以谈论相同的 cells/names 等
在 Sheet 2 上,有更多的自由格式数据 input/analysis 正在进行中。用户可以使用数据验证从下拉菜单中 select 'Name',然后再次使用下拉菜单从与该名称对应的可用属性中 select。名称和属性可以以任何顺序出现在 Sheet 2.
重要的是在第二个工作中考虑所有配对sheet。
是否可以使用条件格式来突出显示 'Name' 字段(在 Sheet 2 上),直到至少有一行包含所有可能的配对?在下面的示例中,您可以看到我们忘记添加任何与 Sally is Happy 这一事实相关的信息,因此 'Sally' 被突出显示以提醒人们注意缺少一些信息这一事实。
目前的想法: 我已经有一个与相应名称匹配的属性列表 - 这是驱动 Sheet 2 上的下拉菜单的原因,并且在 Sheet 上选择名称时在后台 sheet 中生成] 2. 我可以计算这个范围内的非空白单元格以找出所需的对总数。
然后我想计算与当前行具有相同名称的行上的非重复属性的数量,并比较该值。
我希望这会进入数组公式的领域,但可能是错误的... 我还希望数组公式不能直接与条件格式一起使用,并且需要使用 'helper column' 来驱动格式。让我知道这是否不正确?
类似下面的内容(为便于阅读而格式化为伪代码,但这应该被视为高级描述,而不是实际代码)
{Count the 1s in the array(AND(
'Check if it's a name match'
If($D:$D=[$ACurrent],[set flag to 1],[set flag to 0])
'Check if it's a unique value'
[somehow check array values set at 1 to see if there is a duplicate value in column E, and then set the array value to zero if so])
}
这种方法是否有意义,我将如何构建这个实际的公式?
如果需要,我不介意使用 VBA,但如果可能的话我宁愿避免使用它(公司政策,抱歉)。
好吧,如果值 Sally, Happy
没有出现在 Sheet2 中,您想要突出显示该值,所以您只需要一个 COUNTIFS
我知道了:
我使用了基于我自己的公式的条件格式规则。我使用的公式是:
=IF($B2="";IF(COUNTIFS($F:$F;$A2;$G:$G;"")=0;TRUE;FALSE);IF(COUNTIFS($F:$F;$A2;$G:$G;$B2)=0;TRUE;FALSE))
有 2 个 COUNTIFS,因为可以为空值:
IF(COUNTIFS($F:$F;$A2;$G:$G;"")=0;TRUE;FALSE)
将计算 Sheet2 中有多少行具有相同名称和非空白属性。如果为 0,则它将 returnTrue
并突出显示行。IF(COUNTIFS($F:$F;$A2;$G:$G;$B2)=0;TRUE;FALSE)
将计算有多少行具有相同的名称和空白属性。如果为 0,则它将 returnTrue
并突出显示
使用初始 IF,您可以使用空白或非空白属性,只是为了确保计算所有可能的值。
我已将示例上传到 mi Gdrive,以供您下载并在您的 PC 上自动翻译打开的公式。
https://drive.google.com/open?id=1Im4LoaK4EIvINBj7tfyEcYk9juWUp7zr
希望您能根据自己的需要进行调整。
@Foxfire And Burns And Burns 帮助我解决了我的问题 - 我稍微修改了他的公式,删除了双 COUNTIFS
,并考虑了主数据中两个单元格都是空白的行 - 下面是我用的
=IF (OR($A2<>"",$B2<>""),
(IF(COUNTIFS($D:$D,$A2,$E:$E,IF($B2="","",$B2))=0,TRUE,FALSE)
)
)
这通过从以下逻辑检查返回 TRUE
或 FALSE
来实现 - 如果最终结果是 TRUE
,则显示格式。
OR($A2<>"",$B2<>"")
- 检查母版中的任一单元格是否而非空白。 - 如果两个单元格都是空白的,则此 returnsFALSE
并且不会格式化任何内容(请参阅A10:B10
)。IF(COUNTIFS($D:$D,$A2,$E:$E,[see point 3])<1,TRUE,FALSE)
- 这计算 范围$D:$D
包含单元格$A2
的值的次数,以及范围$E:$E
包含单元格$B2
的值。如果该数字是<1
,(零个匹配项),则语句 returnsTRUE
并执行格式化。IF($B2="","",$B2)
- 这个嵌套的 IF 语句检查 Cell$B2
是否为空,如果 returns""
为空,或者保持 [=22] 的值=] 否则。这是因为COUNTIFS
会将单元格视为 'zero',否则为空白(参见A9:B9
)。- 我没有使用类似的嵌套 if 来检查
$A2
是否为空,因为它 不应该为空 ,因此突出显示用户有此处的数据输入也出错(参见A2:B2
- 一旦用户输入名称,它将保持红色,因为它将不再匹配D2:E2
。)
参考下图: