Excel название столбцов где есть значение

Use TEXTJOIN as an Array Formula:

=TEXTJOIN(",",TRUE,INDEX(A1:D1,N(IF(1,MODE.MULT(AGGREGATE(15,6,COLUMN(A2:D4)/(A2:D4=F2),ROW(INDEX(AAA:AAA,1):INDEX(AAA:AAA,COUNTIF(A2:D4,F2))))*{1,1})))))

Being an array formula it needs to be confirmed with Ctrl-Shift-Enter, instead of Enter when exiting edit mode. If done correctly Excel will put {} around the formula.

enter image description here

Note: TEXTJOIN is available with Office 365 Excel and not earlier versions.


If you do not have Office 365 Excel then you will need some helper columns.

In the first Helper cell put:

 =IF(ISNUMBER(MATCH($F$4,A:A,0)),"," & A1,"")

Then copy over the same number of columns as your data.

Then use this to concatenate:

=MID(H4&I4&J4&K4,2,999)

Adding cells for more columns.

enter image description here

В этом руководстве мы будем искать определенное значение в строках диапазона данных, а затем возвращать соответствующий заголовок столбца соответствующей ячейки строки.

Получить заголовок столбца на основе определенного значения строки с формулой


Получить заголовок столбца на основе определенного значения строки с формулой

Чтобы получить заголовок столбца на основе определенного значения строки в Excel, вам может помочь приведенная ниже формула.

1. Выберите пустую ячейку для вывода заголовка, скопируйте в нее формулу ниже и нажмите Enter ключ, чтобы получить соответствующий заголовок.

=INDEX($C$2:$G$2,SUMPRODUCT(MAX(($C$3:$G$6=I3)*(COLUMN($C$3:$G$6))))-COLUMN($C$2)+1)

Примечание: В формуле $ C $ 2: $ G $ 2 это диапазон заголовка, $ C $ 3: $ G $ 6 содержит ли диапазон конкретное значение, в котором вы будете искать, I3 — это ячейка, содержащая значение критерия, которое вы найдете в диапазоне $ C $ 3: $ G $ 6, а $ C $ 2 — это первый столбец диапазона $ C $ 3: $ G $ 6. Пожалуйста, измените их под свои нужды.


Статьи по теме


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя

вкладка kte 201905


Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (18)


Номинальный 4.5 из 5


·


рейтинги 1

Наименование столбцов по значению в таблице

Zhuravlev_IV

Дата: Среда, 05.07.2017, 10:44 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Добрый день!

Есть таблица данных с названием столбцов. Нужно по одной строке вывести в ячейку названия столбцов там где есть значения. Решил данную задачу способом в примере.

Код

=ИНДЕКС($E$3:$K$3;1;НАИМЕНЬШИЙ(ЕСЛИ($E12:$K12<>»»;СТОЛБЕЦ($E$3:$K$3)-4;»»);1))

, где в наименьшем значение к- указано вручную.

Можно ли решить данную задачу другим способом? Или как-то автоматизировать индекс k?

П.С.: Пожалуйста, только не прибегайте к VBA..

К сообщению приложен файл:

0570980.xlsx
(10.3 Kb)


Журавлев Иван

Сообщение отредактировал Zhuravlev_IVСреда, 05.07.2017, 10:57

 

Ответить

AlexM

Дата: Среда, 05.07.2017, 10:50 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Исправьте нарушение. Формула должна быть в тегах



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 10:55 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

AlexM, первый раз формулу пишу в тексте, сорри)


Журавлев Иван

 

Ответить

AlexM

Дата: Среда, 05.07.2017, 11:02 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Код

=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ЕСЛИ(E5<>»»;E$3&» «;»»)&ЕСЛИ(F5<>»»;F$3&» «;»»)&ЕСЛИ(G5<>»»;G$3&» «;»»)&ЕСЛИ(H5<>»»;H$3&» «;»»)&ЕСЛИ(I5<>»»;I$3&» «;»»)&ЕСЛИ(J5<>»»;J$3&» «;»»)&ЕСЛИ(K5<>»»;K$3;»»));» «;»;»&СИМВОЛ(10))



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

_Boroda_

Дата: Среда, 05.07.2017, 11:03 |
Сообщение № 5

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Вот такой монстр дурацкий получился. Это если я вообще правильно вопрос понял

Код

=ПСТР(ЕСЛИ(E5;»;»&СИМВОЛ(10)&E$3;»»)&ЕСЛИ(F5;»;»&СИМВОЛ(10)&F$3;»»)&ЕСЛИ(G5;»;»&СИМВОЛ(10)&G$3;»»)&ЕСЛИ(H5;»;»&СИМВОЛ(10)&H$3;»»)&ЕСЛИ(I5;»;»&СИМВОЛ(10)&I$3;»»)&ЕСЛИ(J5;»;»&СИМВОЛ(10)&J$3;»»)&ЕСЛИ(K5;»;»&СИМВОЛ(10)&K$3;»»);3;999)

Кстати да, с ПОДСТАВИТЬ лучше

Код

=ПОДСТАВИТЬ(ПСТР(ЕСЛИ(E5;»@»&E$3;»»)&ЕСЛИ(F5;»@»&F$3;»»)&ЕСЛИ(G5;»@»&G$3;»»)&ЕСЛИ(H5;»@»&H$3;»»)&ЕСЛИ(I5;»@»&I$3;»»)&ЕСЛИ(J5;»@»&J$3;»»)&ЕСЛИ(K5;»@»&K$3;»»);2;999);»@»;»;»&СИМВОЛ(10))


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 11:08 |
Сообщение № 6

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

П.С.: столбцов в таблице может быть до 300 шт., а может и больше и их количество переменно.


Журавлев Иван

 

Ответить

_Boroda_

Дата: Среда, 05.07.2017, 11:18 |
Сообщение № 7

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

в таблице может быть до 300 шт

Предупреждать надо

Где-то здесь функция пользователя была. Сходу не нашел поиском, проще самому написать
[vba]

Код

