Преобразование формулы Excel в LibreOffice Calc

Автор Aspid, 3 июня 2017, 21:38

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

Aspid

Есть формула в Excel

=ИНДЕКС (ДВССЫЛ ("'[Другой файл-2.xlsx]"&$D$2&"'!$A:$C");СЧЁТЗ (ДВССЫЛ ("'[Другой файл-2.xlsx]"&$D$2&"'!$A:$A"))+1;СТОЛБЕЦ ()+1)
Необходимо адаптировать её под LibreOffice Calc

Пробую так
=INDEX(INDIRECT("''file:///C:/Users/Nike/Desktop/Другой файл-2.ods'"&$D$2&"'!$A:$C");COUNTA(INDIRECT("''file:///C:/Users/Nike/Desktop/Другой файл-2.ods'"&$D$2&"'!$A:$A"))+1;COLUMN()+1) выдает ошибку 504. Вероятно где-то неверные или лишние символы присутствуют.

Подскажите, где подправить, чтоб заработала.
P.s. Знаю,что LibreOffice Calc вроде как может также открывать файлы Excel, но мне необходима именно формула,т.к. её придется вбивать вручную на другом компьютере,на который нет никакой возможности перекинуть готовые файлы.

Helen

Если Вы используете что-то из последних версий LibreOffice, я думаю, что надо начать с того, что посмотреть на разделители между именем файла, именем листа и адресом ячейки. Распознавание текстовой ссылки, которую Вы даёте формуле INDIRECT() зависит от настроек конкретного офиса (Сервис -> Параметры -> LO Calc -> Формула, группа Подробные настройки вычислений -> Подробности), посмотрите значение параметра "Ссылочный синтаксис для строковых ссылок". Если там стоит Excel A1, значит в тестовой ссылке, которую Вы формируете для INDIRECT(), должны быть следующие разделители:
[Файл]Лист!Ячейка, т.е. [file:///home/helen/Загрузки/Другой файл-2.ods]Июнь!A1
если значение параметра Calc A1, то синтаксис текстовой ссылки такой:
'Файл'#Лист.Ячейка, т.е. 'file:///home/helen/Загрузки/Другой файл-2.ods'#Июнь.A1

Aspid

#2
Да вроде всё верно. Но всё равно ошибка. Может где-то знаки лишние или наоборот не хватает?

И необходимо,чтобы Calc было,потому что на работе у меня программа старой версии.

Helen

Думаю, что в любом случае решётку поставили не там. $D$2 - это название листа. В качестве разделителя между листом и ячейкой должны быть либо точка, либо восклицательный знак. А решётку надо ставить раньше.

Aspid, я приложила тестовый файл к сообщению, посмотрите, в какой из зелёных ячеек возвращается единица в Вашем офисе: А4 или А8?

rami

Попробуйте так:=INDEX(INDIRECT("['file:///C:/Users/Nike/Desktop/Другой файл-2.ods']" & $D$2 & "!$A:$C");COUNTA(INDIRECT("['file:///C:/Users/Nike/Desktop/Другой файл-2.ods']" & $D$2 & "!$A:$A"))+1;COLUMN()+1)

mikekaganski

Проще всего было бы взять файл Excel с работающей формулой и открыть в Calc.

В любом случае: особенно вначале такие формулы нужно делать постепенно: сначала делаете ячейку с формулой для адреса (типа ="['file:///C:/Users/Nike/Desktop/Другой файл-2.ods']" & $D$2 & "!$A:$C"), затем вторую ячейку, ссылающуюся на первую (=INDIRECT(A1)), добиваетесь, что во второй нормальный результат; потом таким же порядком остальные части. А иначе трудно определиться с ошибкой, и даже мастер формул (который показывает результат каждого этапа вычислений) не всегда помогает.
С уважением,
Михаил Каганский

Aspid

Цитата: Helen от  4 июня 2017, 08:40Думаю, что в любом случае решётку поставили не там. $D$2 - это название листа. В качестве разделителя между листом и ячейкой должны быть либо точка, либо восклицательный знак. А решётку надо ставить раньше.

Aspid, я приложила тестовый файл к сообщению, посмотрите, в какой из зелёных ячеек возвращается единица в Вашем офисе: А4 или А8?

А8

Aspid

rami,спасибо, в домашних условиях работает. Попробую теперь на работе испытать, на работе версия программы совсем старая.

rami

Цитата: Aspid от  4 июня 2017, 17:35Попробую теперь на работе испытать, на работе версия программы совсем старая.
В Apache OpenOffice работать не будет, там значительно отстали от LibreOffice. Но в любом случае сообщите где работает, а где нет. В LibreOffice 4.4.7 работает.

economist

А в LibreOffice Calc 5.2 и новее - еще и формулы кириллические. Включается:

Сервис-Параметры-LO Calc-Формулы-Использовать английские имена функций (снять флаг).

У моих пользователей (250 чел) полный восторг по поводу кириллизации функций, так как по результатам аттестации - 92% работают с Excel дома или на работе.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

kompilainenn

Цитата: economist от  5 июня 2017, 06:12У моих пользователей (250 чел) полный восторг по поводу кириллизации функций, так как по результатам аттестации - 92% работают с Excel дома или на работе.
И с чем связан восторг? Что можно и дальше продолжать работать в Экселе?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

economist

#11
kompilainenn - восторг их описывается одной фразой: "Calc - это новый Excel".

И потом, в каждом отделе у меня есть хотя бы один Excel (для старых макросов, COM-автоматизации итп), с которым приходится работать почти всем работникам (хотя в основном люди работают в Calc). Одинаковые функции - делают работу проще. Вот пункты меню Правка и Редактирование - одинаковы, но спросите у впервые открывшего программу: для него это разные сущности, причем навсегда. Поскольку по-разному называются. Не вижу причин называть одинаковые функции разными словами. В конечном счете "локализация" должна стать полной.

Заставить людей запомнить синтаксис функций VLOOKUP, MATCH, INDIRECT, SUMPRODUCT - на мой объективный взгляд, в 2-3 сложнее и дольше, чем к их русским аналогам. Скорость набора функций на латинице - в 8 раз ниже. Необходимость переключаться при вводе формулы 4-6 раз с языка на язык - не может быть оправдана ни чем. С русскими функциями - в этом нужды нет, т.к. ввод адресов ячеек - в 90% происходит мышью/курсорными клавишами. Цифры взяты из протоколов тестирования и аттестаций.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...