Функцията 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“?