некорректно работает формула, вероятно считает что пустая ячейка не пуста...

Автор DimS, 27 апреля 2021, 07:57

0 Пользователи и 1 гость просматривают эту тему.

DimS

Добрый день, уважаемые гуру!

Таблица X3:AD500
столбец X - добывает номер документа из столбца В   =ЕСЛИ(И(D5<>"";ЕЧИСЛО((ПСТР(B5;$T$4;$T$6))*1));ПСТР(B5;$T$4;$T$6);"  ")
столбец Y - добывает номер документа из столбца J    =ЕСЛИ(ЕЧИСЛО((ПСТР(J4;$T$8;$T$6))*1);ПСТР(J4;$T$8;$T$6);" ")
столбец Z - объединить данные из B и J  (создает список уникальных номеров (убирает дубликаты)      {=ЕСЛИОШИБКА(ЕСЛИОШИБКА(ИНДЕКС($X$3:$X$775;ПОИСКПОЗ(0;ЕСЛИ(ЕПУСТО($X$3:$X$775);"";СЧЁТЕСЛИ($Z$2:Z2;$X$3:$X$775));0));ИНДЕКС($Y$3:$Y$775;ПОИСКПОЗ(0;ЕСЛИ(ЕПУСТО($Y$3:$Y$775);"";СЧЁТЕСЛИ($Z$2:Z2;$Y$3:$Y$775));0)));"")}
Вопрос 1 - если данные занести руками в D и J то Z работает корректно, без пустых ячеек,
а с формулами он вероятно считает что пустая ячейка не пуста...
Вопрос 2 - можно ли упростить формулу Z, т.к. при 500-1000 строках маломощный ПК вешается...
может есть какой вариант с макросом?

eeigor

https://help.libreoffice.org/4.0/Calc/Handling_of_Empty_Cells/ru

Желательно привести формулы: не все могут посмотреть файл по дороге на работу со смартфона  :). Но макрос – ещё менее производительнее, чем формула.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

bigor

Здравствуйте

Мне кажется
Цитата: DimS от 27 апреля 2021, 07:57столбец Z - объединить данные из B и J
и то, что делает Ваша формула не одно и тоже :) Распишите правило объединения подробнее. Так как судя по формуле он выводит значения или  из X или из Y.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

DimS

формула в столбце Z создает список уникальных номеров (убирает дубликаты)

bigor

Цитата: DimS от 27 апреля 2021, 09:45создает список уникальных номеров (убирает дубликаты)
Как? Распишите. Я вижу что она выбирает из диапазона значения равные по номеру номеру строки, но вычисляемые каким то хитрым способом :) с перебором всего массива и поиском количества совпадений
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

kompilainenn

Цель озвучьте изначальную. Что надо сделать-то? Может вам просто дубликаты поудалять надо?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

DimS

Да, Вы правы, мне необходимо убрать дубликаты и сравнить две таблицы-где теоретически совпадают номера документов.

economist

Убрать дубликаты можно на месте, Данные - Еще... - Расширенный фильтр 
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

DimS

Можно, конечно, и фильтром, и дубликатом. Меня и в том варианте, что есть всё устраивает. у меня Excel и всё работает. Только помочь решил коллегам с LibreOffice и запутался...
Фильтры и дубликаты не очень дружат с формулами, которые используются дальше.

kompilainenn

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

DimS

весь процесс в файле приложенном указан, сбор уникальных номеров в один столбец Z, затем выборка сумм из двух таблиц по критерию Z (номер) и сравнение

bigor

Я еще раз прошу разъяснить, что вы хотите получить от формулы в столбце Z, и в excel и в calc она обрабатывает только столбец X. Для чего в ней обработка Y?
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

DimS

Извиняюсь, мой косяк...
попробуйте в столбце Z протянуть формулы немного вниз

ну а затем, добавить в столбце J

ТО магазина.Док-нт № 13300
ТО магазина.Док-нт № 13301


bigor


Вариант решения 2 вопроса
Если убрать в формуле поиск только в непустых ячейках, то расчет идет быстрее, но появляется одна лишняя строка с 0 значением в столбце Z, после перебора всех данных в столбце X =IFERROR(IFERROR(INDEX($X$3:$X$775;MATCH(0;COUNTIF($Z$2:Z2;$X$3:$X$775);0));INDEX($Y$3:$Y$775;MATCH(0;COUNTIF($Z$2:Z2;$Y$3:$Y$775);0)));"")
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

DimS

да, уважаемый Bigor, формула проще и быстрее, даже "0" в этом случае можно использовать как раздел между списками типа "Уникальные номера столбца W",
но вот эти "пустые" ячейки из первого вопроса путаются "под ногами" и всё портят