我需要一个C列的函数,它显示我的任何电影(B),他没有在(A)中列出。
Psudo代码:
我搜索并发现了这些功能--无论出于什么原因,这些功能都不起作用。我已经把它们修改为8000作为上限,我认为我永远不会接近它。
=IF(ISERROR(MATCH(B1,$A$1:$A$8000,0))=1,B1,"")
=IFERROR(MATCH(B1;$A$1:$A$8000;0);"")
=IFNA(VLOOKUP($B1;$A$1:$A$8000;1;0);"")
=IF(ISNA(VLOOKUP($B1;$A$1:$A$8000;1;0));"";VLOOKUP($B1;$A$1:$A$8000;1;0))
=IF(ISNA(VLOOKUP($B1,$A$1:$A$8000,1,0)),"",VLOOKUP($B1,$A$1:$A$8000,1,0))
=VLOOKUP(B1,$A$1:$A$8000,1,)
=MATCH($B1;$A$1:$A$999;0) 我更希望它是一个单细胞函数,而不是VBA。
我实际上是在2001年用Excel解决了这个问题。诀窍是我必须编辑单元格并使用Ctrl-Shift-Enter来创建一个“动态数组”,因此函数被置于{}花括号中。但是现在我使用的是最新的LibreOffice Calc,无法得到正确的@#$#语法。
谢谢你!!
编辑备注:使用"A“和"00001”数字进行测试会产生非常不同的结果。两列中的值必须如下所示:
发布于 2016-04-05 12:18:18
好的,我已经在Office中测试了这些结果,结果如下:
=IF(ISERROR(MATCH(B1,$A$1:$A$8000,0))=1,B1,"")提供错误508,因为逗号需要更改为分号。
**=IF(ISERROR(MATCH(B1;$A$1:$A$8000;0))=1;B1;"")**都没问题。
=IFERROR(MATCH(B1;$A$1:$A$8000;0);"")给出#的名字?因为IFERROR没有被认出来。
=IFNA(VLOOKUP($B1;$A$1:$A$8000;1;0);"")给出#的名字?因为IFNA没有被认可。
=IF(ISNA(VLOOKUP($B1;$A$1:$A$8000;1;0));"";VLOOKUP($B1;$A$1:$A$8000;1;0))起作用了,但结果正好相反。
**=IF(ISNA(VLOOKUP($B1;$A$1:$A$8000;1;0));B1;"")**会很好的。
=IF(ISNA(VLOOKUP($B1,$A$1:$A$8000,1,0)),"",VLOOKUP($B1,$A$1:$A$8000,1,0))逗号
=VLOOKUP(B1,$A$1:$A$8000,1,) 逗号
=MATCH($B1;$A$1:$A$999;0) 有效,但只给出了比赛的位置。
可能最简单的方法是:-
**=IF(COUNTIF(A$1:A$8000;B1);"";B1)**不幸的是,带括号的字符串似乎在Libre/Open Office中提供了虚假的匹配。我想你可以通过换人来解决这个问题
=IF(COUNTIF(SUBSTITUTE(SUBSTITUTE(A$1:A$10;"(";"<");")";">");SUBSTITUTE(SUBSTITUTE(B1;"(";"<");")";">"));"";B1)输入数组公式并复制(而不是下拉),或者当然是全局编辑所有括号:-(。

由于@Lyrl,我已经知道了造成这种情况的根本原因,现在还有一个新的选项可以关闭所建议的正则表达式,或者您可以摆脱方括号:-
=IF(COUNTIF(A$2:A$11;SUBSTITUTE(SUBSTITUTE(B2;"(";"\(");")";"\)"));"";B2)参见Office 这里中关于Regex的文档
发布于 2016-04-05 12:19:34
这样就行了,
=IF(ISNUMBER(MATCH(B1,$A$1:$A$8000,0)),"",B1)发布于 2016-04-05 12:34:33
试验公式
=IF(ISNA(MATCH(B1,$A$1:$A$8000,0))=TRUE(),B1,"")https://stackoverflow.com/questions/36425585
复制相似问题