2016-04-05 3 views
2
  • Колонка A имеет список отсортирован-нисходящую Топ-250 фильмов некоторых Bum в, в следующем формате: Апокалипсис сегодня (1979)
  • Колонка B имеет упорядоченный список Мой Топ- 100, в том же формате.
  • Оба списка были скопированы и вставлены в текстовый документ Notepad, чтобы подтвердить, что они похожи на простой текст ASCI - никаких дополнительных пробелов в конце - и т. Д. - и затем вставляются обратно в LibreofficeCalc.

Мне нужна функция для столбца C, которая показывает любое из моих фильмов (B), которое он НЕ перечисляет в (A).Является ли значение ячейки в столбце B в столбце A? (LibreOffice-Calc)

код Psudo:

  • С1 = Значение ячейки в В1 - это где-нибудь в A1: A8000? Если нет - поместите значение B1 в C1, в противном случае оставьте пустым.
  • C2 = значение ячейки в B2 - это где-нибудь в A1: A8000? Если нет - положите значение B2 в C2, в противном случае оставьте пустым.
  • Etc.

Я искал и нашел эти функции - ни один из которых работают, по какой-либо причине. Я изменил их до 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)
  • т.д.
+0

Перейдите в раздел Инструменты → Настройки → LibreOffice Calc → Рассчитать и снимите флажок «Разрешить регулярные выражения в формулах ", и это устранит проблему с функциями, интерпретирующими скобки как часть регулярного выражения. – Lyrl

+0

Святая корова-моли! ЭТО^!! Вы просто решили это холодно. Огромное спасибо. Я уверен, что все три приведенных ниже ответа заслуживают большего, чем тот, который я дал каждому, но я соглашусь с нашим человеком Томом (и, очевидно, вы заслуживаете большего, чем спасибо, но спасибо в любом случае ..:) – Larry

ответ

2

OK Я проверил они находятся в открытом офисе со следующими результатами: -

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

Дает ошибку 508 be потому что запятые должны меняться на точки с запятой.

**=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) 

введена как формула массива и копируется (а не потянул) вниз или, конечно, глобального редактирования всех скобок :-(.

enter image description here

Теперь, когда я знаю причину этого, благодаря @Lyrl, есть еще вариант отключив регулярные выражения, как предложено или вы могли бы избежать скобки: -

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

См документации по Regex в Open Office here

+0

Ни одна из этих работ для меня. Нет никакого различия между значением B, находящимся в столбце A, или нет. Все вышеперечисленные функции просто копируют то же самое. (Это были функции, которые НЕ МОГУТ работать для меня. Я ищу тот, который это делает.) – Larry

+0

Я думал, что было бы полезно точно сказать, почему различные формулы не работали. Во всяком случае, выделили три альтернативы, которые определенно работают для меня в Open Office - надеюсь, что это поможет. Не включайте звезд, конечно. –

+0

Ваш ** ответ работает в Excel - но не в моем LibreOffice-Calc. Странный. У меня есть полностью стандартные установки на трех разных машинах (Win10, Win7, Unix) - ни одна работа для LibreOffice не работает. – Larry

1

Это должно сделать это,

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

Я копирую и передаю его в C1 , и скопируйте его, а ВСЕ ПОЛЯ - это копии из B. Не работает. На этой конкретной машине у меня есть Windows 7 со всеми обновлениями, а также с последним LibreOffice. Резидент США, ничего смешного в настройке. Не работает. – Larry

+0

Проверить дополнительные настройки вашего чиновника e, автоматический расчет формул отключен. Включите его, и он должен работать. –

+0

Инструменты - Содержимое ячейки - AutoCalculate: проверено. Это как раз то, что происходит в Excel. Вам нужно будет нажать F5 или F9 или что бы это было, чтобы пересчитать лист, если он был отключен. Благодарю вас за идею. Но (по нижним комментариям) проблема, вероятно, в паранах. Данные (за OP) все имеют parens, окружающие даты выпуска, и это приводит к ошибкам. – Larry

1

Испытано формула

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

То, что я получаю, является прямой копией значений B в C для каждой ячейки. Нет пробелов (там, где есть обман.) Я даже копирую и вставляю определенное значение ячейки A в B - поэтому я знаю, что значения точно такие же. Я также выделяю все три столбца и форматируя их в «тексте». Я никогда ничего не модифицировал в Calc, но, может быть, он не освежает правильно или что-то ??? – Larry