|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
|
Не работает функция ДВССЫЛ при закрытом файле, на который ссылаюсь26.01.2017, 01:55. Показов 25214. Ответов 24
Доброго времени!
Полная формула (чисто для ознакомления, в ней сам черт ногу сломит, разбираться не обязательно, проблемный кусок обозначил ниже с уже частично выполненными вычислениями): Кликните здесь для просмотра всего текста
=ЕСЛИОШИБКА(ЕСЛИ(ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('F:\[книга.xls]Logging Sheet'!$M6;'F:\[книга.xls]Logging Sheet'!$AI$6:ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(СУММПРОИЗВ(('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100=МАКС('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100))*СТРОКА('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100));СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AI$6)));0) + 5;СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AK$6)))<>"";ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('F:\[книга.xls]Logging Sheet'!$M6;'F:\[книга.xls]Logging Sheet'!$AI$6:ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(СУММПРОИЗВ(('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100=МАКС('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100))*СТРОКА('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100));СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AI$6)));0) + 5;СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AK$6))); ПРОСМОТР(2;1/('F:\[книга.xls]Logging Sheet'!$AK$12:ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('F:\[книга.xls]Logging Sheet'!$M6;'F:\[книга.xls]Logging Sheet'!$AI$6:ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(СУММПРОИЗВ(('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100=МАКС('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100))*СТРОКА('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100));СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AI$6)));0) + 5;СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AK$6)))<>"");'F:\[книга.xls]Logging Sheet'!$AK$12:ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('F:\[книга.xls]Logging Sheet'!$M6;'F:\[книга.xls]Logging Sheet'!$AI$6:ДВССЫЛ("'F:\[книга.xls]Logging Sheet'!"&АДРЕС(СУММПРОИЗВ(('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100=МАКС('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100))*СТРОКА('F:\[книга.xls]Logging Sheet'!$AI$6:$AI$100));СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AI$6)));0) + 5;СТОЛБЕЦ('F:\[книга.xls]Logging Sheet'!$AK$6)))) );ЕСЛИ('F:\[книга.xls]Logging Sheet'!$M6<>"";K6;""))
Формула работает, если открыт и файл с формулой, и файл F:\книга.xls. Если файл F:\книга.xls закрыт, то функция ДВССЫЛ возвращает ошибку #Ссылка. Что можно вместо нее использовать, или как побороть эту беду? Как работаю с ДВССЫЛ (на каком этапе возвращает #Ссылка, последние 3 вычисления программы. проверял пошагово): ДВССЫЛ('F:\[книга.xls]Logging Sheet'!&АДРЕС(15;35)) т.е. склеиваю ссылку из адреса листа в книге и адреса ячейки.Следующим шагом программа получает абсолютно правильную строку: ДВССЫЛ('F:\[книга.xls]Logging Sheet'!&$AI$15) Следующий шаг тоже без ошибок: ДВССЫЛ('F:\[книга.xls]Logging Sheet'!$AI$15) - и вот после этого оно мне вместо ДВССЫЛ ставит #Ссылка. Как мне "склеить" ссылку на ячейку в файле? Все предыдущие вычисления (которые ведутся по данным из этого же файла) работают, не работает только эта функция и ТОЛЬКО если файл F:\книга.xls закрыт.
0
|
|
| 26.01.2017, 01:55 | |
|
Ответы с готовыми решениями:
24
ЦПУ майнер, работает при закрытом диспетчере задач Почему таймер в программе работает медленнее при закрытом eclipse Поиск минимального элемента в массиве, который не меньше N, функция не работает при некоторых значениях |
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|||||||||||
| 26.01.2017, 10:15 | |||||||||||
|
Функции для закрытых книг
Обычные: ВПР, ИНДЕКС, ПРОСМОТР, ПОИСКПОЗ, СУММПРОИЗВ Массивные: СУММ, СЧЕТ Там где в аргументе массив или таблица. А так же обычные ссылки типа: =[файл]лист!A1 PS. без файла примера формулу понять не получается. Добавлено через 36 минут Что разобрать смог. В вашей формуле фрагмент (убрал ссылку на другую книгу)
Осталась МАКС(), но вдруг сработает. Еще понять зачем МАКС(), может быть без него можно обойтись. Посмотреть бы на данные столбца AI.
1
|
|||||||||||
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
||
| 26.01.2017, 11:40 [ТС] | ||
|
МАКС использую для определения конца диапазона. Формула универсальная для 400 файлов, одинаковых по структуре, но с разным количеством строк.
0
|
||
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
||||||
| 26.01.2017, 11:57 | ||||||
|
номер последней строки в столбце AI с числами можно найти так
1
|
||||||
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
||
| 26.01.2017, 12:36 [ТС] | ||
|
Я могу после каждого "улучшения" кода заново его сюда вставлять, если требуется. Если так будет проще. Код для ячейки D5 файла счет: Кликните здесь для просмотра всего текста
=ЕСЛИОШИБКА(ЕСЛИ(ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА('[исходник.xls]Logging Sheet'!$I:$I));СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$I$6)));0) + 5;СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$J$6)))<>"";ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА('[исходник.xls]Logging Sheet'!$I:$I));СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$I$6)));0) + 5;СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$J$6))); ПРОСМОТР(2;1/('[исходник.xls]Logging Sheet'!$J$12:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА('[исходник.xls]Logging Sheet'!$I:$I));СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$I$6)));0) + 5;СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$J$6)))<>"");'[исходник.xls]Logging Sheet'!$J$12:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА('[исходник.xls]Logging Sheet'!$I:$I));СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$I$6)));0) + 5;СТОЛБЕЦ('[исходник.xls]Logging Sheet'!$J$6)))) );ЕСЛИ('[исходник.xls]Logging Sheet'!$C6<>""
6;""))
0
|
||
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|||||||||||
| 26.01.2017, 14:24 | |||||||||||
|
Избавьтесь и от этого
Даже вместо СТОЛБЕЦ($J$6) просто 10. Формула получится короче и понятнее. И таких замен можно сделать несколько.
1
|
|||||||||||
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
|
| 26.01.2017, 15:17 [ТС] | |
|
Относительные ссылки просто на полученное число менять не очень хочу, чтобы впоследствии просто номер столбца автозаменой подменить можно было.
Кликните здесь для просмотра всего текста
=ЕСЛИОШИБКА(ЕСЛИ(ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА($I:$I));СТОЛБЕЦ($I$6 )));0) + 5;СТОЛБЕЦ($J$6)))<>"";ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА($I:$I));СТОЛБЕЦ($I$6 )));0) + 5;СТОЛБЕЦ($J$6))); ПРОСМОТР(2;1/('[исходник.xls]Logging Sheet'!$J$12:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА($I:$I));СТОЛБЕЦ($I$6 )));0) + 5;СТОЛБЕЦ($J$6)))<>"");'[исходник.xls]Logging Sheet'!$J$12:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПОИСКПОЗ('[исходник.xls]Logging Sheet'!$C6;'[исходник.xls]Logging Sheet'!$I$6:ДВССЫЛ("'D:\Excel\[исходник.xls]Logging Sheet'!"&АДРЕС(ПРОСМОТР(9^9;'[исходник.xls]Logging Sheet'!$I:$I;СТРОКА($I:$I));СТОЛБЕЦ($I$6 )));0) + 5;СТОЛБЕЦ($J$6)))) );ЕСЛИ('[исходник.xls]Logging Sheet'!$C6<>""
6;""))
Не по теме: П.С. формула уже на 2 строки короче исходной, но сделать без ДВССЫЛ у меня пока не получается.
0
|
|
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|
| 26.01.2017, 15:36 | |
|
Файл с формулой приложите.
0
|
|
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
||
| 26.01.2017, 15:50 [ТС] | ||
|
По умолчанию работает в папке d:\Excel
0
|
||
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|
| 26.01.2017, 16:51 | |
|
К сожалению у меня формулы не показываются, видно несовместимость 2003 и 2007. Редко, но так бывает
Словами расскажите, какое значение должна вернуть ваша формула в D5, D6 и D11?
0
|
|
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
||
| 26.01.2017, 18:15 [ТС] | ||
|
Убрал одну проверку, теперь в интервал 8.0-21.0 нули, да и пофиг, это "ЕСЛИ" я сам потом вставлю. А формула получилась на 2/3 короче. И в 2003 офисе открывается без проблем.
0
|
||
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|
| 26.01.2017, 20:46 | |
|
Посмотрите вариант решения, но все равно есть проблема.
Все функции способны работать с закрытой книгой, но возвращается ошибка.
1
|
|
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
|||||||
| 27.01.2017, 00:24 [ТС] | |||||||
![]() Я проверил, что именно в Вашем варианте не работает.
0
|
|||||||
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|
| 27.01.2017, 00:41 | |
|
Я не понял. Моя формула работает как ваша при открытой книге?
Почему при закрытой книге глючит еще буду разбираться.
0
|
|
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
||||||
| 27.01.2017, 01:34 | ||||||
|
А как такой вариант? С формулой
В каждой ячейке столбца J есть значение, не смотря на то, что ячейки объединены. В столбце N показал что это действительно так. Секрет в способе объединения по шаблону. Как такое объединение делается. Для примера шаблон уже есть в столбце J, это диапазон J6:J18 Объединим по этому шаблону диапазон L6:L18 Для этого копируем J6:J18, после выделяем L6:L18, ПКМ, специальная вставка, форматы, Ок
0
|
||||||
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
|||
| 27.01.2017, 09:59 [ТС] | |||
|
С хитрым (макросным) объединением давно знаком.
0
|
|||
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
||
| 27.01.2017, 10:16 | ||
|
Если вдруг значения в векторе расположены по возрастанию, то при поиске "яяя", что для текста очень большое значение, почти как для чисел 9^9. В этом случае "работает" другой фрагмент описания функции Если ПРОСМОТР не может найти искомое_значение, то подходящим считается наибольшее значение в аргументе просматриваемый_вектор, которое меньше, чем искомое_значение. Т.е. это опять последнее значение. Мой коллега по другому форуму Николай (Nic70y) вместо "яяя" использует символ "我" Запись формулы сокращается на два символа. PS. А с ВПР() красиво получилось и очень компактно.
0
|
||
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
|
| 27.01.2017, 10:27 [ТС] | |
|
А. все, я понял. Вы все-таки изменили исходник, чтобы оно заработало. Так нельзя, к сожалению.
Если взять неизмененный исходник - формула работает неправильно.
0
|
|
|
2904 / 1718 / 705
Регистрация: 04.09.2015
Сообщений: 3,445
|
|
| 27.01.2017, 10:42 | |
|
А как же описание "21,0-25,2 Аргиллизиты серые с тонкой вкрапленностью пирита до 1%" находится не против своих значений. Это же ошибка.
Я всего лишь переместил описания на сроку начала диапазона. И сделал объединение ячеек для красоты (не обязательно) (файл исходник_new) Весь мир стремится к стандартизации всего, так проще понимать и работать людям. И вам надо выработать стандарт заполнения исходников, для упрощения их обработки.
0
|
|
|
646 / 474 / 39
Регистрация: 04.11.2013
Сообщений: 1,951
|
||
| 27.01.2017, 11:08 [ТС] | ||
|
Добавлено через 10 минут
0
|
||
| 27.01.2017, 11:08 | |
|
Помогаю со студенческими работами здесь
20
Удаление строки в закрытом файле.
Макрос в файле ексель, который находится на сервере, у 2 пользователей работает по-разному Копирование листов в отдельную книгу при наличии =ДВССЫЛ в листе Обмен Ут-бп При Закрытом Периоде Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|