不匹配时显示值的数组公式
Array formula to show value if it does not match
我想做的是找到一个我一直未能找到的公式并将其更改为我需要的公式。我所拥有的是一个列表,其中名称在名称的两边都有不同的值。我想成为特定事情发生的方式。
我会尽量解释并举个例子。
在 A 列中,我列出了所有名称,没有按任何特定顺序排列,只是乱七八糟。在 B 列中,我有一个时间或值 "off" 如果那天没有安排某人。我想做的是找到 "John" 工作的每个实例和 return 如果没有说他休假或休假的值。
Example
显示每个实例的公式都在这里。这将驻留在 D2 中:
代码:
={IFERROR(INDEX('$B:$B,MATCH(0,IF($C=$A:$A,COUNTIF($D:D1,$B:$B),""),0)),"")}
我试过但没有成功的公式在这里:
代码:
={IFERROR(INDEX('$B:$B,MATCH(0,IF(NOT(OR("Off"=$B:$B,"Vacation"=$B:$B)),COUNTIF($D:D1,$B:$B),""),0)),"")}
如有任何帮助,我们将不胜感激!
我发现公式与您尝试使用的公式略有不同,但它可能对您有所帮助。 (在下面的代码中 "John" 在 C2 中)
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/((B:B<>"off")*(A:A=$C)),COUNTA($A:A1))),"")
如果你想让它也删除 "vacation" 那么
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/((B:B<>"off")*(B:B<>"vacation")*(A:A=$C)),COUNTA($A:A1))),"")
在我的本地化中,我使用“;”而不是你的“,”(我已经在例子中改变了它)所以你可能需要对代码应用一些其他小的变化......顺便说一句你不需要输入它作为数组公式。
对您的公式进行了一些更改:
=IFERROR(INDEX($B:$B,MATCH(0,IF(($C=$A:$A)*("Off"<>$B:$B)*("Vacation"<>$B:$B),COUNTIF($D:D1,$B:$B),""),0)),"")
这是一个数组公式,因此按 Ctrl+Shift+Enter 提交它.
在数组公式中引用整列 (如 $A:$A
或 $B:$B
) 会使执行速度非常慢,因此不可取,而是使用范围数据如
=IFERROR(INDEX($B:$B,MATCH(0,IF(($C=$A:$A)*("Off"<>$B:$B)*("Vacation"<>$B:$B),COUNTIF($D:D1,$B:$B),""),0)),"")
我想做的是找到一个我一直未能找到的公式并将其更改为我需要的公式。我所拥有的是一个列表,其中名称在名称的两边都有不同的值。我想成为特定事情发生的方式。
我会尽量解释并举个例子。
在 A 列中,我列出了所有名称,没有按任何特定顺序排列,只是乱七八糟。在 B 列中,我有一个时间或值 "off" 如果那天没有安排某人。我想做的是找到 "John" 工作的每个实例和 return 如果没有说他休假或休假的值。
Example
显示每个实例的公式都在这里。这将驻留在 D2 中: 代码:
={IFERROR(INDEX('$B:$B,MATCH(0,IF($C=$A:$A,COUNTIF($D:D1,$B:$B),""),0)),"")}
我试过但没有成功的公式在这里:
代码:
={IFERROR(INDEX('$B:$B,MATCH(0,IF(NOT(OR("Off"=$B:$B,"Vacation"=$B:$B)),COUNTIF($D:D1,$B:$B),""),0)),"")}
如有任何帮助,我们将不胜感激!
我发现公式与您尝试使用的公式略有不同,但它可能对您有所帮助。 (在下面的代码中 "John" 在 C2 中)
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/((B:B<>"off")*(A:A=$C)),COUNTA($A:A1))),"")
如果你想让它也删除 "vacation" 那么
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/((B:B<>"off")*(B:B<>"vacation")*(A:A=$C)),COUNTA($A:A1))),"")
在我的本地化中,我使用“;”而不是你的“,”(我已经在例子中改变了它)所以你可能需要对代码应用一些其他小的变化......顺便说一句你不需要输入它作为数组公式。
对您的公式进行了一些更改:
=IFERROR(INDEX($B:$B,MATCH(0,IF(($C=$A:$A)*("Off"<>$B:$B)*("Vacation"<>$B:$B),COUNTIF($D:D1,$B:$B),""),0)),"")
这是一个数组公式,因此按 Ctrl+Shift+Enter 提交它.
在数组公式中引用整列 (如 $A:$A
或 $B:$B
) 会使执行速度非常慢,因此不可取,而是使用范围数据如
=IFERROR(INDEX($B:$B,MATCH(0,IF(($C=$A:$A)*("Off"<>$B:$B)*("Vacation"<>$B:$B),COUNTIF($D:D1,$B:$B),""),0)),"")