Страницы: 1
RSS
Логика работы функции ДВССЫЛ с определенными ИМЕНАМИ
 
Добрый день всем любителям и профессионалам.  
Возник вопрос по работе функции ДВССЫЛ.  
Сам вопрос: Почему если ДВССЫЛ в качестве аргумента использует ИМЯ представляюще диапазон, то расчеты происходят верно, а если в качестве аргумента используется ИМЯ представляющее формулу, тогда почему то считает не так как ожидалось.  
Поясню на примере:  
Имеем диапазон из пяти ячеек с числами, даем ему имя "Диап" =Лист1!$A$1:$A$5  вводим в С1 текст "Диап" и формула =СЧЁТ(ДВССЫЛ(C1)) дает прогнозируемый результат 5.  
Далее создаем имя "Формула" =ЕСЛИ(Лист1!$A$1:$A$5>1;Лист1!$A$1:$A$5;"") которая дает массив такого вида: {"":2:3:4:5}, вводим в С2 текст "Формула" и формула =СЧЁТ(ДВССЫЛ(C2)) по идее должна давать результат 4, однако не тут то было.  
Требуемое значение получяется только при использовании хитрой функции листов макросов - ВЫЧИСЛИТЬ, что наглядно показано в примере.  
Помогите разобраться почему ДВССЫЛ нормально работает с ИМЕНАМИ(Диапазонами) а с ИМЕНАМИ(формулами) не хочет.  
Просто хотелось бы как то уйти от функции ВЫЧИСЛИТЬ.
Редко но метко ...
 
а кто сказал, что "" это не значение
 
В help'e по данной функции написано:  
"...Возвращает ссылку, заданную текстовой строкой. Ссылки немедленно вычисляются для вывода их содержимого. Функция ДВССЫЛ используется, если требуется изменить ссылку на ячейку в формуле без изменения самой формулы.  
 
Ссылка_на_текст    — ссылка на ячейку, которая содержит либо ссылку в стиле А1 или R1C1, либо имя, определенное как ссылка, либо ссылку на ячейку в виде текстовой строки..."  
 
Из второго абзацая видно, что речь идет только о ссылках (именах, определенных как ссылки) на ячейки. И, надо полагать, немедленное вычисление происходит при условии ссылки именно на ячейки.    
Соответственно, предполагаю, что при ссылке на формулы не присходит автоматическоо немедленного вычисления, что требует "доп.пляски с бубном" - предварительного вычисления результатов формулы.
 
Массив на листе и массив виртуальный - разные вещи.  
ДВССЫЛ(ссылка;a1)  
A1 — это логическое значение, указывающее, какого типа ссылка содержится в ячейке ссылка_на_текст.
 
{quote}{login=}{date=23.11.2011 01:18}{thema=}{post}  
Соответственно, предполагаю, что при ссылке на формулы не присходит автоматическоо немедленного вычисления, что требует "доп.пляски с бубном" - предварительного вычисления результатов формулы.{/post}{/quote}  
 
Вот я тоже это предполагаю))  
Хотелось бы понять можно это как нить обойти?
Редко но метко ...
 
Т.е. даже если формула будет выдавать только одно значение (например: =МАКС(ЕСЛИ(Лист1!$A$1:$A$5>1;Лист1!$A$1:$A$5;""))), ДВССЫЛ() его не увидит - нет ссылки.
 
{quote}{login=vikttur}{date=23.11.2011 01:20}{thema=}{post}Массив на листе и массив виртуальный - разные вещи.  
ДВССЫЛ(ссылка;a1)  
A1 — это логическое значение, указывающее, какого типа ссылка содержится в ячейке ссылка_на_текст.{/post}{/quote}  
 
то есть если в аргументе ДВССЫЛ будет что либо кроме адреса, или ИМЕНИ = адресу, тогда никак ( ?
Редко но метко ...
 
Похоже, что так. Недоделанная она :)
 
Жаль, могло бы получится довольно гибкое решение определенных задач, без использования ВЫЧИСЛИТЬ. На нет и суда нет, взял бубен пошел шаманить )
Редко но метко ...
 
Антон, война - фигня, главное - манёвры :-)
 
{quote}{login=С.М.}{date=23.11.2011 06:00}{thema=Re: }{post}Антон, война - фигня, главное - манёвры :-){/post}{/quote}  
 
Самое интересное что методом научного тыка и путем глубочайших размышлений )), я пришел к такому же решению как у вас !!  
 
Всего пол дня потерял ).
Редко но метко ...
Страницы: 1
Читают тему
Наверх