Function Skley(d1_ As Range, d2_ As Range, p_)
‘d1 — массив с цифрами, d2 — массив с текстом, p — разделитель
    Dim n_, s_’это всякая ненужная фигня
    For Each d_ In d1_’перебираем все ячейки из d1 и из каждой по очереди присваиваем ее значение переменной d
        n_ = n_ + 1′ счетчик таких ячеек
        If d_ <> «» Then’ если d не пусто
            s_ = s_ & p_ & d2_(n_)’к предыдущему склеенному значению приклеиваем справа разделитель p и соответствующее значение из диапазона d2
        End If
    Next d_
    Skley = Mid(s_, Len(p_) + 1, Len(s_))’результат функции равен =ПСТР(s_ ; ДЛСТР(p_) +1 ; ДЛСТР(s_))
End Function

[/vba]


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 11:21 |
Сообщение № 8

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010


признаю, не прав)

П.С.: Пожалуйста, только не прибегайте к VBA..

и про это поздно предупредил)

не хочется прибегать к силам ВБА, но видать циклить по другому нельзя, да?..


Журавлев Иван

 

Ответить

_Boroda_

Дата: Среда, 05.07.2017, 11:25 |
Сообщение № 9

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 11:30 |
Сообщение № 10

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Спасибо за решения, и наводку на тему! victory


Журавлев Иван

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 11:55 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

AlexM, _Boroda_,
а скажите, пожалуйста, ваше мнение по поводу моего решения задачи?


Журавлев Иван

 

Ответить

_Boroda_

Дата: Среда, 05.07.2017, 13:01 |
Сообщение № 12

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Ну, как Вам сказать? Работает — значит, уже хорошо. Немного длинновато, а по сути — это именно та формула, что мы с Алексеем предложили, только немного иначе написанная


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 13:13 |
Сообщение № 13

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

_Boroda_, Просто когда диапазон столбцов за 200 шт. не удобно вручную условия к ячейкам ставить.


Журавлев Иван

 

Ответить

_Boroda_

Дата: Среда, 05.07.2017, 13:17 |
Сообщение № 14

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Вот именно поэтому я Вам и дал пользовательскую функцию. И даже файл приложил, в которой продемонстрировал ее работу


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 13:21 |
Сообщение № 15

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

_Boroda_, да, огромное Вам спасибо за файл. Проблема во мне, я VBA на простейшем уровне не знаю… не учили в своё время, а сейчас понять по литературе без применения в работе уже сложновато. Мне формулы ближе чем программирование.

С программированием нужно мозги в кучку собрать чтоб блок-схему представить, а в нужный момент почему-то мозг отказывается работать…


Журавлев Иван

Сообщение отредактировал Zhuravlev_IVСреда, 05.07.2017, 13:28

 

Ответить

_Boroda_

Дата: Среда, 05.07.2017, 14:00 |
Сообщение № 16

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

sboy

Дата: Среда, 05.07.2017, 14:16 |
Сообщение № 17

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2566


Репутация:

724

±

Замечаний:
0% ±


Excel 2010

[offtop]

Dim n_, s_’это всякая ненужная фигня

:D :D :D


Яндекс: 410016850021169

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 14:20 |
Сообщение № 18

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Ещё раз спасибо Вам огромное за разъяснения! pray но проблема в том что я не знаю функций VBA, их параметров и принцип написания. Счетчик знаю как работает, мыслить логически это и есть строить в черепной коробке схемы, что за чем идёт, в какой последовательности и вяжется ли вообще это с логикой.


Журавлев Иван

 

Ответить

Zhuravlev_IV

Дата: Среда, 05.07.2017, 14:23 |
Сообщение № 19

Группа: Пользователи

Ранг: Участник

Сообщений: 53


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Цитата _Boroda_, 05.07.2017 в 11:18, в сообщении № 7 ( писал(а)):
Dim n_, s_’это всякая ненужная фигня

Ага)) с переменными мы немного знакомы из работы в Mathcad..
А в древнее время был опыт с ассемблер и паскаль, но это было так давно что уже всё стёрлось…


Журавлев Иван

 

Ответить

При создании таблицы Excel Excel присваивает имя таблице и каждому заголовку столбца в таблице. Можно сделать так, чтобы при добавлении формул эти имена отображались автоматически и ссылки на ячейки в таблице можно было выбрать вместо ввода вручную. Вот пример того, что происходит в Excel:

Прямая ссылка на ячейки

Имена таблицы и столбцов в Excel

=СУММ(C2:C7)

=СУММ(ОтделПродаж[ОбъемПродаж])

Это сочетание имен таблицы и столбца называется структурированной ссылкой. Имена в структурированных ссылках корректируются при добавлении данных в таблицу или их удалении.

Структурированные ссылки также появляются, когда вы создаете формулу вне таблицы Excel, которая ссылается на данные таблицы. Ссылки могут упростить поиск таблиц в крупной книге.

Чтобы добавить структурированные ссылки в формулу, можно щелкнуть ячейки таблицы, на которые нужно сослаться, а не вводить ссылку непосредственно в формуле. Давайте используем следующий пример данных, чтобы ввести формулу, которая автоматически использует структурированные ссылки для расчета суммы комиссии за продажу.

Менеджер по продажам

Область

Сумма продаж

ПроцентКомиссии

ОбъемКомиссии

Владимир

Северный

260

10 %

Сергей

Южный

660

15 %

Мария

Восточный

940

15 %

Алексей

Западный

410

12 %

Юлия

Северный

800

15 %

Вадим

Южный

900

15 %

  1. Скопируйте пример данных из приведенной выше таблицы, включая заголовки столбцов, и вставьте их в ячейку A1 нового листа Excel.

  2. Чтобы создать таблицу, выделите любую ячейку в диапазоне данных и нажмите клавиши CTRL+T.

  3. Установите флажок Моя таблица с заголовками и нажмите кнопку ОК.

  4. В ячейке E2 введите знак равенства (=) и щелкните ячейку C2.

    В строке формул после знака равенства появится структурированная ссылка [@[ОбъемПродаж]].

  5. Введите звездочку (*) непосредственно после закрывающей скобки и щелкните ячейку D2.

    В строке формул после звездочки появится структурированная ссылка [@[ПроцентКомиссии]].

  6. Нажмите клавишу ВВОД.

    Excel автоматически создает вычисляемый столбец и копирует формулу вниз по нему, корректируя ее для каждой строки.

Что произойдет, если я буду использовать прямые ссылки на ячейки?

