Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

11 Август 2022, 02:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Регресс с COUNTIFS() ?  (Прочитано 1068 раз)
0 Пользователей и 1 Гость смотрят эту тему.
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Стартовое сообщение: 5 Май 2022, 10:56 »

Win10
LO 7.3.2.2
Обновился до указанной версии на работе, и перестала работать формула. Заменил на SUMPRODUCT(), поправил синтаксис – работоспособность восстановлена.
COUNTIFS() не работает частично, а именно: когда условий больше одного (у меня 2), и во втором – сравнение с пустой строкой.
Например:
=COUNTIFS($D7:$D84;"<>";$I7:$I84;"")

Просьба проверить.
Если сократить условия до одного второго, то то же сравнение с пустой строкой работает.

Замена:
=SUMPRODUCT($D7:$D84<>"";$I7:$I84="")
« Последнее редактирование: 5 Май 2022, 10:59 от eeigor » Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 809


« Ответ #1: 5 Май 2022, 11:04 »

Работает нормально на Version: 7.3.3.1 (x64) / LibreOffice Community
Build ID: 1688991ca59a3ca1c74bc2176b274fba1b034928
CPU threads: 12; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: en-US
Calc: CL

А что выбрано в Options|Calc|Calculate|Search criteria = and <> must apply to whole cells?

LO 7.3.2.2
Обновился до указанной версии на работе

Хм. "7.3" и "на работе" не очень вяжется Подмигивающий

Цитата:
If you're a technology enthusiast, early adopter or power user, this version is for you!

И кстати: "обновился" с какой версии?
И вообще: что значит "перестала работать"? Ошибка? Считает неправильно? как (не учитывает нужное или учитывает ненужное)? на каких данных?


* COUNTIFS_empty_criterion.png (22.77 Кб, 556x446 - просмотрено 8 раз.)
« Последнее редактирование: 5 Май 2022, 11:07 от mikekaganski » Записан

С уважением,
Михаил Каганский
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #2: 5 Май 2022, 11:10 »

Дома Linux.
Обновился примерно с 7.0…
Флажок "поиск распространяется на всю ячейку" снят.
Ноль выдаёт. Но здесь сравнение идёт со всей ячейкой, поэтому неважно.

Edit:
На каких данных:
В первом условии диапазон строк, во втором формула, возвращающая целое число или "".
Попробуйте в примере выше заменить значения в столбце B на формулу, возвращающую 1 или "".
« Последнее редактирование: 5 Май 2022, 11:29 от eeigor » Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #3: 5 Май 2022, 11:46 »

В вашем примере у меня всё работает тоже. Заменил на формулу в столбце B для пустых ячеек:
B3, B6:B7: =""
И формула в ячейке A1 вернула 0, у меня во всяком случае. А SUMPRODUCT() вернёт 3. Это и был мой вопрос.

Значит, проблема с обработкой не пустых ячеек, а пустых строк, возвращённых формулой. Да, если первое условие убрать, то тоже не работает. Вот так у меня много итоговых формул вдруг вернули нолики после обновления. Положения спасла SUMPRODUCT().

Edit:
Измените условие в формуле с "" на "<>", и COUNTIFS() вернёт 5 для всех ячеек, так как значение в ячейках ="" трактуется как непустое.
Вывод: нарушена интерпретация пустых ячеек.

Так тоже работает:
{=SUM(($A$3:$A$7<>"")*($B$3:$B$7=""))}
« Последнее редактирование: 5 Май 2022, 12:26 от eeigor » Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 809


« Ответ #4: 5 Май 2022, 12:28 »

Попробуйте
Заменил
если первое условие убрать
Измените условие

...
А файл-пример будет?
Записан

С уважением,
Михаил Каганский
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #5: 5 Май 2022, 12:31 »

Михаил, использовал Ваш пример в ответе #1. На работе нет возможности выйти в сеть. Только телефон. Ответьте за свой пример с моим дополнением в виде =""
Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 809


« Ответ #6: 5 Май 2022, 12:36 »

Edit:
Измените условие в формуле с "" на "<>", и COUNTIFS() вернёт 5 для всех ячеек, так как значение в ячейках ="" трактуется как непустое.
Вывод: нарушена интерпретация пустых ячеек.
Вывод неверен.
Цитата: OASIS ODF 1.3 part 4 sect. 4.11.8 Criterion
For <>, if the value is empty it matches non-empty cells.
Цитата: OASIS ODF 1.3 part 4 sect. 4.7 Empty Cell
An empty cell is neither zero nor the empty string, and an empty cell can be distinguished from cells containing values (including zero and the empty string). An empty cell is not the same as an Error, in particular, it is distinguishable from the Error #N/A (not available).

Правильный вывод: исправлена интерпретация пустых ячеек.
Записан

С уважением,
Михаил Каганский
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #7: 5 Май 2022, 12:39 »

Согласен. Спасибо. Теперь другие функции интерпретируют иначе. С этим, полагаю, столкнутся многие. Я-то быстро нашёл замену…
Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 809


« Ответ #8: 5 Май 2022, 12:39 »

свой пример с моим дополнением в виде =""
Всё работает так же, как в ответе #1.
Записан

С уважением,
Михаил Каганский
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #9: 5 Май 2022, 12:42 »

Всё также при
B3, B6:B7: =""
?

Если я правильно понял, то я обновился на неудачную версию, и надо перейти на последнюю?
« Последнее редактирование: 5 Май 2022, 12:45 от eeigor » Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 809


« Ответ #10: 5 Май 2022, 12:48 »

Я также не вижу правильной работы "<>" у себя: ячейки с "=""" считаются пустыми независимо от настройки "Search criteria = and <> must apply to whole cells". Не знаю, что именно даёт Ваши результаты. На первый взгляд, патчи между 7.3.2.2 и 7.3.3.1 не показывают ничего релевантного.

tdf#148948
« Последнее редактирование: 5 Май 2022, 13:10 от mikekaganski » Записан

С уважением,
Михаил Каганский
eeigor
Опытный пользователь
***
Offline Offline

Пол: Мужской
Сообщений: 1 145


« Ответ #11: 5 Май 2022, 14:32 »

Михаил, спасибо за участие и багрепорт. Повторю только, что до обновления такого не было, и новое поведение неудобно и идёт в разрез с работой других функций.
Михаил, я полагал, что поскольку я работаю с целой ячейкой, то тот самый флажок (совпадение со всей ячейкой) роли не играет или не важен в данном случае. Установил флажок, и COUNTIFS() заработала верно.

Вот теперь ошибка полностью локализована. И это касается всех функций этого рода: SUMIFS() и пр.
« Последнее редактирование: 6 Май 2022, 08:08 от eeigor » Записан

Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!