A列中B列中的单元格值吗? (LibreOffice-Calc)

Is a cell value in column B in column A? (LibreOffice-Calc)

我需要一个 C 列的函数来显示他没有在 (A) 中列出的任何我的电影 (B)。

伪代码:

我搜索并找到了这些功能 – none 无论出于何种原因,其中的功能都有效。我已将它们修改为 8000 作为上限,我认为我永远不会接近它。

=IF(ISERROR(MATCH(B1,$A:$A00,0))=1,B1,"")
=IFERROR(MATCH(B1;$A:$A00;0);"")
=IFNA(VLOOKUP($B1;$A:$A00;1;0);"")
=IF(ISNA(VLOOKUP($B1;$A:$A00;1;0));"";VLOOKUP($B1;$A:$A00;1;0))
=IF(ISNA(VLOOKUP($B1,$A:$A00,1,0)),"",VLOOKUP($B1,$A:$A00,1,0))
=VLOOKUP(B1,$A:$A00,1,) 
=MATCH($B1;$A:$A9;0) 

我希望它是单个单元格函数,而不是 VBA。

实际上我早在 2001 年就使用 Excel 解决了这个问题。当时的诀窍是我必须编辑单元格并使用 Ctrl-Shift-Enter 创建一个“动态数组”,因此该函数被括在 {} 大括号中。但现在我使用的是最新的 LibreOffice Calc,无法正确使用 @#$# 语法。

谢谢!!

编辑 注意:使用 "A" 和“00001”数字进行测试会产生非常不同的结果。两列中的值必须如下所示:

好的,我已经在 Open Office 中测试了这些,结果如下:-

=IF(ISERROR(MATCH(B1,$A:$A00,0))=1,B1,"")

给出错误 508,因为逗号需要更改为分号。

**=IF(ISERROR(MATCH(B1;$A:$A00;0))=1;B1;"")**

很好。

=IFERROR(MATCH(B1;$A:$A00;0);"")

给出#Name?因为无法识别 IFERROR。

=IFNA(VLOOKUP($B1;$A:$A00;1;0);"")

给出#Name?因为无法识别 IFNA。

=IF(ISNA(VLOOKUP($B1;$A:$A00;1;0));"";VLOOKUP($B1;$A:$A00;1;0))

有效但给出相反的结果。

**=IF(ISNA(VLOOKUP($B1;$A:$A00;1;0));B1;"")**

就好了。

=IF(ISNA(VLOOKUP($B1,$A:$A00,1,0)),"",VLOOKUP($B1,$A:$A00,1,0))

逗号

=VLOOKUP(B1,$A:$A00,1,) 

逗号

=MATCH($B1;$A:$A9;0) 

有效,但只给出匹配的位置。

可能最简单的方法是:-

**=IF(COUNTIF(A:A00;B1);"";B1)**

不幸的是,在 Libre/Open Office 中,带有方括号的字符串似乎给出了虚假匹配。我猜你可以通过替换来绕过它

=IF(COUNTIF(SUBSTITUTE(SUBSTITUTE(A:A;"(";"<");")";">");SUBSTITUTE(SUBSTITUTE(B1;"(";"<");")";">"));"";B1)

作为数组公式输入并复制(而不是拉取)下来,或者当然是全局编辑所有括号:-(。

感谢@Lyrl,现在我知道了这个问题的根本原因,还有一个选项可以按照建议关闭正则表达式,或者您可以转义括号:-

=IF(COUNTIF(A:A;SUBSTITUTE(SUBSTITUTE(B2;"(";"\(");")";"\)"));"";B2)

请参阅 Open Office 中有关 Regex 的文档here

应该这样做,

=IF(ISNUMBER(MATCH(B1,$A:$A00,0)),"",B1)

测试公式

=IF(ISNA(MATCH(B1,$A:$A00,0))=TRUE(),B1,"")