Если вы введете в вычисляемый столбец прямые ссылки на ячейки, может быть сложнее понять, что вычисляет формула.

  1. В образце листа щелкните ячейку E2.

  2. В строке формул введите =C2*D2 и нажмите клавишу ВВОД.

Обратите внимание на то, что хотя Excel копирует формулу вниз по столбцу, структурированные ссылки не используются. Если, например, вы добавите столбец между столбцами C и D, вам придется исправлять формулу.

Как изменить имя таблицы?

При создании таблицы Excel ей назначается имя по умолчанию («Таблица1», «Таблица2» и т. д.), но его можно изменить, чтобы сделать более осмысленным.

  1. Выберите любую ячейку в таблице, чтобы отобразить вкладку Работа с таблицами > Конструктор на ленте.

  2. Введите нужное имя в поле Имя таблицы и нажмите клавишу ВВОД.

В этом примере мы используем имя ОтделПродаж.

При выборе имени таблицы соблюдайте такие правила:

  • Используйте допустимые символы.  Имя всегда должно начинаться с буквы, символа подчеркивания (_) или обратной косой черты (). Остальная часть имени может включать в себя буквы, цифры, точки и символы подчеркивания. В имени нельзя использовать латинские буквы C, c, R и r, так как они служат для быстрого выделения столбца или строки с активной ячейкой при вводе их в поле Имя или Перейти.

  • Не используйте ссылки на ячейки.  Имена не могут иметь такой же вид, как ссылки на ячейки, например Z$100 или R1C1.

  • Не используйте пробелы для разделения слов.  В имени нельзя использовать пробелы. Можно использовать символ подчеркивания (_) и точку (.). Примеры допустимых имен: ОтделПродаж, Налог_на_продажи, Первый.квартал.

  • Используйте не более 255 знаков. Имя таблицы может содержать не более 255 знаков.

  • Использование уникальных имен таблиц Повторяющиеся имена не допускаются. Excel не различает символы в верхнем и нижнем регистрах в именах, поэтому если вы введете «Продажи», но уже имеете другое имя «SALES» в той же книге, вам будет предложено выбрать уникальное имя.

  • Использование идентификатора объекта  Если вы планируете использовать сочетание таблиц, сводных таблиц и диаграмм, рекомендуется префиксировать имена с помощью типа объекта. Например, tbl_Sales для таблицы продаж, pt_Sales для сводной таблицы продаж и chrt_Sales для диаграммы продаж или ptchrt_Sales для сводной диаграммы продаж. При этом все имена будут храниться в упорядоченном списке в диспетчере имен.

Правила синтаксиса структурированных ссылок

Вы также можете ввести или изменить структурированные ссылки вручную в формуле, но это поможет понять синтаксис структурированных ссылок. Рассмотрим такую формулу:

