Непряма функція Excel - основні застосування та приклади формул

  • Поділитися Цим
Michael Brown

У цьому посібнику з Excel INDIRECT пояснюється синтаксис функції, основні способи її використання та наводиться ряд прикладів формул, які демонструють, як використовувати функцію INDIRECT в Excel.

В Microsoft Excel існує велика кількість функцій, деякі з них прості для розуміння, інші вимагають тривалого навчання, і перші використовуються частіше, ніж другі. І все ж таки, Excel НЕПРЯМА є однією з таких функцій. Ця функція Excel не виконує ніяких обчислень, не оцінює ніяких умов або логічних тестів.

Тоді, що таке функція НЕПРЯМА в Excel і для чого вона потрібна? Це дуже гарне запитання, і, сподіваємось, ви отримаєте вичерпну відповідь через кілька хвилин, коли закінчите читати цей підручник.

    Непряма функція Excel - синтаксис і основні застосування

    Як випливає з назви, функція НЕПРЯМАЯ в Excel використовується для непрямого посилання на комірки, діапазони, інші аркуші або книги. Іншими словами, функція НЕПРЯМАЯ дозволяє створити динамічне посилання на комірку або діапазон замість їх жорсткого кодування. В результаті ви можете змінювати посилання у формулі, не змінюючи саму формулу. Більше того, ці непрямі посилання не зміняться, коли з'являться нові рядки або стовпці.вставляються в робочий аркуш або коли ви видаляєте будь-які існуючі.

    Можливо, все це простіше зрозуміти на прикладі. Але для того, щоб мати можливість написати формулу, навіть найпростішу, потрібно знати аргументи функції, чи не так? Отже, давайте спочатку коротко розглянемо синтаксис INDIRECT в Excel.

    Синтаксис непрямої функції

    Функція НЕПРЯМА в Excel повертає посилання на комірку з текстового рядка. Вона має два аргументи, перший - обов'язковий, а другий - необов'язковий:

    INDIRECT(ref_text, [a1])

    ref_text - посилання на комірку, або посилання на комірку у вигляді текстового рядка, або іменованого діапазону.

    a1 - логічне значення, яке визначає, який тип посилання міститься в аргументі ref_text:

    • Якщо TRUE або опущено, ref_text інтерпретується як посилання на комірку в стилі A1.
    • Якщо FALSE, то ref_text розглядається як посилання R1C1.

    Хоча тип посилання R1C1 може бути корисним в певних ситуаціях, ви, ймовірно, захочете використовувати звичні посилання A1 більшу частину часу. Так чи інакше, майже всі НЕПРЯМІ формули в цьому підручнику будуть використовувати посилання A1, тому ми опустимо другий аргумент.

    Основне використання функції INDIRECT

    Щоб заглибитися в суть функції, давайте напишемо просту формулу, яка демонструє, як використовується функція INDIRECT в Excel.

    Припустимо, у комірці A1 знаходиться число 3, а текст A1 в комірку C1. Тепер помістіть формулу =INDIRECT(C1) в будь-яку іншу камеру і подивіться, що з цього вийде:

    • Функція INDIRECT посилається на значення в комірці C1, яке дорівнює A1.
    • Функція направляється в комірку A1, де вибирає значення для повернення, яким є число 3.

    Отже, що насправді робить функція INDIRECT в цьому прикладі перетворення текстового рядка в посилання на комірку .

    Якщо ви вважаєте, що це все ще має дуже мало практичного сенсу, будь ласка, зачекайте, і я покажу вам ще кілька формул, які розкривають реальну силу функції НЕПРЯМА в Excel.

    Як використовувати INDIRECT в Excel - приклади формул

    Як показано в наведеному вище прикладі, за допомогою функції INDIRECT в Excel можна помістити адресу однієї комірки в іншу як звичайний текстовий рядок, і отримати значення 1-ї комірки по посиланню на 2-у. Однак цей тривіальний приклад - не більше ніж натяк на можливості функції INDIRECT.

    При роботі з реальними даними функція НЕПРЯМАЯ може перетворити в посилання будь-який текстовий рядок, включаючи дуже складні рядки, які ви будуєте, використовуючи значення інших комірок і результати, що повертаються іншими формулами Excel. Але давайте не будемо ставити віз попереду коня, а пробіжимося по декількох формулах Excel Непрямі, по черзі.

    Створення непрямих посилань на основі значень комірок

    Як ви пам'ятаєте, функція НЕПРЯМАЯ в Excel дозволяє використовувати стилі посилань A1 і R1C1. Як правило, не можна використовувати обидва стилі на одному аркуші одночасно, перемикатися між двома типами посилань можна тільки за допомогою Файл> Параметри> Формули > прапорець R1C1 Це є причиною того, що користувачі Excel рідко розглядають можливість використання R1C1 як альтернативного підходу до посилань.

    У непрямій формулі можна використовувати обидва типи посилань на одному аркуші, якщо ви хочете. Перш ніж ми продовжимо, ви можете дізнатися про різницю між стилями посилань A1 і R1C1.

    Стиль А1 це звичайний тип посилання в Excel, який посилається на стовпець, за яким слідує номер рядка. Наприклад, B2 посилається на комірку на перетині стовпця B і рядка 2.

    Стиль R1C1 це протилежний тип посилання - рядки з наступними стовпчиками, до якого потрібно звикнути : ) Наприклад, R4C1 посилається на комірку А4, яка знаходиться в рядку 4, стовпчику 1 аркуша. Якщо після літери не стоїть цифра, то це означає, що ви посилаєтеся на той самий рядок або стовпчик.

    А тепер подивимось, як функція INDIRECT працює з посиланнями A1 та R1C1:

    Як ви бачите на скріншоті вище, три різні непрямі формули повертають один і той же результат. Ви вже здогадалися чому? Б'юся об заклад, що так : )

    • Формула в комірці D1: =INDIRECT(C1)

    Формула звертається до комірки С1, отримує її значення - текстовий рядок A2 перетворює його в посилання на комірку, переходить до комірки A2 і повертає її значення, яке дорівнює 222.

    • Формула в комірці D3: =INDIRECT(C3,FALSE)

    ЛОЖЬ у 2-му аргументі вказує на те, що значення, на яке робиться посилання (С3), слід розглядати як посилання на комірку R1C1, тобто номер рядка, за яким слідує номер стовпця. Тому наша формула НЕПРЯМА інтерпретує значення в комірці С3 (R2C1) як посилання на комірку на стику рядка 2 і стовпця 1, якою є комірка А2.

    Створення непрямих посилань зі значень комірок і тексту

    Подібно до того, як ми створювали посилання зі значень комірок, можна комбінувати посилання текстовий рядок і посилання на комірку в межах вашої НЕПРЯМОЇ формули, пов'язаної між собою оператором конкатенації (&).

    У наступному прикладі формула: =ИНДИРЕКТ("B"&C2) повертає значення з комірки B2 на основі наступного логічного ланцюжка:

    Функція INDIRECT здійснює конкатенацію елементів в аргументі ref_text - текст B і значення в комірці С2 - значення в комірці С2 - число 2, що робить посилання на комірку В2 - формула переходить в комірку В2 і повертає її значення, яке дорівнює числу 10.

    Використання функції INDIRECT з іменованими діапазонами

    Крім створення посилань із значень комірок і тексту, ви можете отримати непряму функцію Excel для посилання на іменовані діапазони .

    Припустимо, у вас в аркуші є наступні іменовані діапазони:

    • Яблука - B2:B6
    • Банани - C2:C6
    • Лимони - D2:D6

    Щоб створити в Excel динамічне посилання на будь-який з названих вище діапазонів, досить ввести його ім'я в яку-небудь комірку, наприклад G1, і послатися на цю комірку з непрямої формули =INDIRECT(G1) .

    А тепер можна зробити крок далі і вбудувати цю НЕПРЯМУ формулу в інші функції Excel для обчислення суми і середнього значення в заданому іменованому діапазоні, або знайти максимальне/мінімальне значення в межах діапазону:

    • =SUM(INDIRECT(G1))
    • =AVERAGE(INDIRECT(G1))
    • =MAX(INDIRECT(G1))
    • =MIN(INDIRECT(G1))

    Тепер, коли ви отримали загальне уявлення про те, як використовувати функцію НЕПРЯМА в Excel, ми можемо поекспериментувати з більш потужними формулами.

    Непряма формула для динамічного посилання на інший аркуш

    Корисність функції НЕПРЯМАЯ в Excel не обмежується побудовою "динамічних" посилань на комірки. Ви також можете використовувати її для посилань на комірки інших робочих аркушів "на льоту", і ось як це зробити.

    Припустимо, у вас є деякі важливі дані на аркуші 1, і ви хочете витягнути ці дані на аркуші 2. Наступний знімок екрана демонструє, як непряма формула Excel може впоратися з цим завданням:

    Давайте розберемо формулу, яку ви бачите на скріншоті, і зрозуміємо.

    Як відомо, звичайний спосіб посилання на інший аркуш в Excel - це написання імені аркуша, за яким слідує знак оклику і посилання на комірку / діапазон, наприклад Ім'я аркуша! Діапазон Оскільки назва аркуша часто містить пробіл (пробіли), то для запобігання помилки краще взяти її (назву, а не пробіл : ) в одинарні лапки, наприклад "Моє простирадло!" 1 долар. .

    І тепер все, що вам потрібно зробити, це ввести назву аркуша в одну комірку, адресу комірки в іншу, об'єднати їх в текстовий рядок і подати цей рядок у функцію INDIRECT. Пам'ятайте, що в текстовому рядку кожен елемент, крім адреси комірки або номера, потрібно взяти в подвійні лапки і зв'язати всі елементи між собою за допомогою оператора конкатенації (&).

    Враховуючи вищевикладене, отримуємо наступну картину:

    INDIRECT("'" & Назва аркуша "Я не знаю, що робити"; Комірка, з якої потрібно витягти дані )

    Повертаючись до нашого прикладу, в комірку А1 вводимо назву аркуша, а в колонці В - адреси комірок, як показано на скріншоті вище. В результаті отримуємо наступну формулу:

    INDIRECT("'" & $A$1 & "'!" & B1)

    Також зверніть увагу, що при копіюванні формули в декілька клітинок необхідно зафіксувати посилання на ім'я аркуша за допомогою абсолютних посилань на клітинки, наприклад, $A$1.

    Примітки

    • Якщо одна з комірок, що містять ім'я 2-го аркуша і адресу комірки (A1 і B1 у наведеній вище формулі), порожня, то непряма формула поверне помилку. Щоб запобігти цьому, можна обернути функцію НЕПРЯМА у функцію ЕСЛИ:

      IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))

    • Для коректної роботи формули INDIRECT, яка посилається на інший аркуш, аркуш, на який вона посилається, повинен бути відкритий, інакше формула поверне помилку #REF. Щоб уникнути помилки, можна скористатися функцією IFERROR, яка виведе на екран порожній рядок, яка б помилка не виникла:

      IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")

    Створення динамічного посилання Excel на іншу книгу

    Непряма формула, яка посилається на іншу книгу Excel, заснована на тому ж підході, що і посилання на іншу електронну таблицю. Вам просто потрібно вказати ім'я робочої книги на додаток до імені аркуша та адреси комірки.

    Щоб спростити завдання, почнемо з того, що посилання на іншу книгу робиться звичайним чином (апострофи додаються у випадку, якщо у назві книги та/або аркуша є пробіли):

    '[Назва_книги.xlsx]Назва_аркуша'! Діапазон

    Якщо припустити, що назва книги знаходиться в комірці А2, назва аркуша - в комірці В2, а адреса комірки - в комірці С2, то отримаємо наступну формулу:

    =INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)

    Оскільки ви не хочете, щоб при копіюванні формули в інші комірки змінювалися імена книги та аркуша, ви блокуєте їх за допомогою абсолютних посилань на комірки, $A$2 і $B$2 відповідно.

    І тепер ви можете легко написати власне динамічне посилання на іншу книгу Excel, скориставшись наступним шаблоном:

    =INDIRECT("'[" & Назва книги "]" & "]" & Назва аркуша "Я не знаю, що робити"; Адреса мобільного телефону )

    Примітка: книга, на яку посилається формула, завжди повинна бути відкрита, інакше функція INDIRECT видасть помилку #REF. Уникнути її, як завжди, допоможе функція IFERROR:

    =IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")

    Використання функції Excel INDIRECT для блокування посилання на комірку

    Зазвичай Microsoft Excel змінює посилання на комірки при вставці нових або видаленні існуючих рядків або стовпців на аркуші. Щоб цього не відбувалося, можна використовувати функцію НЕПРЯМА для роботи з посиланнями на комірки, які в будь-якому випадку повинні залишатися недоторканими.

    Для ілюстрації різниці, будь ласка, зробіть наступне:

    1. Введіть будь-яке значення в будь-яку комірку, наприклад, число 20 в комірку А1.
    2. Зверніться до клітинки А1 з двох інших клітинок різними способами: =A1 і =INDIRECT("A1")
    3. Вставте новий рядок над рядком 1.

    Бачите, що відбувається? Камера з що дорівнює логічний оператор, як і раніше, повертає 20, оскільки його формула була автоматично змінена на =А2. Комірка з формулою НЕПРЯМА тепер повертає 0, оскільки формула не була змінена при вставці нового рядка і все ще посилається на комірку А1, яка на даний момент порожня:

    Після цієї демонстрації у вас може скластися враження, що функція INDIRECT більше заважає, ніж допомагає. Гаразд, давайте спробуємо по-іншому.

    Припустимо, вам потрібно підсумувати значення в комірках A2:A5, і ви можете легко зробити це за допомогою функції SUM:

    =SUM(A2:A5)

    Однак ви хочете, щоб формула залишалася незмінною, скільки б рядків не видалялося і не вставлялося. Найочевидніше рішення - використання абсолютних посилань - не допоможе. Щоб переконатися в цьому, введіть формулу =SUM($A$2:$A$5) в якійсь комірці вставити новий рядок, скажімо, в рядку 3, і... знайти формулу, перетворену в =SUM($A$2:$A$6) .

    Звичайно, така люб'язність Microsoft Excel спрацює в більшості випадків, але бувають ситуації, коли ви не хочете, щоб формула змінювалася автоматично. Вирішенням проблеми є використання функції НЕПРЯМА, наприклад, як це зроблено тут:

    =SUM(INDIRECT("A2:A5"))

    Оскільки Excel сприймає "A1:A5" як звичайний текстовий рядок, а не як посилання на діапазон, він не вносить жодних змін при вставці або видаленні рядка (рядків).

    Використання INDIRECT з іншими функціями Excel

    Крім SUM, INDIRECT часто використовується з іншими функціями Excel, такими як ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF та іншими.

    Приклад 1. функції INDIRECT та ROW

    Досить часто функція СРЗНАЧ використовується в Excel для повернення масиву значень. Наприклад, можна використовувати наступну формулу масиву (пам'ятайте, що вона вимагає натискання клавіш Ctrl + Shift + Enter) для повернення середнього значення 3 найменших чисел в діапазоні A1:A10:

    =AVERAGE(SMALL(A1:A10,ROW(1:3)))

    Однак, якщо ви вставите новий рядок на робочому аркуші, в будь-якому місці між рядками 1 і 3, діапазон у функції СРЗНАЧ(1:4) зміниться на СРЗНАЧ(1:4), і формула поверне середнє значення 4 найменших чисел замість 3.

    Щоб цього не сталося, вкладіть INDIRECT у функцію ROW і ваша формула масиву завжди буде залишатися правильною, незалежно від того, скільки рядків вставляється або видаляється:

    =AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))

    Наведемо ще кілька прикладів використання функцій INDIRECT і ROW у поєднанні з функцією LARGE: Як підсумувати N найбільших чисел у діапазоні.

    Приклад 2. функції INDIRECT та ADDRESS

    Ви можете використовувати Excel НЕПРЯМА разом з функцією АДРЕСА, щоб отримати значення в певній комірці "на льоту".

    Як ви пам'ятаєте, функція АДРЕСА використовується в Excel для отримання адреси комірки за номерами рядка і стовпця. Наприклад, формула =ADDRESS(1,3) повертає рядок $C$1, оскільки C1 - комірка на перетині 1-го рядка та 3-го стовпця.

    Щоб створити непряме посилання на клітинку, просто вбудуйте функцію АДРЕСА в НЕПРЯМУ формулу, як показано нижче:

    =INDIRECT(ADDRESS(1,3))

    Звичайно, ця тривіальна формула лише демонструє методику. А ось кілька прикладів, які можуть виявитися дійсно корисними:

    • Формула НЕПРЯМОЇ АДРЕСИ - як поміняти місцями рядки і стовпці.
    • VLOOKUP та INDIRECT - як динамічно підтягувати дані з різних аркушів.
    • INDIRECT з INDEX / MATCH - як довести формулу VLOOKUP з урахуванням регістру до досконалості.
    • Excel INDIRECT і COUNTIF - як використовувати функцію COUNTIF на несуміжному діапазоні або виділеному діапазоні клітинок.

    Використання INDIRECT з перевіркою даних в Excel

    Ви можете використовувати функцію НЕПРЯМА з перевіркою даних Excel для створення каскадних випадаючих списків, які відображають різні варіанти залежно від того, яке значення користувач вибрав у першому випадаючому списку.

    Простий залежний випадаючий список дуже легко створити. Все, що потрібно - це кілька іменованих діапазонів для зберігання елементів випадаючого списку і простий =INDIRECT(A2) де A2 - комірка, в якій відображається перший випадаючий список.

    Для створення більш складних 3-рівневих меню або випадаючих списків з багатослівними записами вам знадобиться трохи складніша формула НЕПРЯМА з вкладеною функцією ПІДСТАНОВКА.

    Для отримання детальної покрокової інструкції щодо використання INDIRECT з перевіркою даних в Excel, будь ласка, перегляньте цей посібник: Як створити залежний випадаючий список в Excel.

    Непряма функція Excel - можливі помилки та проблеми

    Як показано в наведених вище прикладах, функція НЕПРЯМА є досить корисною при роботі з посиланнями на комірки та діапазони. Однак не всі користувачі Excel охоче використовують її, головним чином тому, що широке використання функції НЕПРЯМА у формулах Excel призводить до недостатньої прозорості. Функцію НЕПРЯМА важко перевірити, оскільки комірка, на яку вона посилається, не є кінцевим місцем розташування значення, що використовується у формулі,що дійсно досить заплутано, особливо при роботі з великими складними формулами.

    Крім того, як і будь-яка інша функція Excel, функція INDIRECT може видавати помилку при неправильному використанні аргументів функції. Нижче наведено перелік найбільш типових помилок:

    Помилка Excel INDIRECT #REF!

    Найчастіше функція INDIRECT повертає помилку #REF! у трьох випадках:

    1. ref_text не є коректним посиланням на комірку Якщо параметр ref_text в непрямій формулі не є дійсним посиланням на комірку, формула видасть значення помилки #REF! Щоб уникнути можливих проблем, будь ласка, перевірте аргументи функції INDIRECT.
    2. Перевищено ліміт дальності Якщо аргумент ref_text непрямої формули посилається на діапазон комірок, що перевищує межу рядка 1 048 576 або межу стовпця 16 384, ви також отримаєте помилку #REF в Excel 2007, 2010 і Excel 2013. Більш ранні версії Excel ігнорують перевищення ліміту і повертають деяке значення, хоча часто не те, яке ви очікуєте.
    3. Зазначений аркуш або робочий зошит закривається. Якщо ваша непряма формула посилається на іншу книгу або аркуш Excel, ця інша книга / електронна таблиця повинна бути відкрита, інакше непряма формула повертає помилку #REF!

    Помилка Excel INDIRECT #NAME?

    Це найочевидніший випадок, який означає, що в імені функції є якась помилка, що приводить нас до наступного пункту : )

    Використання функції INDIRECT в неангломовних регіонах

    Можливо, вам буде цікаво дізнатися, що англійська назва функції INDIRECT перекладена на 14 мов світу, в тому числі:

    • Данська - INDIREKTE
    • Фінська - EPÄSUORA
    • Німецька мова - INDIREKT
    • Угорська - INDIREKT
    • Італійська - INDIRETTO
    • Норвезька - INDIREKTE
    • Польська - ADR.POŚR
    • Іспанська - INDIRECTO
    • Шведська - INDIREKT
    • Турецька - DOLAYLI

    Якщо ви зацікавлені в отриманні повного переліку, будь ласка, перегляньте цю сторінку.

    Поширеною проблемою неангломовних локалізацій є не назва функції INDIRECT, а інше Регіональні налаштування для Розділювач списку У стандартній конфігурації Windows для Північної Америки і деяких інших країн за замовчуванням Розділювач списку В той час як в європейських країнах кома зарезервована як Десятковий символ та Розділювач списку встановлюється в крапку з комою.

    В результаті при копіюванні формули між двома різними локалями Excel може з'явитися повідомлення про помилку " Ми знайшли проблему з цією формулою... "Тому що Розділювач списку що використовується у формулі, відрізняється від того, що встановлено на вашому комп'ютері. Якщо ви зіткнулися з цією помилкою при копіюванні якоїсь НЕПРЯМОЇ формули з цього підручника в Excel, просто замініть всі коми (,) на крапку з комою (;), щоб виправити її.

    Щоб перевірити, які роздільник списків і десятковий символ встановлені на вашому апараті, відкрийте вікно Панель управління і йдіть до Регіон і мова; Додаткові налаштування .

    Сподіваємось, цей підручник пролив світло на використання INDIRECT в Excel. Тепер, коли ви знаєте його сильні сторони та обмеження, настав час спробувати і подивитися, як функція INDIRECT може спростити ваші завдання в Excel. Дякуємо за увагу!

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.