Защо INDIRECT връща грешка #VALUE?
Текстът в колона "I" е вкаран с VLOOKUP.
А в съседен sheet са създадени множество наименувани списъци с "create from selection"
Данните от колона "D" бяха форматирани и като general и като text, но и в двата случая дава грешка #Value. При проверка на формулата (сн. 1) се вижда, че Indirect чете и представя данните като адрес на клетка ($C$7885), игнорирайки "0"-та от записа. Нещо повече, в прозореца на Name Manager се вижда, че списъците са наименувани с долна черта пред името _C07885.
Какво значи в този случай долната черта? Защо ексел смята, че му задавам адреси на клетки? Има ли значение, че текстът в колона "I" е вкаран с VLOOKUP? Как да се справя?
В конкретния случай C07885 и подобните са иденификационни номера на фирми. Ако работя директно с имента на фирмите, всичко е ок, стига имената да са от една дума, но тъй като те не са, реших да работя през идентификационните номера, при които условието за една дума е изпълнено.
Здравейте, имам напредък, някакво решение, но не и разбиране на проблема. След множество опити, установих, че Ексел просто не харесва моите идентификационни номера и намира някакъв конфликт с тях. Ако работя с други, измислени кодове, няма никакъв проблем. Така и постъпих - добавих по една буква в началото на всеки код и voila :)
Здравейте :)
Интересен проблем! Като го прочетох, реших да го оставя малко по-дълго без отговор, за да могат някои от участниците във форума да излезнат със свое предложение за решението на задачата. Случаят наистина обаче е по-сложен.
Да започнем от долната черта; Ексел се стреми да избегне имена на масиви, които мoгат да бъдат сбъркани с координати на клетка, както би било с C0785. Затова, при генерирането на наименованите масиви се е появила и долната черта отпред. Не съм имал случай да озаглавя масив по този начин, но вярвам, че на това се дължи проблема - имал съм подобни ситуации, където знакът за интервал в името на колоната е бил автоматично заместван с долна черта при създаването на масив (напр.: Име Фамилия > Име_Фамилия).
Предлагам ви и едно алтернативно решение на проблема в допълнение към това, което сама сте намерила: Можете да ползвате в случая Indirect("_"&C2), така че да се получи точно името на масива, който имате. В случай, че формулата е в таблица, както във вашия пример по-горе, то тогава вместо C2 ще имате името на клетката.
Опитайте и споделете дали се е получило!
Поздрави и поздравления за упоритостта и старанието :)
Витали
Лек ден и успехи!