=СУММ(ОтделПродаж[[#Итого],[ОбъемПродаж]],ОтделПродаж[[#Данные],[ОбъемКомиссии]])

В этой формуле используются указанные ниже компоненты структурированной ссылки.

  • Имя таблицы:   
    DeptSales — это пользовательское имя таблицы. Он ссылается на данные таблицы без каких-либо строк заголовка или итогов. Вы можете использовать имя таблицы по умолчанию, например Table1, или изменить его, чтобы использовать пользовательское имя.

  • Описатель столбцов:   
    [Сумма продаж]
    и
    [Сумма комиссии] — это описатели столбцов, которые используют имена столбцов, которые они представляют. Они ссылаются на данные столбца без заголовка столбца или строки итогов. Всегда заключайте описатели в квадратные скобки, как показано ниже.

  • Описатель элемента:   
    [#Totals] и [#Data] — это специальные описатели элементов, которые ссылаются на определенные части таблицы, например на строку итогового значения.

  • Табличный описатель:   
    [#Totals], [Сумма продаж]] и [[#Data],[Сумма комиссии]] являются табличными описателями, представляющими внешние части структурированной ссылки. Внешние ссылки следуют за именем таблицы и заключают их в квадратные скобки.

  • Структурированная ссылка:   
    (DeptSales[[#Totals],[Sales Amount]] и DeptSales[[#Data],[Commission Amount]] представляют собой структурированные ссылки, представленные строкой, которая начинается с имени таблицы и заканчивается описателем столбца.

При создании или изменении структурированных ссылок вручную учитывайте перечисленные ниже правила синтаксиса.

  • Заключайте указатели в квадратные скобки.    Все указатели таблиц, столбцов и специальных элементов должны быть заключены в парные скобки ([ ]). Указатель, содержащий другие указатели, требует наличия таких же внешних скобок, в которые будут заключены внутренние скобки других указателей. Например: =DeptSales[[Sales Person]:[Region]]

  • Все заголовки столбцов — это текстовые строки.    Но для них не требуются кавычки, если они используются в структурированной ссылке. Числа или даты, например 2014 или 01.01.2014, также считаются текстовыми строками. Нельзя использовать выражения с заголовками столбцов. Например, выражение ОтделПродажСводкаФГ[[2014]:[2012]] недопустимо.

Заключайте в квадратные скобки заголовки столбцов, содержащие специальные знаки.    Если присутствуют специальные знаки, весь заголовок столбца должен быть заключен в скобки, а это означает, что для указателя столбца потребуются двойные скобки. Пример: =ОтделПродажСводкаФГ[[Итого $]]

Дополнительные скобки в формуле нужны при наличии таких специальных знаков:

  • TAB

  • Канал строки

  • Возврат каретки

  • Запятая (,)

  • Двоеточие (:)

  • Точка (.)

  • Левая скобка ([)

  • Правая скобка (])

  • Знак фунта (#)

  • Одна кавычка (‘)

  • Двойная кавычка («)

  • Левая фигурная скобка ({)

  • Правая фигурная скобка (})

  • Знак доллара ($)

  • Caret (^)

  • Амперсанд (&)

  • Звездочка (*)

  • Знак «плюс» (+)

  • Знак равенства (=)

  • Знак минус (-)

  • Больше символа (>)

  • Меньше символа (<)

  • Знак деления (/)

  • При знаке (@)

  • Обратная косая черта ()

  • Восклицательный знак (!)

  • Левая скобка (()

  • Правая скобка ())

  • Знак процента (%)

  • Вопросительный знак (?)

  • Обратный тик (‘)

  • Точка с запятой (;)

  • Тильда (~)

  • Подчеркивание (_)

  • Используйте escape-символы для некоторых специальных знаков в заголовках столбцов.    Перед некоторыми знаками, имеющими специфическое значение, необходимо ставить одинарную кавычку (‘), которая служит escape-символом. Пример: =ОтделПродажСводкаФГ[‘#Элементов]

Ниже приведен список специальных символов, которым требуется escape-символ (‘) в формуле:

  • Левая скобка ([)

  • Правая скобка (])

  • Знак фунта(#)

  • Одна кавычка (‘)

  • При знаке (@)

Используйте пробелы для повышения удобочитаемости структурированных ссылок.    С помощью пробелов можно повысить удобочитаемость структурированной ссылки. Пример: =ОтделПродаж[ [Продавец]:[Регион] ] или =ОтделПродаж[[#Заголовки], [#Данные], [ПроцентКомиссии]].

Рекомендуется использовать один пробел:

  • После первой левой скобки ([)

  • Перед последней правой скобкой (]).

  • После запятой.

Операторы ссылок

Перечисленные ниже операторы ссылок служат для составления комбинаций из указателей столбцов, что позволяет более гибко задавать диапазоны ячеек.

Эта структурированная ссылка:

Ссылается на:

Используя:

Диапазон ячеек:

=ОтделПродаж[[Продавец]:[Регион]]

Все ячейки в двух или более смежных столбцах

: (двоеточие) — оператор ссылки

A2:B7

=ОтделПродаж[ОбъемПродаж],ОтделПродаж[ОбъемКомиссии]

Сочетание двух или более столбцов

, (запятая) — оператор объединения

C2:C7, E2:E7

=ОтделПродаж[[Продавец]:[ОбъемПродаж]] ОтделПродаж[[Регион]:[ПроцентКомиссии]]

Пересечение двух или более столбцов

  (пробел) — оператор пересечения

B2:C7

Указатели специальных элементов

Чтобы сослаться на определенную часть таблицы, например на строку итогов, в структурированных ссылках можно использовать перечисленные ниже указатели специальных элементов.

Этот указатель специального элемента:

Ссылается на:

#Все

Вся таблица, включая заголовки столбцов, данные и итоги (если они есть).

#Данные

Только строки данных.

#Заголовки

Только строка заголовка.

#Итого

Только строка итога. Если ее нет, будет возвращено значение null.

#Эта строка

ИЛИ

@

ИЛИ

@[Имя столбца]

Только ячейки в той же строке, где располагается формула. Эти указатели нельзя сочетать с другими указателями специальных элементов. Используйте их для установки неявного пересечения в ссылке или для переопределения неявного пересечения и ссылки на отдельные значения из столбца.

Excel автоматически заменяет указатели «#Эта строка» более короткими указателями @ в таблицах, содержащих больше одной строки данных. Но если в таблице только одна строка, Excel не заменяет указатель «#Эта строка», и это может привести к тому, что при добавлении строк вычисления будут возвращать непредвиденные результаты. Чтобы избежать таких проблем при вычислениях, добавьте в таблицу несколько строк, прежде чем использовать формулы со структурированными ссылками.

Определение структурированных ссылок в вычисляемых столбцах

Когда вы создаете вычисляемый столбец, для формулы часто используется структурированная ссылка. Она может быть неопределенной или полностью определенной. Например, чтобы создать вычисляемый столбец с именем Commission Amount, который вычисляет сумму комиссии в долларах, можно использовать следующие формулы:

Тип структурированной ссылки

Пример

Примечания

Неопределенная

=[ОбъемПродаж]*[ПроцентКомиссии]

Перемножает соответствующие значения из текущей строки.

Полностью определенная

=ОтделПродаж[ОбъемПродаж]*ОтделПродаж[ПроцентКомиссии]

Перемножает соответствующие значения из каждой строки обоих столбцов.

Общее правило таково: если структурированная ссылка используется внутри таблицы, например, при создании вычисляемого столбца, то она может быть неопределенной, но вне таблицы нужно использовать полностью определенную структурированную ссылку.

Примеры использования структурированных ссылок

Ниже приведены примеры использования структурированных ссылок.

Эта структурированная ссылка:

Ссылается на:

Диапазон ячеек:

=ОтделПродаж[[#Все],[ОбъемПродаж]]

Все ячейки в столбце «ОбъемПродаж».

C1:C8

=ОтделПродаж[[#Заголовки],[ПроцентКомиссии]]

Заголовок столбца «ПроцентКомиссии».

D1

=ОтделПродаж[[#Итого],[Регион]]

Итог столбца «Регион». Если нет строки итогов, будет возвращено значение ноль.

B8

=ОтделПродаж[[#Все],[ОбъемПродаж]:[ПроцентКомиссии]]

Все ячейки в столбцах «ОбъемПродаж» и «ПроцентКомиссии».

C1:D8

=ОтделПродаж[[#Данные],[ПроцентКомиссии]:[ОбъемКомиссии]]

Только данные в столбцах «ПроцентКомиссии» и «ОбъемКомиссии».

D2:E7

=ОтделПродаж[[#Заголовки],[Регион]:[ОбъемКомиссии]]

Только заголовки столбцов от «Регион» до «ОбъемКомиссии».

B1:E1

=ОтделПродаж[[#Итого],[ОбъемПродаж]:[ОбъемКомиссии]]

Итоги столбцов от «ОбъемПродаж» до «ОбъемКомиссии». Если нет строки итогов, будет возвращено значение null.

C8:E8

=ОтделПродаж[[#Заголовки],[#Данные],[ПроцентКомиссии]]

Только заголовок и данные столбца «ПроцентКомиссии».

D1:D7

=ОтделПродаж[[#Эта строка], [ОбъемКомиссии]]

ИЛИ

=ОтделПродаж[@ОбъемКомиссии]

Ячейка на пересечении текущей строки и столбца Commission Amount. При использовании в той же строке, что и заголовок или итоговая строка, возвращается ошибка #VALUE! .

Если ввести длинную форму этой структурированной ссылки (#Эта строка) в таблице с несколькими строками данных, Excel автоматически заменит ее укороченной формой (со знаком @). Две эти формы идентичны.

E5 (если текущая строка — 5)

Методы работы со структурированными ссылками

При работе со структурированными ссылками учитывайте следующее.

  • Автозаполнение формул    может оказаться очень полезным при вводе структурированных ссылок для соблюдения правил синтаксиса. Дополнительные сведения см. в статье Использование автозаполнения формул.

  • Решите, следует ли создавать структурированные ссылки для таблиц в полувыборах    По умолчанию при создании формулы при щелчке диапазона ячеек в таблице выбирается полуэлемерная ячейка и автоматически вводится структурированная ссылка вместо диапазона ячеек в формуле. Псевдовыбор облегчает ввод структурированной ссылки. Это поведение можно включить или отключить, установив или снимите флажок Использовать имена таблиц в формулах в диалоговом окне Параметры файлов > > Формулы > Работа с формулами.

  • Использование книг с внешними ссылками на таблицы Excel в других книгах    Если книга содержит внешнюю ссылку на таблицу Excel в другой книге, эта связанная исходная книга должна быть открыта в Excel, чтобы избежать ошибок #REF! в целевой книге, содержащей ссылки. Если сначала открыть целевую книгу и #REF! появятся ошибки, они будут устранены при открытии исходной книги. Если сначала открыть книгу с исходным кодом, коды ошибок не будут отображаться.

  • Преобразование диапазона в таблицу и таблицы в диапазон.    При преобразовании таблицы в диапазон все ссылки на ячейки изменяются на эквивалентные абсолютные ссылки стиля A1. При преобразовании диапазона в таблицу Excel не изменяет автоматически ссылки на ячейки этого диапазона на эквивалентные структурированные ссылки.

  • Отключение заголовков столбцов.    Вы можете включить и отключить заголовки столбцов таблицы на вкладке Конструктор таблицы > строке заголовков. Если отключить заголовки столбцов таблицы, структурированные ссылки, использующие имена столбцов, не затрагиваются, и вы по-прежнему можете использовать их в формулах. Структурированные ссылки, которые ссылаются непосредственно на заголовки таблицы (например, =DeptSales[[#Headers],[%Commission]]), приведут к #REF.

  • Добавление и удаление столбцов и строк в таблице.    Так как диапазоны табличных данных часто меняются, ссылки на ячейки для структурированных ссылок настраиваются автоматически. Например, если вы используете имя таблицы для подсчета всех ячеек в ней, и добавляете строку данных, ссылка на ячейки автоматически меняется.

  • Переименование таблицы или столбца.    Если переименовать столбец или таблицу, в приложении Excel автоматически изменится название этой таблицы или заголовок столбца, используемые во всех структурированных ссылках книги.

  • Перемещение, копирование и заполнение структурированных ссылок    Все структурированные ссылки остаются неизменными при копировании или перемещении формулы, которая использует структурированную ссылку.

    Примечание: Копирование структурированной ссылки и заполнение структурированной ссылки — это не одно и то же. При копировании все структурированные ссылки остаются неизменными, а при заполнении формулы полностью структурированные ссылки корректируют описатели столбцов, как последовательность, как показано в следующей таблице.

Направление заполнения:

И при заполнении нажимаете
:

Выполняется действие:

Вверх или вниз

Не нажимать

Указатели столбцов не будут изменены.

Вверх или вниз

CTRL

Указатели столбцов настраиваются как ряд.

Вправо или влево

Нет

Указатели столбцов настраиваются как ряд.

Вверх, вниз, вправо или влево

SHIFT

Вместо перезаписи значений в текущих ячейках будут перемещены текущие значения ячеек и вставлены указатели столбцов.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Статьи по теме

Общие сведения о таблицах

Excel Видео: создание и форматирование таблицы
Excel Итог данных в таблице
Excel Форматирование таблицы
Excel Изменение размера таблицы путем добавления или удаления строк и столбцов
Фильтрация данных в диапазоне или таблице
Преобразование таблицы в диапазон
Проблемы
с совместимостью таблиц ExcelЭкспорт таблицы Excel в SharePoint
Общие сведения о формулах в Excel

Skip to content

ИНДЕКС ПОИСКПОЗ как лучшая альтернатива ВПР

В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР.

В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить более сложные примеры формул ВПР опытным пользователям. А теперь я постараюсь если не отговорить вас от использования ВПР, то хотя бы показать вам альтернативный способ поиска нужных значений в Excel.

  • Краткий обзор функций ИНДЕКС и ПОИСКПОЗ
  • Как использовать формулу ИНДЕКС ПОИСКПОЗ
  • ИНДЕКС+ПОИСКПОЗ вместо ВПР?
  • Поиск справа налево
  • Двусторонний поиск в строках и столбцах
  • ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
  • Как найти среднее, максимальное и минимальное значение
  • Что делать с ошибками поиска?

Для чего это нужно? Потому что функция ВПР имеет множество ограничений, которые могут помешать вам получить желаемый результат во многих ситуациях. С другой стороны, комбинация ПОИСКПОЗ ИНДЕКС более гибкая и имеет много замечательных возможностей, которые во многих отношениях превосходят ВПР.

Функции Excel ИНДЕКС и ПОИСКПОЗ — основы

Поскольку целью этого руководства является демонстрация альтернативного способа выполнения поиска в Excel с использованием комбинации функций ИНДЕКС и ПОИСКПОЗ, мы не будем подробно останавливаться на их синтаксисе и использовании. Тем более, что это подробно рассмотрено в других статьях, ссылки на которые вы можете найти в конце этого руководства. Мы рассмотрим лишь минимум, необходимый для понимания общей идеи, а затем подробно рассмотрим примеры формул, раскрывающие все преимущества использования ПОИСКПОЗ и ИНДЕКС вместо ВПР.

Функция ИНДЕКС

Функция ИНДЕКС (в английском варианте – INDEX) возвращает значение в массиве на основе указанных вами номеров строк и столбцов. Синтаксис функции ИНДЕКС прост:

ИНДЕКС(массив,номер_строки,[номер_столбца])

Вот простое объяснение каждого параметра:

  • массив — это диапазон ячеек, именованный диапазон или таблица.
  • номер_строки — это номер строки в массиве, из которого нужно вернуть значение. Если этот аргумент опущен, требуется следующий – номер_столбца.
  • номер_столбца — это номер столбца, из которого нужно вернуть значение. Если он опущен, требуется номер_строки.

Дополнительные сведения см. в статье Функция ИНДЕКС в Excel .

А вот пример формулы ИНДЕКС в самом простом виде:

=ИНДЕКС(A1:C10;2;3)

Формула выполняет поиск в ячейках с A1 по C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, т. е. в ячейке C2.

Очень легко, правда? Однако при работе с реальными данными вы вряд ли когда-нибудь будете заранее знать, какие строки и столбцы вам нужны. Здесь вам пригодится ПОИСКПОЗ.

Функция ПОИСКПОЗ

Она ищет нужное значение в диапазоне ячеек и возвращает относительное положение этого значения в диапазоне.

Синтаксис функции ПОИСКПОЗ следующий:

ПОИСКПОЗ(искомое_значение, искомый_массив, [тип_совпадения])

  • искомое_значение — числовое или текстовое значение, которое вы ищете.
  • диапазон_поиска — диапазон ячеек, в которых будем искать.
  • тип_совпадения — указывает, следует ли искать точное соответствие или наиболее близкое совпадение:
    • 1 или опущено — находит наибольшее значение, которое меньше или равно искомому значению. Требуется сортировка массива поиска в порядке возрастания.
    • 0 — находит первое значение, точно равное искомому значению. В комбинации ИНДЕКС/ПОИСКПОЗ вам почти всегда нужно точное совпадение, поэтому вы чаще всего устанавливаете третий аргумент вашей функции в 0.
    • -1 — находит наименьшее значение, которое больше или равно искомому значению. Требуется сортировка массива поиска в порядке убывания.

Например, если диапазон B1:B3 содержит значения «яблоки», «апельсины», «лимоны», приведенная ниже формула возвращает число 3, поскольку «лимоны» — это третья по счету запись в этом диапазоне:

=ПОИСКПОЗ(«лимоны»;B1:B3;0)

Дополнительные сведения см . в статье Функция ПОИСКПОЗ в Excel .

На первый взгляд полезность функции ПОИСКПОЗ может показаться сомнительной. Кого волнует положение значения в диапазоне? Что мы действительно хотим определить, так это само значение.

Однако, относительная позиция искомого значения (т. е. номера строки и столбца, в которых оно находится) — это именно то, что нам нужно указать для аргументов номер_строки и номер_столбца функции ИНДЕКС. Как вы помните, ИНДЕКС может найти значение на пересечении заданной строки и столбца, но сама не может определить, какую именно строку и столбец ей нужно выбрать.

Вот поэтому совместное использование ИНДЕКС и ПОИСКПОЗ открывает перед нами массу возможностей для поиска в Excel.

Как использовать формулу ИНДЕКС ПОИСКПОЗ в Excel

Теперь, когда вы знаете основы, я считаю, что вы уже начали понимать, как ПОИСКПОЗ и ИНДЕКС работают вместе. Короче говоря, ИНДЕКС извлекает нужное значение по номерам столбцов и строк, а ПОИСКПОЗ предоставляет ей эти номера. Вот и все!

Для вертикального поиска вы используете функцию ПОИСКПОЗ только для определения номера строки, указывая диапазон столбцов непосредственно в самой формуле:

ИНДЕКС ( столбец для возврата значения ; ПОИСКПОЗ ( искомое значение ; столбец для поиска ; 0))

Все еще не совсем понимаете эту логику? Возможно, будет проще разобрать на примере. Предположим, у вас есть список национальных столиц и их население:

Чтобы найти население определенной столицы, скажем, Индии, используйте следующую формулу ПОИСКПОЗ ИНДЕКС:

=ИНДЕКС(C2:C10; ПОИСКПОЗ(“Индия”;A2:A10;0))

Теперь давайте проанализируем, что на самом деле делает каждый компонент этой формулы:

  • Функция ПОИСКПОЗ ищет искомое значение «Индия» в диапазоне A2:A10 и возвращает число 2, поскольку это слово занимает второе место в массиве поиска.
  • Этот номер поступает непосредственно в аргумент номер_строки функции ИНДЕКС, предписывая вернуть значение из этой строки.

Таким образом, приведенная выше формула превращается в ИНДЕКС(C2:C10;2), которая означает, что нужно искать в ячейках от C2 до C10 и извлекать значение из второй ячейки в этом диапазоне, то есть из C3, потому что мы начинаем отсчет со второй строки.

Но указывать название города в формуле не совсем правильно, так как для каждого нового поиска придется корректировать эту формулу. Введите его в какую-нибудь отдельную ячейку, скажем, F1, укажите ссылку на ячейку для ПОИСКПОЗ, и вы получите формулу динамического поиска:

=ИНДЕКС(C2:C10;ПОИСКПОЗ(F1;A2:A10;0))

Важное замечаниеКоличество строк в аргументе массив функции ИНДЕКС должно совпадать с количеством строк в аргументе просматриваемый_массив в ПОИСКПОЗ, иначе формула выдаст неверный результат.

Вы спросите: «А почему бы нам просто не использовать обычную формулу ВПР? Какой смысл тратить время на то, чтобы разобраться в хитросплетениях ИНДЕКС ПОИСКПОЗ в Excel?»

Вот как это будет выглядеть:

=ВПР(F1; A2:C10; 3; 0)

Конечно, так проще. Но этот наш элементарный пример предназначен только для демонстрационных целей, чтобы вы поняли, как именно функции ИНДЕКС и ПОИСКПОЗ работают вместе. Действительно, ВПР была бы здесь более уместна. Другие примеры, которые вы найдёте ниже, покажут вам реальную силу этой комбинации, которая легко справляется со многими сложными задачами, когда ВПР будет бессильна.

ИНДЕКС+ПОИСКПОЗ вместо ВПР?

Решая, какую функцию использовать для вертикального поиска, большинство знатоков Excel сходятся во мнении, что ПОИСКПОЗ+ИНДЕКС намного лучше, чем ВПР. Однако многие до сих пор остаются с ВПР, во-первых, потому что это проще, а, во-вторых, потому что они не до конца понимают все преимущества использования формулы ПОИСКПОЗ ИНДЕКС в Excel. Без такого понимания никто не захочет тратить свое время на изучение более сложного синтаксиса.

Ниже я укажу на ключевые преимущества ИНДЕКС ПОИСКПОЗ перед ВПР, а уж вам решать, является ли это достойным дополнением к вашему арсеналу знаний в Excel.

4 основные причины использовать ИНДЕКС ПОИСКПОЗ вместо ВПР

  1. Поиск справа налево. Как известно любому образованному пользователю, ВПР не может искать влево. Это означает, что искомое значение всегда должно находиться в крайнем левом столбце таблицы. А извлекать нужное значение мы будем из столбца, который находится правее. ИНДЕКС+ПОИСКПОЗ может легко выполнять поиск влево! Здесь это показано в действии: Как выполнить поиск значения слева в Excel .
  2. Можно безопасно вставлять или удалять столбцы. Формулы ВПР не работают или выдают неверные результаты, когда новый столбец удаляется из таблицы поиска или добавляется в нее, поскольку синтаксис ВПР требует указания порядкового номера столбца, из которого вы хотите извлечь данные. Естественно, когда вы добавляете или удаляете столбцы, этот номер в формуле автоматически не меняется, а нужный столбец уже оказывается на новом месте.

С функциями ИНДЕКС и ПОИСКПОЗ вы указываете диапазон возвращаемых столбцов, а не номер одного из них. В результате вы можете вставлять и удалять столько столбцов, сколько хотите, не беспокоясь об обновлении каждой связанной с ними формулы.

  1. Нет ограничений на размер искомого значения. При использовании функции ВПР общая длина ваших критериев поиска не может превышать 255 символов, иначе вы получите ошибку #ЗНАЧ!. Таким образом, если ваш набор данных содержит длинные строки, ИНДЕКС ПОИСКПОЗ — единственное работающее решение.
  2. Более высокая скорость обработки. Если ваши таблицы относительно небольшие, вряд ли будет какая-то существенная разница в производительности Excel. Но если ваши рабочие листы содержат сотни или тысячи строк и, следовательно, сотни или тысячи формул, ИНДЕКС ПОИСКПОЗ будет работать намного быстрее, чем ВПР. Причина в том, что Excel будет обрабатывать только столбцы поиска и возврата, а не весь массив таблицы.

Влияние ВПР на производительность Excel может быть особенно заметным, если ваша книга содержит сложные формулы массива. Чем больше значений содержит ваш массив и чем больше формул массива содержится в книге, тем медленнее работает Excel.

ИНДЕКС ПОИСКПОЗ в Excel – примеры формул

Уяснив, почему все же стоит изучать ИНДЕКС ПОИСКПОЗ, давайте перейдем к самому интересному и посмотрим, как можно применить теоретические знания на практике.

Формула для поиска справа налево

Как уже упоминалось, ВПР не может получать значения слева от столбца поиска. Таким образом, если ваши значения поиска не находятся в самом левом столбце, нет никаких шансов, что формула ВПР принесет вам желаемый результат. Функция ПОИСКПОЗ ИНДЕКС в Excel более универсальна и не имеет особого значения, где расположены столбцы поиска и возврата.

Для этого примера мы добавим столбец «Ранг» слева от нашей основной таблицы и попытаемся выяснить, какое место занимает столица России по численности населения среди других перечисленных  столиц.

Записав искомое значение в G1, используйте следующую формулу для поиска в C2:C10 и возврата соответствующего значения из A2:A10:

=ИНДЕКС(A2:A10; ПОИСКПОЗ(G1;C2:C10;0))

СоветЕсли вы планируете использовать формулу ПОИСКПОЗ ИНДЕКС более чем для одной ячейки, обязательно зафиксируйте оба диапазона абсолютными ссылками  (например, $A$2:$A$10 и $C$2:$C$10), чтобы они не изменялись при копировании формулы.

Двусторонний поиск в строках и столбцах

В приведенных выше примерах мы использовали ИНДЕКС ПОИСКПОЗ вместо классической функции ВПР, чтобы вернуть значение из точно указанного столбца. Но что, если вам нужно искать в нескольких строках и столбцах? То есть, сначала нужно найти подходящий столбец, а уж потом извлечь из него значение? Другими словами, что, если вы хотите выполнить так называемый матричный или двусторонний поиск?

Это может показаться сложным, но формула очень похожа на базовую функцию ПОИСКПОЗ ИНДЕКС в Excel, но с одним отличием. 

Просто используйте две функции ПОИСКПОЗ, вложенных друг в друга: одну – для получения номера строки, а другую – для получения номера столбца. 

ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))

А теперь, пожалуйста, взгляните на приведенную ниже таблицу и давайте составим формулу двумерного поиска, чтобы найти население (в миллионах) в данной стране за данный год.

С целевой страной в G1 (значение_поиска1) и целевым годом в G2 (значение_поиска2) формула принимает следующий вид:

=ИНДЕКС(B2:D11; ПОИСКПОЗ(G1;A2:A11;0); ПОИСКПОЗ(G2;B1:D1;0))

Как работает эта формула?

Всякий раз, когда вам нужно понять сложную формулу Excel, разделите ее на более мелкие части и посмотрите, что делает каждая отдельная функция:

ПОИСКПОЗ(G1;A2:A11;0); – ищет в A2:A11 значение из ячейки G1 («США») и возвращает его позицию, которая равна 3.

ПОИСКПОЗ(G2;B1:D1;0) – просматривает диапазон B1:D1, чтобы получить позицию значения из ячейки G2 («2015»), которая равна 3.

Найденные выше номера строк и столбцов становятся соответствующими аргументами функции ИНДЕКС:

ИНДЕКС(B2:D11, 3, 3)

В результате вы получите значение на пересечении 3-й строки и 3-го столбца в диапазоне B2:D11, то есть из D4. Несложно? 

ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям

Если у вас была возможность прочитать наши материалы по ВПР в Excel, вы, вероятно, уже протестировали формулу для ВПР с несколькими условиями . Однако существенным недостатком этого подхода является необходимость добавления вспомогательного столбца. Хорошей новостью является то, что функция ПОИСКПОЗ ИНДЕКС в Excel также может выполнять поиск по нескольким условиям без изменения или реструктуризации исходных данных!

Вот общая формула ИНДЕКС ПОИСКПОЗ с несколькими критериями:

{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}

Примечание. Это формула массива , которую необходимо вводить с помощью сочетания клавиш Ctrl + Shift + Enter.

Предположим, что в таблице ниже вы хотите найти значение на основе двух критериев: Покупатель и Товар.

Следующая формула ИНДЕКС ПОИСКПОЗ отлично работает:

=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; (F1=A2:A10) * (F2=B2:B10); 0))

Где C2:C10 — это диапазон, из которого возвращается значение, F1 — это критерий1, A2:A10 — это диапазон для сравнения с критерием 1, F2 — это критерий 2, а B2:B10 — это диапазон для сравнения с критерием 2.

Не забудьте правильно ввести формулу, нажав Ctrl + Shift + Enter, и Excel автоматически заключит ее в фигурные скобки, как показано на скриншоте ниже:

Рис5

Если вы не хотите использовать формулы массива, добавьте в формулу в F4 еще одну функцию ИНДЕКС и завершите ее ввод обычным нажатием Enter:

=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; ИНДЕКС((F1=A2:A10) * (F2=B2:B10); 0; 1); 0))

Разберем пошагово, как это работает.

Здесь используется тот же подход, что и в обычном сочетании ИНДЕКС ПОИСКПОЗ, где просматривается один столбец. Чтобы оценить несколько критериев, вы создаете два или более массива значений ИСТИНА и ЛОЖЬ, которые представляют совпадения и несовпадения для каждого отдельного критерия, а затем перемножаете соответствующие элементы этих массивов. Операция умножения преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно и создает массив, в котором единицы соответствуют строкам, которые удовлетворяют всем условиям. Функция ПОИСКПОЗ со значением поиска 1 находит первую «1» в массиве и передает ее позицию в ИНДЕКС, которая возвращает значение в этой позиции из указанного столбца.

Вторая формула без массива основана на способности функции ИНДЕКС работать с массивами. Второй вложенный ИНДЕКС имеет 0 в номер_строки , так что он будет передавать весь массив столбцов в ПОИСКПОЗ.

Среднее, максимальное и минимальное значение при помощи ИНДЕКС ПОИСКПОЗ

Microsoft Excel имеет специальные функции для поиска минимального, максимального и среднего значения в диапазоне. Но что, если вам нужно получить значение из другой ячейки, связанной с этими значениями? Например,  получить название города с максимальным населением или узнать товар с минимальными продажами? В этом случае используйте функцию МАКС , МИН или СРЗНАЧ вместе с ИНДЕКС ПОИСКПОЗ.

Максимальное значение.

Предположим, нам нужно в списке городов найти столицу с самым большим населением. Чтобы найти наибольшее значение в столбце С и вернуть соответствующее ему значение из столбца В, находящееся в той же строке, используйте эту формулу:

=ИНДЕКС(B2:B10; ПОИСКПОЗ(МАКС(C2:C10); C2:C10; 0))

Скриншот с примером находится чуть ниже.

Минимальное значение

Теперь найдём город с самым маленьким населением в списке. Чтобы найти наименьшее число в столбце С и получить соответствующее ему значение из столбца В:

=ИНДЕКС(B2:B10; ПОИСКПОЗ(МИН(C2:C10); C2:C10; 0))

Ближайшее к среднему

Теперь мы находим город, население которого наиболее близко к среднему значению. Чтобы вычислить позицию, наиболее близкую к среднему значению показателя, рассчитанному из D2:D10, и получить соответствующее значение из столбца C, используйте следующую формулу:

=ИНДЕКС(B2:B10; ПОИСКПОЗ(СРЗНАЧ(C2:C10); C2:C10; -1 ))

В зависимости от того, как организованы ваши данные, укажите 1 или -1 для третьего аргумента (тип_совпадения) функции ПОИСКПОЗ:

  • Если ваш столбец поиска (столбец D в нашем случае) отсортирован по возрастанию , поставьте 1. Формула вычислит наибольшее значение, которое меньше или равно среднему значению.
  • Если ваш столбец поиска отсортирован по убыванию , введите -1. Формула вычислит наименьшее значение, которое больше или равно среднему значению.
  • Если ваш массив поиска содержит значение , точно равное среднему, вы можете ввести 0 для точного совпадения. Никакой сортировки не требуется.

В нашем примере данные в столбце D отсортированы в порядке убывания, поэтому мы используем -1 для типа соответствия. В результате мы получаем «Токио», так как его население (13 189 000) является ближайшим, превышающим среднее значение (12 269 006).

Что делать с ошибками поиска?

Как вы, наверное, заметили, если формула ИНДЕКС ПОИСКПОЗ в Excel не может найти искомое значение, она выдает ошибку #Н/Д. Если вы хотите заменить это стандартное сообщение чем-то более информативным, оберните формулу ПОИСКПОЗ ИНДЕКС в функцию ЕСНД . Например:

=ЕСНД(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Не найдено»)

И теперь, если кто-то вводит значение, которое не существует в диапазоне поиска, формула явно сообщит пользователю, что совпадений не найдено:

Если вы хотите перехватывать все ошибки, а не только #Н/Д, используйте функцию ЕСЛИОШИБКА вместо ЕСНД:

=ЕСЛИОШИБКА(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Что-то пошло не так!»)

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

Итак, еще раз об основных преимуществах формулы ИНДЕКС ПОИСКПОЗ.

  • Возможен ли «левый» поиск?

  • Повлияет ли на результат вставка и удаление столбцов?

    Вы можете вставлять и удалять столько столбцов, сколько хотите. На результат ИНДЕКС ПОИСКПОЗ это не повлияет.

  • Возможен ли поиск по строкам и столбцам?

    Можно сначала найти подходящий столбец, а уж потом извлечь из него значение. Общий вид формулы:
    ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
    Подробную инструкцию смотрите здесь.

  • Как сделать поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям?

    Можно выполнять поиск по двум или более условиям без добавления дополнительных столбцов. Вот формула массива, которая решит проблему:
    {=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}

Вот как можно использовать ИНДЕКС и ПОИСКПОЗ в Excel. Я надеюсь, что наши примеры формул окажутся полезными для вас.

Вот еще несколько статей по этой теме:

Понравилась статья? Поделить с друзьями:
  • Excel название на область
  • Excel название месяца текстом
  • Excel название листа по его номеру
  • Excel название листа как ссылка
  • Excel название листа изменить цвет