ФУНКЦИЯТА INDIRECT
=INDIRECT(препр_текст; [a1]) = INDIRECT(ref_text, [a1])
Текстът в колона "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 ще имате името на клетката.
Опитайте и споделете дали се е получило!
Поздрави и поздравления за упоритостта и старанието :)
Витали
Дори от сваления към урока файл, при смяна на предметите не се променя/връща средната стойност на съответния предмет?
Всъщност открих, че след като копирам клетка с формула с провлачване не се преизчислява формулата. Трябва да влеза в редакция на всяка клетка, за да се пресметне правилно формулата. В скрийншота в единия списък съм редактирала всяка клетка с F2 и Enter, а другия е само копиране с провлачване.
Придполагам, че трябва да направя някаква настрйка.
Здравейте,
гледайки скрийншота виждам, че долу вдясно има Calculate, което ме навежда на мисълта, че може би сте изключили опцията автоматично изчисление. Това би обяснило и защо се е случило това с влаченето.
За да включите автоматичното изчисляване отидете на Formulas > група Calculations > Calculation Options > Automatic;
Моля, споделете после дали това е свършило работа.
Успех :)
Витали
Точно това беше проблема. Благодаря сърдечно!
Здравейте, опитвам се да използвам формулата indirect, за да ми даде стойностите от една таблица в друга / тази в ляво/, смятах да разкопирам формулата там, където трябва, но още в първата клетка нищо не ми се получи. Случаят ми не е пълен аналог с това, което демонстрирате в урока, но вероятно нещо бъркам. Може ли да ми помогнете? Примерно искам в редовете в лявата таблица, където пише само SPH и +число да ми вземе данните от колона М от съседната таблица до +4.00.
Здравейте Вера,
можете ли да прикачите едно изображение за да видим как изглеждат нещата при вас?
Благодаря!
Витали
Вера, вие сте публикувала същия въпрос и на още едно място, където съм отговорил - вижте отговора там и ако имате допълнително въпроси - пишете..
В Sheet 1 имам списък с имена на клиенти. В “Sheet 2”, е направена таблица за месечен отчет. В колона “B” в “Sheet 2” се попълват имената на клиенти-те от списъка от “Sheet 1” . Как да направя така, че когато съм в клетка от колона “B” на “Sheet 2” и започна да изписвам първите инициали от името на клиент от списъка в “Sheet 1”, клетката да се попълни автоматично или ако има съвпадение на инициали в имената на няколко фирми, да падне меню с техните пълни имена, да отида със стрелката от клавиатурата надолу върху желаното име да натисна “ENTER” и клетката да се попълни?
Този въпрос не беше ли задаван преди време?
Здравейте, и от мен.
Никола се сети правилно, че наскоро се дикутира подобна тема.
Ако мога да помоля, дискусията да продължи там.
Как да направя, следната връзка между, списък в „Sheet 1“ и клетка в „Sheet 2“?
Здравейте, моля обяснете защо в урока при изписване на функцията INDIRECT веднъж слагаме кавички / =INDIRECT("a2")/, а друг път не /=AVERAGE(INDIRECT(B1)/
Функцията INDIRECT има две възможности : * да прочете даден текст като координати и да даде какво има в клетката - Тогава се слагат кавички, защото кавичките превръщат съдържанието на а2, дори и цифра да е, в текст за ексел. * да използва наименован списък - Тогава клетката предварително е превърната в наименован масив и затова няма кавички. В първия случай / =INDIRECT("a2")/ функцията INDIRECT прочита текста а2 (затова а2 е в кавички), превръща текста в координати на клетка, намира я и ни дава това , което има в нея. Във втория случай /=AVERAGE(INDIRECT(B1)/ функцията INDIRECT е с втората си възможност - да използва наименован списък. Ексел прочита текста В1 и след това търси дали съществува масив или клетка с това име и ако има ще ни върне до основната формула AVERAGE и ще направи средно аритметично на масива. Ако В1 не е масив, а е една клетка, то няма смисъл от фунцията AVERAGE.
Благодаря много!
Функцията INDIRECT се стреми да превърне текст в адрес. Тя приема като първи аргумент текст и нищо друго. Въпросът е дали този текст е константа или се изчислява динамично. Оттам идва разликата.
Така в =INDIRECT("a2") текстът е константа. Като текстова константа a2 е оградено в кавички. Следователно =INDIRECT("a2") винаги връща съдържанието на една единствена клетка "a2" и нищо друго. Естествено вместо "a2" може да се подаде всякакъв друг константен текст.
Във втория случай =INDIRECT(B1) текстът се намира в клетката B1 и може да се променя динамично. В частност B1 може да съдържа a2. Тогава разлика между двете формули няма да има.
Здравейте, Срещам следното затруднение: повторих упражнението от Модул 3, Урок 2 - "Функцията Indirect". Когато избера от падащото меню например "Английско" първенство, съответно съседната клетка ми предлага избор от трите предварително зададени отбора от наименования списък. Но, когато сменя първенството (от първата клетка) с "Българско" например, отбора в съседната клетка остава. Това може да доведе до сериозни заблуди, ако друг човек работи с файла и не е запознат добре с естеството на въведената информация. Прилагам и принтскрийн за по-голяма яснота. От мое име бих искал да изкажа сърдечни поздрави и благодарности към целия екип на Аула и предварително благодаря за отделеното време за отговор! Уроците от Аула ми дават толкова много! Благодаря!
Това е нормалното поведение - втората клетка е зависима от първата, но трябва да я изберете, за да видите актуализираните опции. Не е идеално, но просто така работи.
Успях, но при опита да удължа диапазона не ми позволи да ползвам същото име. Има ли начин да се изтрие името на стария диапазон и да се ползва за новия?
Здравейте, от меню Formulas избирате Name Manager и след това Edit или Delete, в зависимост от това, което искате да направите с някой от създадените наименовани диапазони.