Функцията Indirect

Безплатни 20 урока
регистрирай се и научи

Ако сте вече потребител - Регистриран съм
Видео

Допълнение:

ФУНКЦИЯТА INDIRECT

=INDIRECT(препр_текст; [a1])     = INDIRECT(ref_text, [a1])

  • Препр_текст / ref_text - Препратка към клетка, която съдържа препратка тип A1( или при допълнителна настройка R1C1 ), име, дефинирано като препратка, или препратка към клетка като текстова поредица.
     
  • а1 - Логическа стойност, която задава какъв тип препратка се съдържа в клетката препр_текст / ref_text.

Тест за преминаване към следващия урок

 
Формулата Indirect служи, за да:
обърне текст в координати на клетка/масив
ни даде стойност от даден масив при даден пореден номер
 
Формулата Indirect се използва, за да:
се получи адресът на клетка по зададени координати
се получи отстъп от адреса на дадена клетка
се намери поредния номер на определена стойност в даден масив
се разбере текст като адрес на клетка или за да се използва наименован масив

Въпроси и отговори

  • Защо 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 ще имате името на клетката.

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

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

    Витали

  • Защо при мен не се получи?

    Mira:

    Дори от сваления към урока файл, при смяна на предметите не се променя/връща средната стойност на съответния предмет?

    Витали Бурла:

    Здравейте,

    Сложете един скрийншот, за да можем да видим проблема :)

    Благодаря!

    Витали

    Mira:

    Всъщност открих, че след като копирам клетка с формула с провлачване не се преизчислява формулата. Трябва да влеза в редакция на всяка клетка, за да се пресметне правилно формулата. В скрийншота в единия списък съм редактирала всяка клетка с F2 и Enter, а другия е само копиране с провлачване.

    Придполагам, че трябва да направя някаква настрйка.

    Витали Бурла:

    Здравейте,

    гледайки скрийншота виждам, че долу вдясно има Calculate, което ме навежда на мисълта, че може би сте изключили опцията автоматично изчисление. Това би обяснило и защо се е случило това с влаченето.

    За да включите автоматичното изчисляване отидете на Formulas > група Calculations > Calculation Options > Automatic;

    Моля, споделете после дали това е свършило работа.

    Успех :)

    Витали

    Mira:

    Точно това беше проблема. Благодаря сърдечно!

    Вера Стоянова Райчева:

    Здравейте, опитвам се да използвам формулата indirect, за да ми даде стойностите от една таблица в друга / тази в ляво/, смятах да разкопирам формулата там, където трябва, но още в първата клетка нищо не ми се получи. Случаят ми не е пълен аналог с това, което демонстрирате в урока, но вероятно нещо бъркам. Може ли да ми помогнете? Примерно искам в редовете в лявата таблица, където пише само SPH и +число да ми вземе данните от колона М от съседната таблица до +4.00.

    Витали Бурла:

    Здравейте Вера,

    можете ли да прикачите едно изображение за да видим как изглеждат нещата при вас?

    Благодаря!

    Витали

    Витали Бурла:

    Вера, вие сте публикувала същия въпрос и на още едно място, където съм отговорил - вижте отговора там и ако имате допълнително въпроси - пишете..

  • Как да направя, следната връзка между, списък в „Sheet 1“ и клетка в „Sheet 2“?

    Николай Мирчев:

    В Sheet 1 имам списък с имена на клиенти. В “Sheet 2”, е направена таблица за месечен отчет. В колона “B” в “Sheet 2” се попълват имената на клиенти-те от списъка от “Sheet 1” . Как да направя така, че когато съм в клетка от колона “B” на “Sheet 2” и започна да изписвам първите инициали от името на клиент от списъка в “Sheet 1”, клетката да се попълни автоматично или ако има съвпадение на инициали в имената на няколко фирми, да падне меню с техните пълни имена, да отида със стрелката от клавиатурата надолу върху желаното име да натисна “ENTER” и клетката да се попълни?

    Никола Петров:

    Този въпрос не беше ли задаван преди време?

    Краси Кръстев:

    Здравейте, и от мен.

    Никола се сети правилно, че наскоро се дикутира подобна тема.

    Ако мога да помоля, дискусията да продължи там.

    Как да направя, следната връзка между, списък в „Sheet 1“ и клетка в „Sheet 2“?

  • Защо при изписването на функция INDIRECT веднъж слагаме кавички на ref_text, а друг път не?

    Мая Начева:

    Здравейте, моля обяснете защо в урока при изписване на функцията INDIRECT веднъж слагаме кавички / =INDIRECT("a2")/, а друг път не /=AVERAGE(INDIRECT(B1)/

    Daniela:

    Функцията INDIRECT има две възможности : * да прочете даден текст като координати и да даде какво има в клетката - Тогава се слагат кавички, защото кавичките превръщат съдържанието на а2, дори и цифра да е, в текст за ексел. * да използва наименован списък - Тогава клетката предварително е превърната в наименован масив и затова няма кавички. В първия случай / =INDIRECT("a2")/ функцията INDIRECT прочита текста а2 (затова а2 е в кавички), превръща текста в координати на клетка, намира я и ни дава това , което има в нея. Във втория случай /=AVERAGE(INDIRECT(B1)/ функцията INDIRECT е с втората си възможност - да използва наименован списък. Ексел прочита текста В1 и след това търси дали съществува масив или клетка с това име и ако има ще ни върне до основната формула AVERAGE и ще направи средно аритметично на масива. Ако В1 не е масив, а е една клетка, то няма смисъл от фунцията AVERAGE.

    Мая Начева:

    Благодаря много!

  • Как да създам динамична връзка между две клетки с падащи менюта:

    Велислав:

    Здравейте, Срещам следното затруднение: повторих упражнението от Модул 3, Урок 2 - "Функцията Indirect". Когато избера от падащото меню например "Английско" първенство, съответно съседната клетка ми предлага избор от трите предварително зададени отбора от наименования списък. Но, когато сменя първенството (от първата клетка) с "Българско" например, отбора в съседната клетка остава. Това може да доведе до сериозни заблуди, ако друг човек работи с файла и не е запознат добре с естеството на въведената информация. Прилагам и принтскрийн за по-голяма яснота. От мое име бих искал да изкажа сърдечни поздрави и благодарности към целия екип на Аула и предварително благодаря за отделеното време за отговор! Уроците от Аула ми дават толкова много! Благодаря!

    Витали Бурла:

    Това е нормалното поведение - втората клетка е зависима от първата, но трябва да я изберете, за да видите актуализираните опции. Не е идеално, но просто така работи.

    Kocho:

    С макрос се прави тази работа. Ето тук един пример

    Ако има нещо неясно - питайте