繁体   English   中英

单元格中的B列中的单元格值是吗? (LibreOffice的-CALC)

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

  • 列A列出了一些流浪汉的Top-250电影的降序列表,格式如下: Apocalypse Now(1979)
  • B列以相同的格式列出了My Top-100的排序列表。
  • 将两个列表都复制并粘贴到记事本文本文档中,以确认它们是相似的简单ASCI文本(末尾没有多余的空格),等等。然后将其粘贴回LibreofficeCalc。

我需要C列的功能来显示他未在(A)中列出的我的任何电影(B)。

伪代码:

  • C1 = B1中的单元格值–它在A1:A8000中的任何地方吗? 如果不是,则将B1值放入C1,否则留空。
  • C2 = B2中的单元格值–它在A1:A8000中的任何地方吗? 如果不是,则将B2值放入C2,否则留空。
  • 等等。

我搜索并找到了这些功能-无论出于何种原因,这些功能都不起作用。 我已经将它们修改为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”数字进行测试会产生非常不同的结果。 两列中的值都必须看起来像这样:

  • 爱丽丝(1988)
  • Barfly(1987)
  • 无知(1995)
  • 等等

好的,我已经在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);"")

给#名字? 因为无法识别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)

此处查看有关Open Office中正则表达式的文档

这应该做到的

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

经过测试的配方

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM