проблема с функциями CountIf и SummIf [РЕШЕНО]

Автор maXima, 15 июля 2010, 19:31

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

maXima

Добрый день!

прошу подсказать решение, ну или хотя бы причину невозможности использования данных функций.

Ситуация такова - имеется два файла (в приложении).
В одном из них (111.ods) необходимо подсчитать количество совпадений по текстовому коду из другого файла (222.ods), для функции SummIf - сумму
В OO линейки 2.4 сложностей не было, в OO 3, начиная с 3.0 не получается.
Пробовал с форматами .xls, .ods - одинаково не получается.

Дополнительная информация
 Win XP,
 OO 3.2.1 (OO320m18 build:9502)
 Java 1.6.0_20
 
Заранее спасибо всем откликнувшимся!

[вложение удалено Администратором]

prof-alex

#1
Нужно ещё поискать среди регрессий, но обычная формула вроде =COUNTIF(B2:B35;"Linux") не работает. Если изменить формулу на =COUNTIF('file:///222.ods'#$TDSheet.C$13:C$65;"^"&D5&"$"), то заработает при включенной настройке "Разрешить регулярные выражения в формулах".

Ошибка в том, что вторым параметром должно следовать отношение, а не значение. Т.е., если бы в столбце D были не коды, а "регулярки" вроде ^030235 функции бы работали (хотя и не всегда верно).

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» Э. Дейкстра

dr.Faust

А почему не выдернуть весь диапазон в книгу с вычислениями и уже в нём работать - я и в Excel так делал - там те же проблемы бывают.

[вложение удалено Администратором]
Свобода информации - свобода личности!

Slavka

В твоем файле 111.ods ошибка в формуле.  В ячейке С11 формула выглядит вот так:
=COUNTIF('file:///D:/222.ods'#$TDSheet.C$13:C$65;D12) - т.е. идет проверка ячейки D12 вместо D11.

Тоже самое и в ячейке С15 формула выглядит вот так:
=COUNTIF('file:///D:/222.ods'#$TDSheet.C$13:C$65;D16) - т.е. идет проверка ячейки  D16 вместо D15.

А ошибка пошла с ячейки С6, т.к. формула в ячейке С5:
=COUNTIF('file:///D:/222.ods'#$TDSheet.C$13:C$65;D5) - еще правильная, проверяется ячейка D5

а формула в ячейке С6:
=COUNTIF('file:///D:/222.ods'#$TDSheet.C$13:C$65;D7) - уже неправильная, произошло смещение на единицу и проверяется ячейка D7 вместо D6

dr.Faust

Я тоже видел эту странность, но это не объясняет неработоспособность функций.
Свобода информации - свобода личности!

maXima

Спасибо всем за внимание!  ;)

Было подозрение, что произошло смещение формул, хотя, как сказал dr.Faust, это не оказалось объяснением проблемы.

Если правильно понимаю, для гарантированного результата - для новичков - единственным вариантом будет являться анализ только по листам одного документа, без ссылок на внешние файлы?

Кстати, это баг или фича?

p.s. Иногда так сложно бывает объяснить сотрудникам что такое CountIf и SummtIf, а объяснить необходимость ещё парочки "шаманских действий" почти не реально...  :D



Helen

Цитата: maXima от 16 июля 2010, 08:35Если правильно понимаю, для гарантированного результата - для новичков - единственным вариантом будет являться анализ только по листам одного документа, без ссылок на внешние файлы?

Кстати, это баг или фича?
Это баг, который надо бы в багтрекер.
Ссылки на внешние файлы вполне возможны, если выполнить "Вставка - Лист из файла" и включить параметр "Связь с файлом". Тогда данные будут обновляться всякий раз при открытии файла.
И сотрудникам удобнее станет ссылаться на данные, если они видят их на соседнем листе

Slavka

Цитата: dr.Faust от 16 июля 2010, 00:51
Я тоже видел эту странность, но это не объясняет неработоспособность функций.

А в чем заключается неработоспособность ?  После выше приведенных замен в формулах у меня все работало корректно на OOo Pro 3.0.0, OOo Pro 3.1.0, OOo Pro 3.1.1

dr.Faust

У  меня не заработало. Да и странно, что так работает, а так нет...
Как будто есть разница на какую ячейку ссылаться.
Свобода информации - свобода личности!

Helen

Проверила в ООо 2.4.0 Novell - работает.
Slavka, спасибо за указание версии.

Коллеги, у кого есть 3.2 Go-oo, проверьте, пожалуйста.

Рыбка Рио

Функция SUM работает, а COUNTIF - не работает. (OOo 3.2.1)
Цитата: Helen от 16 июля 2010, 11:11Ссылки на внешние файлы вполне возможны, если выполнить "Вставка - Лист из файла" и включить параметр "Связь с файлом". Тогда данные будут обновляться всякий раз при открытии файла.
Можно ссылку на внешний файл иначе создать: вводите функцию SUM, к примеру, а диапазон выделяете мышкой в другом файле и жмёте Enter. Функция SUM в конечном файле начинает работать, если исходный файл сохранить, а потом в конечном файле в меню Правка/Связи... обновить ссылку на файл.
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Хотя, COUNTIF тоже работает, если условие писать в виде ">5", т.е. к примеру,
=COUNTIF('file:///F:/Shared/исходный.ods'#$Лист1.A1:B7;">5")
т.е., ошибка в том, как обрабатывается сравнение строк при внешней ссылке на файл, видимо.
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Нет, оказывается проблема в знаке ' перед строкой.
Всё заработало, как только этого знака не стало.

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Всё, ясно. Если строка начинается с цифры, то она обрабатывается как-то с ошибкой, а если первый символ, к примеру, икс, то всё в порядке.

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

ubuntu 12.04 + LibO3.6.0