Функція ІНДЕКС Excel з прикладами формул

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

У цьому посібнику ви знайдете ряд прикладів формул, які демонструють найбільш ефективне використання ІНДЕКС в Excel.

З усіх функцій Excel, потужність яких часто недооцінюється і не використовується, ІНДЕКС, безумовно, увійшов би в топ-10. Між тим, ця функція є розумною, гнучкою і універсальною.

Отже, що таке функція ІНДЕКС в Excel? По суті, формула ІНДЕКС повертає посилання на клітинку з даного масиву або діапазону. Іншими словами, ви використовуєте ІНДЕКС, коли ви знаєте (або можете обчислити) позицію елемента в діапазоні і хочете отримати фактичне значення цього елемента.

Це може здатися дещо тривіальним, але як тільки ви усвідомите реальний потенціал функції ІНДЕКС, вона може внести кардинальні зміни у спосіб обчислення, аналізу та представлення даних у ваших робочих таблицях.

    Функція ІНДЕКС в Excel - синтаксис і основні застосування

    В Excel існує дві версії функції ІНДЕКС - форма масиву і форма посилання. Обидві форми можна використовувати у всіх версіях Microsoft Excel 365 - 2003.

    Форма масиву INDEX

    Форма INDEX масиву повертає значення певного елемента в діапазоні або масиві на основі вказаних вами номерів рядка і стовпця.

    INDEX(array, row_num, [column_num])
    • масив - діапазон комірок, іменований діапазон або таблиця.
    • row_num - номер рядка в масиві, з якого потрібно повернути значення. Якщо row_num не вказано, то column_num є обов'язковим.
    • column_num - номер стовпця, з якого потрібно повернути значення. Якщо column_num не вказано, то row_num є обов'язковим.

    Наприклад, формула =INDEX(A1:D6, 4, 3) повертає значення на перетині 4-го рядка і 3-го стовпця в діапазоні A1:D6, тобто значення в комірці C4.

    Щоб отримати уявлення про те, як працює формула INDEX на реальних даних, будь ласка, подивіться на наступний приклад:

    Замість того, щоб вводити номери рядків і стовпців у формулі, ви можете вказати посилання на комірки, щоб отримати більш універсальну формулу: =INDEX($B$2:$D$6, G2, G1)

    Отже, дана формула ІНДЕКС повертає кількість позицій, що знаходяться точно на перетині номера товару, зазначеного в комірці G2 (row_num), і номера тижня, введеного в комірку G1 (column_num).

    Порада. Використання в аргументі масиву абсолютних посилань ($B$2:$D$6) замість відносних (B2:D6) полегшує копіювання формули в інші комірки. Крім того, можна перетворити діапазон в таблицю ( Ctrl + T ) і звертатися до нього по імені таблиці.

    Форма масиву INDEX - що потрібно пам'ятати

    1. Якщо аргумент масиву складається лише з одного рядка або стовпця, то можна вказувати або не вказувати відповідний аргумент row_num або column_num.
    2. Якщо аргумент array включає більше одного рядка, а row_num опущений або дорівнює 0, функція INDEX повертає масив всього стовпця. Аналогічно, якщо масив включає більше одного стовпця, а аргумент column_num опущений або дорівнює 0, формула INDEX повертає весь рядок. Наведемо приклад формули, що демонструє таку поведінку.
    3. Аргументи row_num і column_num повинні посилатися на комірку в масиві, інакше формула INDEX поверне помилку #REF!

    Бланк довідки INDEX

    Довідкова форма функції ИНДЕКС Excel повертає посилання на комірку на перетині вказаного рядка і стовпця.

    INDEX(посилання, номер_рядка, [номер_стовпця], [номер_площі] )
    • посилання - один або декілька діапазонів.

      Якщо ви вводите більше одного діапазону, відокремлюйте діапазони комами, а посилальний аргумент укладайте в круглі дужки, наприклад (A1:B5, D1:F5).

      Якщо кожен діапазон у посиланні містить тільки один рядок або стовпець, відповідний аргумент row_num або column_num є необов'язковим.

    • row_num - номер рядка в діапазоні, з якого потрібно повернути посилання на комірку, аналогічно до форми масиву.
    • column_num - номер стовпця, з якого потрібно повернути посилання на комірку, також працює аналогічно до форми масиву.
    • area_num - необов'язковий параметр, який вказує, який діапазон з аргументу посилання використовувати. Якщо його пропустити, формула INDEX поверне результат для першого діапазону, вказаного в посиланні.

    Наприклад, формула =INDEX((A2:D3, A5:D7), 3, 4, 2) повертає значення комірки D7, яка знаходиться на перетині 3-го рядка і 4-го стовпця у другій області (A5:D7).

    Бланк довідки INDEX - що потрібно пам'ятати

    1. Якщо аргумент row_num або column_num дорівнює нулю (0), формула INDEX повертає посилання на весь стовпець або рядок відповідно.
    2. Якщо не вказано ні номер рядка, ні номер стовпця, то функція INDEX повертає область, вказану в аргументі area_num.
    3. Всі аргументи _num (row_num, column_num і area_num) повинні посилатися на комірку в межах посилання, інакше формула INDEX поверне помилку #REF!

    Обидві формули ІНДЕКС, які ми обговорювали до цього часу, дуже прості і лише ілюструють концепцію. Ваші реальні формули, швидше за все, будуть набагато складнішими, тому давайте розглянемо кілька найбільш ефективних способів використання ІНДЕКС в Excel.

    Як використовувати функцію ІНДЕКС в Excel - приклади формул

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

    Вихідні дані

    У всіх наших формулах ІНДЕКСУ (крім останньої) ми будемо використовувати наведені нижче дані. Для зручності вони зведені в таблицю, яка називається SourceData .

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

    Звичайно, ніщо не заважає при бажанні використовувати звичайні діапазони. У цьому випадку просто замінюється ім'я таблиці SourceData з відповідною прив'язкою до дальності.

    1. отримання N-го елемента зі списку

    Це основне використання функції ІНДЕКС і найпростіша формула, яку можна скласти. Щоб отримати певний елемент зі списку, достатньо написати =INDEX(діапазон, n) де діапазон діапазон комірок або іменований діапазон, та n позиція елемента, який ви хочете отримати.

    При роботі з таблицями Excel можна виділити стовпець за допомогою миші і Excel підтягне назву стовпця разом з назвою таблиці у формулу:

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

    А ось ще один приклад. У нашому прикладі таблиці, щоб знайти 2-гу за величиною планету Сонячної системи, ви сортуєте таблицю за Діаметр та використовувати наступну формулу INDEX:

    =INDEX(SourceData, 2, 3)

    • Масив ім'я таблиці або посилання на діапазон, SourceData у цьому прикладі.
    • Row_num дорівнює 2, тому що ви шукаєте другий пункт у списку, який знаходиться у 2-му
    • Column_num дорівнює 3, тому що Діаметр це 3-й стовпчик у таблиці.

    Якщо ви хочете повернути назву планети, а не її діаметр, змініть column_num на 1. І, звичайно, ви можете використовувати посилання на комірку в аргументах row_num та/або column_num, щоб зробити вашу формулу більш універсальною, як показано на скріншоті нижче:

    2. отримання всіх значень в рядку або стовпці

    Крім отримання однієї комірки, функція ІНДЕКС здатна повернути масив значень з весь ряд або колонка Щоб отримати всі значення з певного стовпця, потрібно опустити аргумент row_num або встановити його в 0. Аналогічно, щоб отримати весь рядок, потрібно передати пусте значення або 0 в column_num.

    Такі ІНДЕКС-формули навряд чи можна використовувати самостійно, оскільки Excel не може вмістити масив значень, що повертаються формулою, в одну комірку, і ви отримаєте помилку #VALUE! Однак, якщо використовувати ІНДЕКС у поєднанні з іншими функціями, такими як СУММЕСЛИ або СРЗНАЧ, ви отримаєте приголомшливі результати.

    Наприклад, за такою формулою можна розрахувати середню температуру планети в Сонячній системі:

    =AVERAGE(INDEX(SourceData, , 4))

    У вищенаведеній формулі аргумент column_num дорівнює 4, оскільки Температура в 4-му стовпчику нашої таблиці. Параметр row_num опускається.

    Аналогічним чином можна знайти мінімальні та максимальні температури:

    =MAX(INDEX(SourceData, , 4))

    =MIN(INDEX(SourceData, , 4))

    І обчислити загальну масу планети (Маса - 2-й стовпчик в таблиці):

    =SUM(INDEX(SourceData, , 2))

    З практичної точки зору, функція INDEX у вищенаведеній формулі є зайвою. Можна просто написати =AVERAGE(діапазон) або =SUM(діапазон) і отримуємо ті ж самі результати.

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

    3. використання INDEX з іншими функціями (SUM, AVERAGE, MAX, MIN)

    З попередніх прикладів може скластися враження, що формула INDEX повертає значення, але насправді вона повертає посилання І цей приклад демонструє справжню природу функції ІНДЕКС в Excel.

    Оскільки результат формули INDEX є посиланням, ми можемо використовувати його в інших функціях, щоб зробити динамічний діапазон Звучить заплутано? Наступна формула все прояснить.

    Нехай у вас є формула =СЕРЕДНЄ(A1:A10) яка повертає середнє арифметичне значень в комірках A1:A10. Замість того, щоб писати діапазон безпосередньо у формулі, можна замінити або A1, або A10, або обидві комірки функціями ІНДЕКС, наприклад, таким чином:

    =AVERAGE(A1 : INDEX(A1:A20,10))

    Обидві наведені вище формули дадуть однаковий результат, оскільки функція ІНДЕКС також повертає посилання на комірку А10 (номер рядка встановлюється рівним 10, номер стовпчика опускається). Різниця полягає в тому, що діапазон у формулі СРЗНАЧ / ІНДЕКС є динамічним, і як тільки ви зміните аргумент номер рядка в функції ІНДЕКС, діапазон, оброблюваний функцією СРЗНАЧ, зміниться, і формула поверне інший результат.

    Очевидно, що шлях формули ІНДЕКСу виглядає надто складним, але він має практичне застосування, як показано на наступних прикладах.

    Приклад 1: Обчислити середнє арифметичне перших N елементів списку

    Припустимо, ви хочете дізнатися середній діаметр N найбільших планет у нашій системі. Отже, ви відсортуєте таблицю за Діаметр стовпчик від найбільшого до найменшого, і використовуйте наступну формулу Середнє/Індекс:

    =AVERAGE(C5 : INDEX(SourceData[Diameter], B1))

    Приклад 2. сума позицій між зазначеними двома позиціями

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

    Наприклад, наступна формула повертає суму значень в полі Діаметр стовпчик між двома елементами, зазначеними в комірках В1 та В2:

    =SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))

    4. формула INDEX для створення динамічних діапазонів і випадаючих списків

    Як це часто буває, коли ви починаєте впорядковувати дані на робочому аркуші, ви можете не знати, скільки записів у вас буде в кінцевому підсумку. Це не стосується нашої таблиці планет, яка здається повною, але хто знає...

    У будь-якому випадку, якщо у вас змінюється кількість елементів в даному стовпчику, скажімо, з A1 до A n Ви можете створити динамічний іменований діапазон, який включатиме всі комірки з даними. При цьому діапазон повинен автоматично змінюватися при додаванні нових елементів або видаленні деяких з існуючих. Наприклад, якщо на даний момент у вас є 10 елементів, ваш іменований діапазон має вигляд A1:A10. Якщо ви додаєте новий запис, іменований діапазон автоматично розширюється до A1:A11, а якщо ви передумаєте і видалите додані дані, то діапазон автоматично розшириться до A1:A11,діапазон автоматично повертається до A1:A10.

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

    Одним із способів визначення динамічного діапазону є використання функції Excel OFFSET:

    =OFFSET(Назва_аркуша!$A$1, 0, 0, COUNTA(Назва_аркуша!$A:$A), 1)

    Іншим можливим рішенням є використання Excel INDEX разом з COUNTA:

    =Назва_аркуша!$A$1:ІНДЕКС(Назва_аркуша!$A:$A, COUNTA(Назва_аркуша!$A:$A))

    В обох формулах А1 - це комірка, що містить перший елемент списку, і динамічний діапазон, отриманий за обома формулами, буде ідентичним.

    Різниця в підходах: якщо функція OFFSET переміщується від початкової точки на певну кількість рядків і/або стовпців, то функція INDEX знаходить комірку на перетині певного рядка і стовпця. Функція COUNTA, що використовується в обох формулах, отримує кількість непорожніх комірок в стовпці, що цікавить.

    У цьому прикладі в стовпці А є 9 непустих комірок, тому функція COUNTA повертає 9. Отже, функція INDEX повертає $A$9, яка є останньою використаною коміркою в стовпці А (зазвичай функція INDEX повертає значення, але в цій формулі оператор посилання (:) змушує її повертати посилання). А оскільки $A$1 є нашою відправною точкою, то кінцевим результатом формули є діапазон $A$1:$A$9.

    Наступний скріншот демонструє, як можна використовувати таку формулу індексу для створення динамічного випадаючого списку.

    Порада. Найпростіший спосіб створити динамічно оновлюваний випадаючий список - зробити іменований список на основі таблиці. У цьому випадку вам не знадобляться складні формули, оскільки таблиці Excel самі по собі є динамічними діапазонами.

    Ви також можете використовувати функцію ІНДЕКС для створення залежних випадаючих списків, і наступний підручник пояснює кроки: Створення каскадного випадаючого списку в Excel.

    5. потужні Vlookups з INDEX / MATCH

    Виконання вертикального пошуку - ось де функція ІНДЕКС дійсно блищить. Якщо ви коли-небудь пробували використовувати функцію VLOOKUP в Excel, ви добре знаєте про її численні обмеження, такі як неможливість витягувати значення зі стовпців зліва від шуканого стовпця або обмеження в 255 символів для значення, що шукається.

    Зв'язок INDEX / MATCH багато в чому перевершує VLOOKUP:

    • Ніяких проблем з лівими вьюшками.
    • Розмір шуканого значення не обмежений.
    • Сортування не потрібне (VLOOKUP з приблизним збігом вимагає сортування стовпця пошуку за зростанням).
    • Ви можете вставляти і видаляти стовпці в таблиці без оновлення кожної пов'язаної з ними формули.
    • І останнє, але не менш важливе: INDEX / MATCH не уповільнює ваш Excel, як це роблять кілька Vlookups.

    Ви використовуєте INDEX / MATCH наступним чином:

    =INDEX ( стовпець для повернення значення з , (MATCH ( шукане значення , стовпчик для пошуку , 0))

    Наприклад, якщо ми перевернемо нашу вихідну таблицю так, щоб Назва планети стає крайнім правим стовпчиком, формула INDEX / MATCH все одно безпомилково знаходить відповідне значення з лівого стовпчика.

    Для отримання додаткових порад та прикладу формули, будь ласка, зверніться до підручника Excel ІНДЕКС / СПІВПАДІННЯ.

    6. формула INDEX в Excel для отримання 1 діапазону зі списку діапазонів

    Ще одним розумним і потужним застосуванням функції ІНДЕКС в Excel є можливість отримати один діапазон зі списку діапазонів.

    Припустимо, у вас є кілька списків з різною кількістю елементів у кожному. Хочете вірте, хочете ні, але ви можете розрахувати середнє значення або підсумувати значення в будь-якому обраному діапазоні за допомогою однієї формули.

    По-перше, для кожного списку створюється іменований діапазон, нехай це буде ПланетиD і MoonsD у цьому прикладі:

    Сподіваюсь, наведене вище зображення пояснює логіку назв полігонів :) До речі, на Місяці таблиця далеко не повна, в нашій Сонячній системі відомо 176 природних супутників, тільки у Юпітера на даний момент 63, і рахунок йде на них. Для цього прикладу я вибрав випадкові 11, ну... може не зовсім випадкові - супутники з найкрасивішими назвами : )

    Вибачте за відступ, повернемося до нашої формули ІНДЕКСУ. Припустимо, що ПланетиD це ваш діапазон 1 і MoonsD це діапазон 2, а комірка В1 - номер діапазону, то для обчислення середнього значення у вибраному іменованому діапазоні можна використати наступну формулу Індекс для обчислення середнього значення у вибраному іменованому діапазоні:

    =AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))

    Зверніть увагу, що зараз ми використовуємо форму Посилання функції ІНДЕКС, і число в останньому аргументі (область_номер) вказує формулі, який діапазон вибирати.

    На скріншоті нижче area_num (комірка B1) має значення 2, тому формула обчислює середній діаметр Місяці тому що діапазон MoonsD посідає 2-е місце за аргументацією.

    Якщо ви працюєте з декількома списками і не хочете турбуватися про запам'ятовування пов'язаних з ними номерів, ви можете використовувати вкладену функцію ЯКЩО, яка зробить це за вас:

    =AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))

    У функції ЕСЛИ ви використовуєте деякі прості та легкі для запам'ятовування імена списків, які ви хочете, щоб користувачі вводили в комірку B1 замість чисел. Будь ласка, майте це на увазі, щоб формула працювала коректно, текст в B1 повинен бути точно таким же (без урахування регістру), як і в параметрах ЕСЛИ, інакше ваша формула індексу буде видавати помилку #VALUE.

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

    Нарешті, щоб зробити формулу ІНДЕКСу абсолютно ідеальною, ви можете вкласти її у функцію IFERROR, яка буде пропонувати користувачеві вибрати елемент зі списку, що випадає, якщо вибір ще не зроблено:

    =IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list!")

    Ось так можна використовувати формули ІНДЕКС в Excel. Сподіваюся, ці приклади показали вам, як використовувати потенціал функції ІНДЕКС у ваших робочих таблицях. Дякую за увагу!

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