我需要一个C列功能,显示他未在(A)中列出的任何MY电影(B)。
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"数字产生非常不同的结果。两列中的值必须如下所示:
答案 0 :(得分:2)
好的我已经在Open 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);"")
给#Name?因为IFERROR无法识别。
=IFNA(VLOOKUP($B1;$A$1:$A$8000;1;0);"")
给#Name?因为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)
请参阅Open Office here
中有关正则表达式的文档答案 1 :(得分:1)
这应该这样做,
=IF(ISNUMBER(MATCH(B1,$A$1:$A$8000,0)),"",B1)
答案 2 :(得分:1)
经测试的公式
=IF(ISNA(MATCH(B1,$A$1:$A$8000,0))=TRUE(),B1,"")