Въпрос към урок: Функцията Indirect от курс: Анализи с Excel

Защо INDIRECT връща грешка #VALUE?

Microsoft Excel Електронни таблици Microsoft 365 Excel VBA Анализи с Excel

Текстът в колона "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 ще имате името на клетката.

Опитайте и споделете дали се е получило!

Поздрави и поздравления за упоритостта и старанието :)

Витали

Лек ден и успехи!


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация