如果counta = 1

时间:2018-11-13 08:23:50

标签: excel excel-formula

我有以下公式可以在表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)}

但是它也不起作用。

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]) // *** //

这将给我们这个结果。

enter image description here

那么您可能不希望重复...

因此,我们需要检查上一行是否包含该公式将返回的任何值。 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]),"")

enter image description here


可以通过以下方式忽略宏错误:

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显示为破折号。

有时空白还用作错误检查,您也可以应用此类公式来检查有多少空白,也许有一天将用于检查任何数据输入问题。