列A中列B的单元格值是多less? (LibreOffice的-CALC)
- A列按照以下格式列出了一些bum's Top-250电影的sorting降序列表: Apocalypse Now(1979)
- 列B具有相同格式的“我的Top-100”的sorting列表。
- 这两个列表已被复制并粘贴到记事本文本文档中,以确认它们是类似的简单的ASCI文本 – 末尾没有多余的空格 – 等 – 然后粘贴回LibreofficeCalc。
我需要一个列C的function,显示他没有列在(A)中的任何我的电影(B)。
Psudo代码:
- C1 = B1中的单元格值 – 在A1:A8000中的任何位置? 如果不是,则将B1值写入C1,否则留空。
- C2 = B2中的单元格值 – 在A1:A8000中的任何位置? 如果不是,则将B2值放入C2中,否则留空。
- 等等。
我已经search并find了这些function – 无论出于何种原因,这些function都不起作用。 我已经将它们修改为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)
我更喜欢它是一个单一的单元格function,而不是VBA。
我实际上在2001年使用Excel解决了这个问题。 诀窍然后是我不得不编辑单元格,并使用Ctrl-Shift-Enter来创build一个“dynamic数组”,所以函数被放在{}大括号括起来。 但是现在我正在使用最新的LibreOffice Calc,无法获得正确的@ #$ #语法。
谢谢!!
编辑注意:使用“A”和“00001”数字进行testing会产生非常不同的结果。 在两列中值必须看起来像这样:
- 爱丽丝(1988)
- Barfly(1987)
- 无能(1995)
- 等等
好的,我已经在Open Office中testing了以下结果:
=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)**
不幸的是,似乎括号内的string在Libre / Open Office中发生虚假匹配。 我想你可以通过replace来绕过它
=IF(COUNTIF(SUBSTITUTE(SUBSTITUTE(A$1:A$10;"(";"<");")";">");SUBSTITUTE(SUBSTITUTE(B1;"(";"<");")";">"));"";B1)
作为一个数组公式,并复制(而不是拉)下来或当然全局编辑所有的括号:-(。
现在我知道这个归功于@Lyrl的根本原因,还有一个closures正则expression式的选项,或者你可以跳过括号:
=IF(COUNTIF(A$2:A$11;SUBSTITUTE(SUBSTITUTE(B2;"(";"\(");")";"\)"));"";B2)
在这里查看Open Office中有关正则expression式的文档
这应该做到这一点,
=IF(ISNUMBER(MATCH(B1,$A$1:$A$8000,0)),"",B1)
经testing配方
=IF(ISNA(MATCH(B1,$A$1:$A$8000,0))=TRUE(),B1,"")