Страницы: 1
RSS
Автоматическое изменение адреса ячейки в формуле
 
Перерыл весь интернет и ничего не нашол. Банальная засчита ячейки не подходит.
Есть большая формула. В ней есть адреса на ячейки которые мне нужны, именно так как я их записал. Но Ексель их меняет на короткие адреса автоматически. Как мне запретить Ексель менять адрес.


=ЕСЛИ('001'!D5="Лютий";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Січень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Березень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Лютий\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Квітень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Березень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Травень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Квітень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Червень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Травень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Липень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Червень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Серпень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Липень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Вересень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Серпень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Жовтень";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Вересень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Листопад";(('C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Жовтень\[Vidomist_Baza.xlsm]Номера'!$D$437)-1);
 ЕСЛИ('001'!D5="Грудень";((Номера!$D$437)-1);1)))))))))))  И вот здесь в конце Ексель укорачивает формулу, потомушо этот файл открыт и редактирование формулы в нем происходит.
Что сделать что б этого не было :)
 
Можно зафиксировать с помощью ДВССЫЛ().
 
Закрыть файл, других вариантов нет. Пока файл открыт, ссылка идет непосредственно на него и формулы автообновляются. Кстати, банальная защита ячейки не просто не подходит, она вообще ничего с этим не сделает.
Могу лишь посоветовать использовать макросы(UDF в частности), чтобы сделать это нагляднее. Но тогда разрешать макросы будет обязательно. В этом случае можно взять функцию пользователя отсюда:
Как получить данные из закрытой книги?
и Ваша формула может превратиться вообще в одну:
Код
=Get_Value_From_Close_Book("C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\Січень\Vidomist_Baza.xlsm";"Номера";"D437")
просто вместо Січень сделать ссылку на ячейку, где будет вычисляться имя месяца. Например, ячейка D6:
Код
=Get_Value_From_Close_Book("C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\"&D6&"\Vidomist_Baza.xlsm";"Номера";"D437")
а в D6 формула:
Код
=ЕСЛИ('001'!D5="Лютий";"Січень";
 ЕСЛИ('001'!D5="Березень";"Лютий;
 ЕСЛИ('001'!D5="Квітень";"Березень";
 ЕСЛИ('001'!D5="Травень";"Квітень";
 ЕСЛИ('001'!D5="Червень";"Травень";
 ЕСЛИ('001'!D5="Липень";"Червень";
 ЕСЛИ('001'!D5="Серпень";"Липень";
 ЕСЛИ('001'!D5="Вересень";"Серпень";
 ЕСЛИ('001'!D5="Жовтень";"Вересень";
 ЕСЛИ('001'!D5="Листопад";"Жовтень";
 ЕСЛИ('001'!D5="Грудень";((Номера!$D$437)-1);1)))))))))))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Так же, если локализации украинская в офисе, то можно формулу и такой сделать в D6:
Код
=ТЕКСТ(ДАТА(2000;МЕСЯЦ(ДАТАЗНАЧ("1 "&'001'!D5&" 2000"));0);"[$-uk-UA]ММММ")
и по сути её можно будет прямо в Get_Value_From_Close_Book записать
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
МатросНаЗебре написал:
зафиксировать с помощью ДВССЫЛ()
и что будет, когда книгу закроем?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Идею понял, все сделал.
Вычисление месяца работает.
А вот первая часть:
=Get_Value_From_Close_Book("C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\"&D6&"\Vidomist_Baza.xlsm";"Номера";"D437")
ошибку выдает.
Изменено: RomikM - 22.01.2020 16:08:03
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
и что будет, когда книгу закроем?
В ячейке по прежнему будет длинный адрес. Ведь это же требовалось ТС.

Цитата
RomikM написал:
Ексель их меняет на короткие адреса автоматически. Как мне запретить Ексель менять адрес.
 
Цитата
RomikM написал:
ошибку выдает.
текст ошибки угадать предлагаете? :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ошибка #ИМЯ?

Извините Дмитрий я не силен в этом :)
Код
=Get_Value_From_Close_Book("C:\Users\Роман\Google Диск\Робота\GSM_Gandz\2019\"&D6&"\Vidomist_Baza.xlsm";"Номера";"D437")

Возможно это надо в макрос впихнуть?
 
Если ошибка ИМЯ, значит статью не читали или выбрали только то, что надо лично Вам. Саму функцию создали в книге? Если да - где именно? В стандартном модуле или в модуле листа, книги? Макросы разрешены?
Изменено: Дмитрий(The_Prist) Щербаков - 22.01.2020 19:21:22
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх