我有以下公式可以在表15中的列工厂中创建唯一列表:
{=IFERROR(INDEX(Tabel15[Plant];MATCH(0;COUNTIF(Analyses!$Q$2:$Q2;Tabel15[Plant]);0));"")}
此公式有效,但是当列工厂中只有1个值时,该公式给出的值为0。这是错误的,因为它应该返回该值。 有谁知道我该如何调整此公式以使其起作用?
我想将其更改为此:
{=IF(COUNTA(Tabel15[plant])>0;INDEX(Tabel15[Plant];MATCH(0;COUNTIF(Analyses!$Q$2:$Q2;Tabel15[Plant]);0));Kopie - datablad$G$2)}
但是它也不起作用。
答案 0 :(得分:1)
很好的模拟例子。尝试看看是否可行:
该公式根据另一个列表对唯一单元格进行计数。无论如何,唯一列表都将排在第一行。它还希望您在重复列表中具有多个值。如果不是,您将无法比较,因为它期望重复并且会引发错误#N / A。因为它包裹在IFERROR中,所以它被屏蔽为空白单元格
“唯一公式” = IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF($Q$1:Q2,Tabel15[Plant]), 0)),"")
为解决这个问题,我们检查了重复列表中存在多少个值:
=IF(COUNTA(Tabel15[Plant])>1,...
“唯一公式” ... ,Tabel15[Plant])
// *** //
这将给我们这个结果。
那么您可能不希望重复...
因此,我们需要检查上一行是否包含该公式将返回的任何值。
VLOOKUP
公式为我们完成了此操作,作为查找值,我们使用上面的// *** //公式,查找范围将作为当前列:$Q$1:Q2
。 注意,这是一个动态范围,因此Q2是相对参考(无$)。
=IF(ISERROR(VLOOKUP(IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF($Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),$Q$1:Q2,1,FALSE))
因此,我们需要应用的最终结果是在单元格第3季度中:
=IF(ISERROR(VLOOKUP(IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),Analyses!$Q$1:Q2,1,FALSE)),IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),"")
可以通过以下方式忽略宏错误:
If Not IsError(Sheets("Hulpblad").Range("B6").Value) Then
t = Sheets("Hulpblad").Range("B6").Value
'Code...
End If
答案 1 :(得分:0)
您的公式没有问题,只是表明范围内有空格,0表示空格。该公式将空白视为一个值,并且在唯一值计算中也将其考虑在内。
如果要删除0,则只需在公式上方插入if即可将其删除。喜欢
=if(formula = 0, "", formula)
或原始形式
=IF( (IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$2:$Q2,Tabel15[Plant]),0)),""))=0,"",IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$2:$Q2,Tabel15[Plant]),0)),""))
或进入单元格格式并更改格式以将0显示为破折号。
有时空白还用作错误检查,您也可以应用此类公式来检查有多少空白,也许有一天将用于检查任何数据输入问题。