Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Разный результат формулы ЯЧЕЙКА()

Автор runner, 01.03.2019, 13:03

« назад - далее »

runner

Доброго дня всем!

Файлы сохраняются в локальной сети на общем диске.
Цель использования формулы ЯЧЕЙКА() - получение ссылки на расположение папки, где находится файл.
Файл предназначен для рассылки, поэтому *.xls (1997-2003). Поддержка макросов нужна, так как используются.

В приложении Книга5.xlsx и Книга6xls

Результат функции ЯЧЕЙКА() в этих файлах, находящихся у меня в одной папке, выглядит по-разному:

\\velo-dc3\Files\Отдел гарантии и запчастей\Гарантийные заявки\[Книга5.xlsx]Лист1
и
I:\Отдел гарантии и запчастей\Гарантийные заявки\[Книга6.xls]Лист1

Первый при перенесении как текст автоматически трансформируется в ссылку, второй никак.
Забавно, что если оба файла открыты, подтверждение ячейки (F2,Enter) в одном, меняет результат в другом, и наоборот.

Вопрос: Как сделать,чтобы в *.xls результат был как в *.xlsx, то есть, начинался с \\?
Или, возможно по-другому - Как получить автоматическую рабочую ссылку на папку где сохранён файл?

vikttur

ЯЧЕЙКА покажет полный путь к ячейке, с учетом имени книги и имени листа.
Только путь к книге:
=ЛЕВБ(ЯЧЕЙКА("имяфайла");ПОИСК("[";ЯЧЕЙКА("имяфайла"))-1)

runner

Спасибо, но вопрос не в "хвосте", вопрос в начале
если начало воспроизводится так:     \\velo-dc3\Files\   всё ОК, а если так:     I:\   то ссылку не создать

Я копирую результат этой формулы и вставляю как значение в общий файл. В первом случае после(F2, Enter) содержимое превращается в активную ссылку, во втором случае - нет.

_Boroda_

#3
Только не забывайте, что без второго аргумента функция ЯЧЕЙКА даст Вам имя не текущего файла, а того, в котором произошло последнее изменение. Я подробнее и с примером писал об этом здесь ь http://www.excelworld.ru/forum/10-10934-95014-16-1400871584

Другими словами, в Вашем случае нужно писать не
=ЯЧЕЙКА("имяфайла")
а
=ЯЧЕЙКА("имяфайла";A1)

А чтобы убрать I, то так
=ПОДСТАВИТЬ(ЯЧЕЙКА("имяфайла";A1);"I:";"\")
=ПОДСТАВИТЬ(ЯЧЕЙКА("filename";A1);"I:";"\")
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

runner

Пробовал и так, и так - не влияет, результат тот же.

_Boroda_

Если Вы внимательно прочитаете текст по ссылке и попробуете поиграться с файлом, то поймете, что на результат не обязательно ВСЕГДА будет влиять. Но повлиять МОЖЕТ. И, как обычно, в самый неподходящий для этого момент
А по поводу "I:" - я дописал свой пост выше, Вы пробовали любую из двух нижних формул оттуда?
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

runner

#6
Если в качестве нового текста ставить не \ а \\velo-dc3\Files , то работает, но становится не универсальным, а привязанным к этому сетевому диску.

По сути I:\ и \\velo-dc3\Files\ два разных отображения/записи одного сетевого диска, но по какому принципу эти формы записи так по-разному используются - непонятно. Также непонятно как этот момент регулировать.


Насчёт второго аргумента в формуле - согласен, будет указан. Лучше пере-, чем недо-.

_Boroda_

По какому принципу - не знаю, нужно на Вашей машине поиграться. На моей машине на любом формате файла (xlsx, xlsm, xlsb, xls), расположенного в  ЯЧЕЙКА("filename";A1) дает первыми два слеша
А универсальную формулу вот, держите
="\"&ПСТР(ЯЧЕЙКА("filename";A1);ПОИСК("\";ЯЧЕЙКА("filename";A1);2);999)
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

runner

Всё же, дело не в двух слэшах... вернее, не только в них.
Одно и то же место в локальной сети может быть записано в двух отображениях I:\ и \\velo-dc3\Files\
А вот почему так и как этим пользоваться....?
Попробую IT -отдел напрячь, вдруг подскажут чего.
Будет результат - отпишусь.