Зміст
У цьому посібнику ви знайдете ряд прикладів формул, які демонструють найбільш ефективне використання ІНДЕКС в 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 - що потрібно пам'ятати
- Якщо аргумент масиву складається лише з одного рядка або стовпця, то можна вказувати або не вказувати відповідний аргумент row_num або column_num.
- Якщо аргумент array включає більше одного рядка, а row_num опущений або дорівнює 0, функція INDEX повертає масив всього стовпця. Аналогічно, якщо масив включає більше одного стовпця, а аргумент column_num опущений або дорівнює 0, формула INDEX повертає весь рядок. Наведемо приклад формули, що демонструє таку поведінку.
- Аргументи 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 - що потрібно пам'ятати
- Якщо аргумент row_num або column_num дорівнює нулю (0), формула INDEX повертає посилання на весь стовпець або рядок відповідно.
- Якщо не вказано ні номер рядка, ні номер стовпця, то функція INDEX повертає область, вказану в аргументі area_num.
- Всі аргументи _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. Сподіваюся, ці приклади показали вам, як використовувати потенціал функції ІНДЕКС у ваших робочих таблицях. Дякую за увагу!