Как создать гиперссылку по условию?

Доброго времени суток!

Смысл в следующем: На одном из листов имеем оглавление в виде таблички. Там есть 2 скрытых столбца, D – Имя ссылки, E – имя листа. В столбце C формируем ссылку:

=ЕСЛИ(E6="-";D6;ГИПЕРССЫЛКА("#'"&E6&"'!L24";D6))  

Т.е. если вместо имени листа ‘-‘, то берём просто текст из D, иначе создаём ссылку по имени листа из E. Тут как бы первая проблема… Почему если условие ложно, то ссылка всё равно создаётся? Просто она битая и при клике пишет невозможно открыть указанный файл. Как сделать по условию правильно?

И на каждом листе я делаю ссылку назад(именно на строку вызова), такого вида:

=ГИПЕРССЫЛКА("#'Table of contents'!D"&ПОИСКПОЗ(ПСТР(ЯЧЕЙКА("filename");ПОИСК("]";ЯЧЕЙКА("filename"))+1;31);sheetsTable;0)+2;"Back") 

Поиск по таблице для того, чтобы если оглавление будет отсортировано или отфильтровано, ничего не ломалось.. Оно работает, почти правильно, только я не понимаю почему прыгает на столбец C вместо заданного D?