Excel公式来创build一个唯一的列表在底部生成一个0,我不能删除

这是我的情况

目标:根据sheet1中重复的列表在sheet2中创build一个唯一列表。

我试过了:= {IFERROR(INDEX(Sheet1!$ B $ 2:$ B $ 100,MATCH(0,COUNTIF($ B $ 2:B2,Sheet1!$ B $ 2:$ B $ 100),0)), “)}

问题:公式生成我正在查找的列表,但它在列表的末尾产生一个0(例如B3到B25是正确的,但是单元格B26有一个0)。 问题是我无法弄清楚如何删除它。 我试过一个if(0,“”)语句,这是行不通的。 请注意,我在Sheet1中的列表只有大约25个条目,但是我想要公式读取到B100以说明其他材料。 然而,我尝试的公式结束正好在我的列表结束,并不会产生一个零。

如果有人有任何想法,请让我知道。

谢谢

这是因为第26行的空白单元格将满足方程的唯一性:

你可以添加另一个标准:

IFERROR(INDEX(Sheet1!$B$2:$B$100,MATCH(1,(COUNTIF($B$2:B2,Sheet1!$B$2:$B$100)=0)*(Sheet1!$B$2:$B$100<>""),0)),"") 

这是一个数组公式,需要用Ctrl-Shift-Enter确认。

另一种方法是使参考数据集dynamic化:

 =IFERROR(INDEX(Sheet1!$B$2:INDEX(Sheet1!$B:$B,MATCH("ZZZ",Sheet1!$B:$B)),MATCH(0,COUNTIF($B$2:B2,Sheet1!$B$2:INDEX(Sheet1!$B:$B,MATCH("ZZZ",Sheet1!$B:$B))),0)),"") 

这会将引用的数据设置为范围,随着新数据的添加,它会自动增长或缩小,从而永远不会引用空白单元格。

如果数据表1中的数据是文本(如果是数字),则使用上面的代码将"ZZZ"replace为1E+99