Elettracompany.com

Компьютерный справочник
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Формула енд в excel

Формула ВПР в Excel для сравнения двух таблиц — 4 способа

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

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

Итак, вот наши исходные данные.

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

Для этого используем несколько способов.

  1. При помощи функции ВПР для каждого товара из прайс-листа №2 будем искать цену в первом прайс-листе и выводить ее рядом с новой. Так легче будет определить различия.
  2. Построим сводную таблицу по данным обоих прайс-листов, и там эти отличия увидим.
  3. Используем стандартную операцию сравнения.
  4. Применим формулу массива.

1. Используем ВПР, чтобы сравнить две таблицы.

Создадим именованный диапазон B4:C19 и назовем его «прайс1». Так нам будет проще ссылаться на первоначальные данные.

Добавим к новым данным еще одну колонку и назовем ее «Цена старая». Для каждого наименования из прайс-листа №2 найдем соответствующую ему цену в №1.

В Н4 вводим формулу

и копируем ее вниз по столбцу.

Видим, что кое-где изменилась цена, и в четырех наименованиях формула ВПР возвратила ошибку #Н/Д. Это означает, что ранее этих товаров не было и цену для них обнаружить не удалось.

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

Для этого используем функцию ЕСЛИОШИБКА и вместо #Н/Д выведем ноль.

Изменим нашу формулу:

Теперь мы можем рассчитать отклонения новой цены от старой.

Можно показать результаты сравнения двух таблиц с использованием ВПР более наглядно и красиво. Давайте результаты сравнения вынесем отдельно.

Согласитесь, что такое сравнение выглядит гораздо аккуратнее и нагляднее.

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

То есть, ключевым является выражение ЕСЛИОШИБКА(ВПР(F4;прайс1;2;0);0).

Если найденное значение равно «новой» цене из ячейки G4, то выводим пустой пробел “”.

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

Если ячейка J4 пуста, тогда ничего не выводим и в остальных:

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

Но есть один существенный недостаток в таком сравнении таблиц с использованием функции ВПР. Мы сравнили новые значения и старые, нашли изменения и новые товары. Но если какой-то товар ранее существовал, но теперь отсутствует, то этого мы не заметим. Придется повторить весь процесс в обратную сторону, взяв теперь за базу первую таблицу и сопоставляя ее со второй.

То есть, сравнивать придется в двух направлениях.

Согласитесь, не всегда хочется делать двойную работу.

2. Сравнение при помощи сводной таблицы.

Поскольку структура сравниваемых данных одинакова, то мы можем объединить их. Чтобы различить, откуда взяты какие значения, добавьте еще один столбец и укажите там источник данных – прайс1 или прайс2.

Используя наш предыдущий пример, это можно сделать следующим образом:

Теперь через меню Вставка-Сводная таблица создадим свод, можно на этом же листе для наглядности.

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

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

Это еще один пример того, что у функции ВПР есть весьма достойные альтернативные варианты во многих случаях.

Главный недостаток здесь – данные нужно предварительно подготовить, объединив их в единый массив.

Следует также отметить, что с большими объемами данных сводные таблицы умеют работать гораздо быстрее, чем ВПР.

3. Стандартное сравнение.

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

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

Для примера сравним два прайса, записав в столбце I условие совпадения цены

При равенстве мы получим ответ «ИСТИНА», а если совпадения нет, будет «ЛОЖЬ». Копируем из I4 вниз по столбцу.

Этот способ сравнения таблиц – самый элементарный, поэтому останавливаться на нем более не будем.

4. Использование формул массива вместе с ВПР.

Здесь все гораздо сложнее. Вновь вернемся к нашим исходным данным и разместим списки товаров и цен на двух листах рабочей книги: «Прайс1» и «Прайс2».

Создадим из наименований товаров в каждой из таблиц именованный диапазон, как это показано на рисунке.

Назовем их соответственно «прайс_1» и «прайс_2». Так нам легче будет разбираться в формулах.

Результаты сравнения таблиц вынесем также на отдельный лист «Сравнение».

В ячейке A5 запишем формулу

=ЕСЛИОШИБКА(ЕСЛИОШИБКА(ИНДЕКС(прайс_1; ПОИСКПОЗ(0;СЧЁТЕСЛИ(A$4:$A4;прайс_1);0)); ИНДЕКС(прайс_2;ПОИСКПОЗ(0;СЧЁТЕСЛИ(A$4:$A4;прайс_2);0)));»»)

Поскольку это формула массива, то не забудьте завершить ее ввод комбинацией клавиш Ctrl+Shift+Enter.

В результате получим список уникальных (неповторяющихся) значений из всех имеющихся у нас наименований товаров.

Рассмотрим процесс пошагово. Формула последовательно берет значения из списка наименований. Затем при помощи функции СЧЕТЕСЛИ определяется количество совпадений с каждым из значений в ячейках, находящихся выше этого значения. Если результат СЧЕТЕСЛИ равен нулю, значит это наименование ранее не встречалось и можно его занести в список.

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

Поскольку это формула массива, то мы последовательно проходим по всему списку от начала до конца, повторяя все эти операции.

Если первая таблица закончилась, то возникает ошибка. ЕСЛИОШИБКА реагирует на это и начинает таким же образом перебирать значения второй таблицы. Когда и там возникает ошибка, то возвращается пустая строка “”.

Скопируйте эту формулу по столбцу вниз. Список уникальных значений готов.

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

Не забудьте, что это тоже формула массива (Ctrl+Shift+Enter).

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

Напомним, что для этого надо использовать меню Главная – Условное форматирование – Правила выделения ячеек – Текст содержит…

Ну и если значение существует в таблице, то логично было бы его вывести в таблице сравнения.

Заменим в нашей формуле значение «Есть» на функцию ВПР:

В итоге наше формула преобразуется к виду:

Аналогично в С5 :

Напомним, что на листах Прайс1 и Прайс2 находятся наши сравниваемые таблицы.

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

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

В этой статье рассматривается синтаксис функции ПОИСКПОЗ Excel, а также как использовать функцию ПОИСКПОЗ в Excel с примерами формул.

Также в этой статье рассматривается комбинация формул ИНДЕКС ПОИСКПОЗ в Excel.

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

Функция ПОИСКПОЗ в Excel – синтаксис и использование

Функция ПОИСКПОЗ в Excel ищет заданное значение в диапазоне ячеек и возвращает относительное положение этого значения.

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

Искомое_значение (обязательный аргумент) – значение, которое вы хотите найти. Это может быть числовое, текстовое или логическое значение, а также ссылка на ячейку.

Просматриваемый_массив (обязательный аргумент) – диапазон ячеек для поиска.

Тип_сопоставления (необязательный аргумент) – определяет тип соответствия. Это может быть одно из следующих значений: 1, 0, -1.

  • 1 или отсутствует (по умолчанию) – находит наибольшее значение в массиве, которое меньше или равно значению поиска. Массив поиска должен быть отсортирован в порядке возрастания, от самого маленького до большого или от A до Z.
  • 0 – находит первое значение в массиве, которое в точности равно значению поиска. Сортировка не требуется.
  • -1 – находит наименьшее значение в массиве, которое больше или равно значению поиска. Массив поиска должен быть отсортирован в порядке убывания, от самого большого до самого маленького или от Z до A.

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

=ПОИСКПОЗ(E1; A2:A8; 0)

При желании вы можете поместить значение поиска в ячейку (E1 в данном примере) и сослаться на эту ячейку в формуле ПОИСКПОЗ Excel:

Функция ПОИСКПОЗ в Excel – Пример использования функции ПОИСКПОЗ в Excel

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

Читать еще:  Vba excel проверка наличия файла

Особенности функции ПОИСКПОЗ Excel

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

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

Использование ПОИСКПОЗ в Excel – примеры формул

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

Формула ПОИСКПОЗ Excel с подстановочными знаками

Как и многие другие функции Excel, ПОИСКПОЗ распознает следующие подстановочные знаки:

  • Вопросительный знак (?) — заменяет любой символ
  • Звездочка (*) — заменяет любую последовательность символов

Примечание . Подстановочные знаки могут использоваться только в формулах ПОИСКПОЗ с параметром тип_сопоставления равному 0.

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

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

Предполагая, что названия компаний находятся в диапазоне A2:A8, и вы ищете название, начинающееся с «восток», формула выглядит следующим образом:

=ПОИСКПОЗ(«восток*»; A2:A8; 0)

Чтобы сделать нашу формулу ПОИСКПОЗ более универсальной, вы можете ввести значение поиска в любой ячейке (E1 в этом примере) и объединить эту ячейку с подстановочным символом, например:

=ПОИСКПОЗ(E1&»*»; A2:A8; 0)

Как показано на изображении ниже, формула возвращает 2 позицию, которая соответствует компании « Восток-авто »:

Функция ПОИСКПОЗ в Excel – Пример функции ПОИСКПОЗ Excel с подстановочными знаками

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

Вышеуказанная формула будет соответствовать названию « Бейкер » и вернет его относительное положение, которое равно 5.

Формула ПОИСКПОЗ с учетом регистра

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

Чувствительность к регистру формулы для сопоставления данных в Excel заключается в следующем:

Логика этой формулы такова:

  • Функция СОВПАД сравнивает значение поиска с каждым элементом просматриваемого массива. Если сравниваемые ячейки в точности равны, функция возвращает ИСТИНУ, или ЛОЖЬ в противном случае.
  • Далее функция ПОИСКПОЗ сравнивает ИСТИНУ (которая является ее искомым_значением) с каждым значением в массиве, возвращаемом СОВПАД, и возвращает позицию первого совпадения

Обратите внимание , что это формула массива, которая требует нажатия Ctrl+Shift+Enter для правильной обработки.

Пусть значение поиска находится в ячейке E1, а массив поиска — A2:A8, тогда формула выглядит следующим образом:

=ПОИСКПОЗ(ИСТИНА; СОВПАД(A2:A8; E1);0)

На следующем изображении демонстрируется формула ПОИСКПОЗ с учетом регистра в Excel:

Функция ПОИСКПОЗ в Excel – Пример функции ПОИСКПОЗ Excel с учетом регистра

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

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

=ЕСЛИ(ЕНД(ПОИСКПОЗ (1-е значение в Списке 1; Список 2; 0)); «Нет в Списке 1»; «»)

Для любого значения из Списка 2, отсутствующего в Списке 1, формула возвращает «Нет в Списке 1». И вот как это происходит:

  • Функция ПОИСКПОЗ выполняет поиск значения из Списка 1 в Списке 2. Если значение найдено, она возвращает относительное положение, в противном случае ошибку #Н/Д.
  • Функция ЕНД в Excel выполняет только одно: проверяет наличие ошибок #Н/Д (что означает «недоступно»). Если заданное значение является ошибкой #Н/Д, функция возвращает ИСТИНА, в противном случае – ЛОЖЬ. В нашем случае ИСТИНА означает, что значение из Списка 1 не найдено в Списке 2 (ПОИСКПОЗ возвращает ошибку #Н/Д).
  • Поскольку для других пользователей будет сложно интерпретировать результаты в формате ИСТИНА/ЛОЖЬ, то мы будем использовать функцию ЕСЛИ для отображения текста «Нет в Списке 1» для значений, которых нет в Списке 1.

Предположим, что нам необходимо сравнить значения в столбце B со значениями в столбце A, формула примет следующую форму (где B2 — самая верхняя ячейка):

=ЕСЛИ(ЕНД(ПОИСКПОЗ(B2;A:A;0));»Нет в Списке 1″; «»)

Как вы помните, функция ПОИСКПОЗ Excel сама по себе не учитывает регистр. Чтобы заставить ее различать регистр, вставьте функцию СОВПАД в аргумент просматриваемый_массив и не забудьте нажать Ctrl+Shift+Enter , чтобы завершить эту формулу массива :

=ЕСЛИ(ЕНД(ПОИСКПОЗ(ИСТИНА; СОВПАД(A:A;B2); 0));»Нет в Списке 1″; «»)

На следующем изображении демонстрируются обе формулы в действии:

Функция ПОИСКПОЗ в Excel – Сравнение 2 столбцов на совпадения с использованием ЕНД и ПОИСКПОЗ

ИНДЕКС и ПОИСКПОЗ в Excel

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

Синтаксис и использование функции ИНДЕКС

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

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

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

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

Если используются оба параметра номер_строки и номер_столбца, функция ИНДЕКС возвращает значение в ячейке на пересечении указанной строки и столбца.

Вот простейший пример формулы ИНДЕКС:

Формула ищет в ячейках от A1 до C10 и возвращает значение ячейки во второй строке и третьем столбце, то есть в ячейке C2.

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

ИНДЕКС ПОИСКПОЗ в Excel пример

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

Функция ПОИСКПОЗ определяет относительное положение значения поиска в указанном диапазоне ячеек. А функция ИНДЕКС принимает это число и возвращает значение в соответствующую ячейку.

Комбинацию ИНДЕКС ПОИСКПОЗ в Excel можно представить таким образом:

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

Для лучшего понимания рассмотрим наглядный пример. Предположим, у нас есть список стран с населением, подобных этому:

Функция ПОИСКПОЗ в Excel – Исходные данные для формулы ИНДЕКС ПОИСКПОЗ в Excel

Найдем численность населения, например, России, используя следующую формулу ИНДЕКС ПОИСКПОЗ:

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

  • Функция ПОИСКПОЗ выполняет поиск значения «Россия» в столбце B, точнее в ячейках B2:B11 и возвращает номер 7, потому что «Россия» находится на седьмом месте в списке.
  • Функция ИНДЕКС принимает «7» во втором параметре (номер_строки), который указывает, из какой строки вы хотите вернуть значение, и превращается в простую формулу =ИНДЕКС($C$2:$C$11, 7). То есть формула производит поиск в ячейках C2-C11 и возвращает значение ячейки в седьмой строке, то есть ячейке C8, потому что мы начинаем отсчет со второй строки.

И вот результат, который мы получаем в Excel:

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

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

БЛОГ

Только качественные посты

Практический справочник функций Microsoft Excel с примерами их использования

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

Отсюда вытекает вопрос: Сколько нужно знать функций Excel, чтобы решать практически любую задачу в Excel?

Могу с уверенностью, опираясь на свой 17 летний профессиональный опыт работы в Excel, сказать, что достаточно освоить всего около 100 функций…

Представляю Вам ТОП-50 самых главных функций в Microsoft Excel с примерами их использования

– изучив данные Excel функции, у Вас будет достаточно теоретических знаний, чтобы решать практически любую задачу в Excel

( Для перехода к примерам нажмите на название функции. Все примеры — это ссылки на лучшие статьи уважаемых специалистов по Excel и наших партнеров)

1. СУММ / СРЗНАЧ / СЧЁТ / МАКС / МИН (SUM / AVERAGE / COUNT / MAX / MIN)[Базовые формулы Excel]
2. ВПР (VLOOKUP)[Ищет значение в первом столбце массива и выдает значение из ячейки в найденной строке и указанном столбце]
3. ИНДЕКС (INDEX)[По индексу получает значение из ссылки или массива]
4. ПОИСКПОЗ (MATCH)[Ищет значения в ссылке или массиве]
5. СУММПРОИЗВ (SUMPRODUCT)[Вычисляет сумму произведений соответствующих элементов массивов (позволяет работать с массивами без формул массива)]
6. АГРЕГАТ / ПРОМЕЖУТОЧНЫЕ.ИТОГИ (AGGREGATE / SUBTOTALS)[Возвращает общий итог или промежуточный итог в списке или базе данных с учетом фильтров или без учета фильтров]
7. ЕСЛИ (IF)[Выполняет проверку условия]
8. И / ИЛИ / НЕ (AND / OR / NOT)[Логические условия, как правило для функции ЕСЛИ]
9. ЕСЛИОШИБКА (IFERROR)[Если формула возвращает ошибку то что]
10. СУММЕСЛИМН (SUMIFS)[Суммирует ячейки, удовлетворяющие заданным критериям. Допускается указывать более одного условия]
11. СРЗНАЧЕСЛИМН (AVERAGEIFS)[Возвращает среднее арифметическое значение всех ячеек, которые соответствуют нескольким условиям]
12. СЧЁТЕСЛИМН (COUNTIFS)[Подсчитывает количество ячеек, которые соответствуют нескольким условиям]
13. МИНЕСЛИ / МАКСЕСЛИ (MINIFS / MAXIFS)[Возвращает минимальное/максимальное значение всех ячеек, которые соответствуют нескольким условиям]
14. НАИБОЛЬШИЙ / НАИМЕНЬШИЙ (LARGE / SMALL)[Возвращает k-ое наибольшее/наименьшее значение в множестве данных]
15. ДВССЫЛ (INDIRECT)[Определяет ссылку, заданную текстовым значением]
16. ВЫБОР (CHOOSE)[Выбирает значение из списка значений по индексу]
17. ПРОСМОТР (LOOKUP)[Ищет значения в массиве]
18. СМЕЩ (OFFSET)[Определяет смещение ссылки относительно заданной ссылки]
19. СТРОКА / СТОЛБЕЦ (ROW / COLUMN)[Возвращает номер строки/столбца, на который указывает ссылка]
20. ЧИСЛСТОЛБ / ЧСТРОК (COLUMNS / ROWS)[Возвращает количество столбцов/строк в ссылке]
21. ОКРУГЛ / ОКРУГЛТ / ОКРУГЛВНИЗ / ОКРУГЛВВЕРХ (ROUND / MROUND / ROUNDDOWN / ROUNDUP)[Округляет число до указанного количества десятичных разрядов]
22. СЛЧИС / СЛУЧМЕЖДУ / РАНГ (RAND / RANDBETWEEN / RANK)[Возвращает случайное число]
23. Ч (N)[Возвращает значение, преобразованное в число]
24. ЧАСТОТА (FREQUENCY)[Находит распределение частот в виде вертикального массива]
25. СЦЕПИТЬ / СЦЕП / ОБЪЕДИНИТЬ / & (CONCATENATE / CONCAT / TEXTJOIN / &)[Объединения двух или нескольких текстовых строк в одну]
26. ПСТР (MID)[Выдает определенное число знаков из строки текста, начиная с указанной позиции]
27. ЛЕВСИМВ / ПРАВСИМВ (LEFT / RIGHT)[Возвращает заданное количество символов текстовой строки слева / права]
28. ДЛСТР (LEN)[Определяет количество знаков в текстовой строке]
29. НАЙТИ / ПОИСК (FIND / SEARCH)[Поиск текста в ячейке с учетом / без учета регистр]
30. ПОДСТАВИТЬ / ЗАМЕНИТЬ (SUBSTITUTE / REPLACE)[Заменяет в текстовой строке старый текст новым]
31. СТРОЧН / ПРОПИСН / ПРОПНАЧ (LOWER / UPPER)[Преобразует все буквы текста в строчные/прописные/ или первую букву в каждом слове текста в прописную]
32. ГИПЕРССЫЛКА (HYPERLINK)[Создает ссылку, открывающую документ, находящийся на жестком диске, сервере сети или в Интернете]
33. СЖПРОБЕЛЫ (TRIM)[Удаляет из текста все пробелы, за исключением одиночных пробелов между словами]
34. ПЕЧСИМВ (CLEAN)[Удаляет все непечатаемые знаки из текста]
35. СОВПАД (EXACT)[Проверяет идентичность двух текстов]
36. СИМВОЛ / ПОВТОР (CHAR / REPT)[Возвращает знак с заданным кодом/Повторяет текст заданное число раз]
37. СЕГОДНЯ / ТДАТА (TODAY / NOW)[Возвращает текущую дату в числовом формате / Возвращает текущую дату и время в числовом формате]
38. МЕСЯЦ / ГОД (MONTH / YEAR)[Вычисляет год / месяц от заданной даты]
39. НОМНЕДЕЛИ (WEEKNUM)[Преобразует дату в числовом формате в число, которое указывает, на какую неделю года приходится дата]
40. ДАТАЗНАЧ (DATEVALUE)[Преобразует дату из текстового формата в числовой]
41. РАЗНДАТ (DATEDIF)[Вычисляет количество дней, месяцев или лет между двумя датами]
42. РАБДЕНЬ (WORKDAY)[Возвращает дату в числовом формате, отстоящую вперед или назад на заданное количество рабочих дней]
43. ЯЧЕЙКА (CELL)[Возвращает сведения о формате, расположении или содержимом ячейки]
44. ТРАНСП (TRANSPOSE)[Выдает транспонированный массив]
45. ПРЕОБР (CONVERT)[Преобразует число из одной системы мер в другую]
46. ПРЕДСКАЗ (FORECAST)[Вычисляет или предсказывает будущее значение по существующим значениям линейным трендом]
47. ТИП.ОШИБКИ (ERROR.TYPE)[Возвращает числовой код, соответствующий типу ошибки]
48. ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ (GETPIVOTDATA)[Возвращает данные, хранящиеся в сводной таблице]
49. БДСУММ (DSUM)[Суммирует числа в поле (столбце) записей списка или базы данных, которые удовлетворяют заданным условиям]
50. В качестве бонуса рекомендую изучить Пользовательские форматы в Excel.

Читать еще:  Кнопка печать в excel

После освоения данных функций, следующим этапом рекомендую осваивать инструменты Бизнес- аналитики Business Intelligence (BI)

В Excel к инструментам бизнес-аналитики уровня Self-Service BI относятся бесплатные надстройки «Power»:

  • Power Query — это технология подключения к данным, с помощью которой можно обнаруживать, подключать, объединять и уточнять данные из различных источников для последующего анализа.
  • Power Pivot — это технология моделирования данных, которая позволяет создавать аналитические модели данных, устанавливать отношения и добавлять аналитические вычисления.
  • Power View — это технология визуализации данных, с помощью которой можно создавать интерактивные диаграммы, графики, карты и другие наглядные элементы, позволяющие визуализировать различную информацию.

Ну и если Вы со временем поймете, что возможностей Excel для решения ваших аналитических задач недостаточно, то вам пора переходить к изучению промышленных решений уровня Business Intelligence (BI)

Формула енд в excel

В Excel встроено порядка 500 формул. Однако львиную долю всей работы делают штук 10 основных формул, а из этих десяти особо выделяется формула ИНДЕКС (INDEX). ИНДЕКС — многогранная и мощнейшая формула Excel. Это, можно сказать, священный грааль Excel, его философский камень. При этом большинство пользователей Excel про неё не знают практически ничего, а из тех, кто знает и использует, поняли её лишь немногие. Если хотите быть в числе этих немногих, то продолжайте чтение 🙂

Основной синтаксис

= ИНДЕКС ( диапазон(ы) ; номер_строки [; номер_столбца [; номер_области ] ] )

Пока только замечу, что параметры 3 и 4 не обязательные и могут не указываться (запомните, что квадратные скобки при описании синтаксиса формул или команд говорят о необязательности параметра). Подобная вложенность квадратных скобок говорит о том, что формула применяется с 2-мя параметрами, либо с 3-мя, либо с 4-мя.

Возврат элемента диапазона

Обычное, типовое использование ИНДЕКС это:

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

Формула вернёт значение из ячейки на пересечении второй строки и второго столбца диапазона A1:C5 . Это значение 5 из B2 . Для многих на этом понимание предназначения функции ИНДЕКС и заканчивается. Но только не для нас с вами, мой пытливый читатель!

Гораздо менее известным фактом является то, как ИНДЕКС работает с векторами. Вектор — это диапазон, состоящий из одного столбца или одной строки.

= ИНДЕКС ( A3:C3 ; 3 ) вернёт 9, и

= ИНДЕКС ( C1:C5 ; 3 ) тоже вернёт 9!

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

Что возвращает формула?

Ещё одна удивительная особенность — формула ИНДЕКС возвращает ссылку на ячейку, а не значение ячейки. Внимательный читатель, конечно же, запальчиво воскрикнет, что, мол за ерунда, почему тогда предыдущий пример не вернул нам С3 , а вернул 9? Дело в том, что данный факт маскируется оператором присваивания (знак равно), с которого начинается любая формула.

= ИНДЕКС ( C1:C5 ; 3 ) фактически проходит этап = C3 и только затем превращается в 9.

И я могу вам это доказать! Если формула возвращает нам ссылку на ячейку, а не её значение, то с результатом работы формулы ИНДЕКС должны работать все ТРИ оператора Excel по работе с ссылками: оператор задания диапазона — двоеточие , оператор перечисления диапазонов — точка с запятой и наконец оператор нахождения пересечения диапазонов — пробел .

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

Конструкция ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1) должна возвращать нам A5:C5 .

И это действительно так, что можно подтвердить косвенно, ибо

= СУММ ( ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1)) возвращает 42 (13+14+15), а

= ЧИСЛСТОЛБ ( ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1)) возвращает 3.

А можно подтвердить и напрямую через ввод формулы массива в любые 3 горизонтальных ячейки. Для этого выделите 3 ячейки за пределами A1:C5 , вытянутые в строку, нажмите знак равно и введите буквально

= ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1)

и после этого нажмите Ctrl + Shift + Enter . После чего вы увидите следующую картину:

Далее у меня будут всречаться формулы с такими фигурными скобками

<= ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1)>знайте, что это формулы массивов, которые надо вводить в ячейку или группу ячеек способом, который описан мною выше.

Примечание: надеюсь вы понимаете, что ИНДЕКС ( A5 ;1) вернёт ссылку на A5 , так как любая ячейка может рассматриваться в качестве вектора с числом элементов равным 1. ЧИСЛСТОЛБ — формула, возвращающая количество столбцов в диапазоне.

= ОБЛАСТИ (( ИНДЕКС ( A1 ;1); ИНДЕКС ( C3 ;1))) вернёт нам 2.

Напомню, что функция ОБЛАСТИ возвращает количество областей внутри переданной ссылки. Этот вызов идентичен вызову = ОБЛАСТИ (( A1 ; C3 )), то есть ИНДЕКС нам успешно сгенерировал 2 области через оператор «;».

Чтобы продемонстрировать вам, что ИНДЕКС можно использовать с оператором пересечения диапазонов, я должен сненерировать при помощи ИНДЕКС диапазоны с размером больше, чем одна ячейка, но это как раз то, что я только собираюсь вам объяснить ниже, поэтому доказательство я вам приведу, но его синтаксическая конструкция будет сложнее, чем могла бы быть. Я хочу сгенерировать через ИНДЕКС такой результат = B1:B5 A5:C5

Формула кого-то может испугать, но на самом деле всё просто. Я буквально конструирую из ИНДЕКС именно то, что нам надо.

= ИНДЕКС ( B1 ;1): ИНДЕКС ( B5 ;1) ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1)

Надеюсь, теперь даже самые скептически настроенные читатели убедились, что ИНДЕКС возвращает ссылки, а не значения.

Читать еще:  Как удалить скрытые объекты в excel

Возврат столбца / строки

ИНДЕКС может возвращать не только ссылки отдельные ячейки, но и векторы.

Конструкция ИНДЕКС ( A1:C5 ;;3) — вернёт вектор C1:C5 (столбец), так как, если пропустить параметр номер_строки (или указать его равным нулю), но указать параметр номер_столбца, то ИНДЕКС возвращает вектор указанного столбца в пределах диапазона из первого параметра.

= СУММ ( ИНДЕКС ( A1:C5 ;;3)) вернёт 45,

= ЧСТРОК ( ИНДЕКС ( A1:C5 ;;3)) вернёт 5, а

В случае формулы массива обратите внимание, что, если вы ввели формулу массива в диапазон ячеек, который превышает размер возвращаемого массива, то лишние ячейки получат значения #Н/Д (смотрите ситуацию 2 на рисунке). А, если формула возвращает вертикальный массив, а принимающий диапазон расположен горизонтально, то все ячейки горизонтального диапазона получат одинаковое значение — из первого элемента возвращаемого вектора (смотрите ситуацию 3 на рисунке), и наоборот, то есть направление векторов должно совпадать.

По аналогии, конструкция ИНДЕКС ( A1:C5 ;3;) вернёт вектор A3:C3 , то есть строку. Заметьте, что наличие второй точки с запятой принципиально, и за ней должна быть либо пустота (пробелы игнорируются), либо ноль.

А теперь вернёмся к формуле:

= ИНДЕКС ( B1 ;1): ИНДЕКС ( B5 ;1) ИНДЕКС ( A5 ;1): ИНДЕКС ( C5 ;1) и с учётом новых знаний упростим её до вида:

= ИНДЕКС ( A1:C5 ;;2) ИНДЕКС ( A1:C5 ;5;) — выглядит гораздо более лаконично!

Выбор области

Помните, что в описании синтаксиса ИНДЕКС первый параметр назывался диапазон(ы). Пришло время поговорить вот про эту букву » ы «. Выходит диапазонов может быть несколько? Да, их может быть несколько, когда они перечислены через уже упоминаемый выше оператор объединения, — «;» и взяты в скобки. Вот так:

= СУММ ( ИНДЕКС ( ( A1:B5;B1:C5 ); ; ; A9 ) )

Если A9 содержит 1, то ИНДЕКС вернёт диапазон A1:B5 , а если 2, то B1:C5 . Обратите внимание, что второй и третий параметры опущены, это означает, что исходные диапазоны вообще не будут подвергаться какому-либо усечению и вернутся, как есть (до этого мы «отщипывали» то строку, то столбец). В первом случае сумма будет 75, во втором — 85.

Выходит ИНДЕКС может возвращать ячейки, вектора и диапазоны. Невероятная гибкость!

Файл примера

Скачать

Динамические диапазоны

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

= A1 : ИНДЕКС ( A:A ; СЧЁТЗ ( A:A )) — классика жанра, нижняя граница диапазона определяется при помощи ИНДЕКС .

Наиболее распространенные способы определения нижней границы можно посмотреть тут:

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

= ИНДЕКС ( ME [ Начисление ]; ПОИСКПОЗ ( ‘ L3 ‘! $G$2 ; ME [ Телефон ]; 0 ) ): ИНДЕКС ( ME [ Начисление ]; ПОИСКПОЗ ( ‘ L3 ‘! $G$2 ; ME [ Телефон ]; 1 ) )

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

Более мощная замена ВПР

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

Прощайте ВПР() и СМЕЩ()

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

Подводим итоги

Возвращает ссылки, а не значения, что позволяет с его помощью формировать очень эффективные динамические диапазоны

Может возвращать ссылки как на отдельные ячейки, на вектора и на целые диапазоны

Позволяет выбирать области — ещё одна степень свободы

Это не летучая функция

ИНДЕКС + ПОИСКПОЗ быстрее и гибче ВПР для целей извлечения данных

Незаменим в формулах массивов

Это ключевая формула в Excel. Знать её просто необходимо. Серьёзная работа в Excel без неё немыслима. Ура!

Совсем забыл про вторую синтаксическую форму ИНДЕКС , которая существует, но особой погоды не делает. Вот она:

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

Под массивом тут подразумеваются конструкции вида <12:34:76:99>— столбец, или <12;34;76;99>— строка. Ясно, что ссылку от такого массива не вернёшь, — только значение и поэтому вроде бы как получается, что это отдельная синтаксическая форма. Пример:

Массив <1;2;3:4;5;6:7;8;9>— не что иное, как

Как узнать есть ли формула в ячейке?

Начиная с версий Excel 2013 среди стандартных функция появилась функция ЕФОРМУЛА (ISFORMULA) , которая позволяет определить наличие формулы в ячейке. Единственный аргумент функции — ссылка на ячейку: =ЕФОРМУЛА( A1 ) .
Функция возвращает ИСТИНА (TRUE) , если в ячейке есть формула и ЛОЖЬ (FALSE) если в ячейке константа.
Статья была написана ранее и описанные в ней способы применимы к любой версии Excel

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

Способ первый
Создание именованной формулы(без применения VBA — Visual Basic for Application)

  • Выделяете ячейку B1
  • жметe Ctrl+F3(вызов диспетчера имен) Если по каким-то причинам Ctrl+F3 не работает, то Диспетчер имен можно вызвать через меню:
    Excel 2003 :Вставка-Имя-Присвоить.
    Excel 2007-2010 :вкладка Формулы-Диспетчер имен.
  • в поле имя пишем — HasFormula(или любое понравившееся название, но не противоречащее правилам создания имен в Excel. Подробнее можно прочитать в статье: Именованные диапазоны)
  • в поле Диапазон пишем формулу: =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!A1)

если изменить первый параметр на 6 =ПОЛУЧИТЬ.ЯЧЕЙКУ( 6 ;Лист1!A1) , то результатом будет текст формулы из ячейки, которая указана в функции ПОЛУЧИТЬ.ЯЧЕЙКУ

Теперь, записав в ячейку В1 : =HasFormula Вы узнаете, есть ли в ячейке А1 формула или же там константа.

Так же при помощи функций листа макросов можно получить и сам текст формулы(если в ячейке записана формула СЕГОДНЯ() , то ПОЛУЧИТЬ.ЯЧЕЙКУ вернет именно текст СЕГОДНЯ()). Для этого достаточно поменять формулу в поле Диапазон на такую:
=ПОЛУЧИТЬ.ФОРМУЛУ(Лист1!A1)

Недостатки данного метода — Вы привязаны к «левостороннему» определению формулы. Т.е. таким методом Вы можете узнать есть ли формула(или какая формула) в ячейке, расположенной слева от ячейки с именованной формулой. Для того, чтобы «узнать формулу справа» именованная формула должна выглядеть так: =ПОЛУЧИТЬ.ЯЧЕЙКУ(48;Лист1!C1) ;для работы формулы обязательно должны быть разрешены макросы. Чтобы не зависеть от левостороннего или правостороннего определения можно закрепить столбцы(выделяете ссылку на ячейку — А1 и нажимаете F4. Ссылка будет меняться, появятся знаки доллара $. Если знак стоит перед именем столбца — $А1 — то смещение по столбцу происходить не будет. Так же со строками)
Для ПОЛУЧИТЬ.ФОРМУЛУ есть еще недостаток: формула будет отображаться в стиле ссылок R1C1, что не совсем удобно.
.

Для работы такой функции должны быть разрешены макросы.

Способ второй
Еще один метод определения(на мой взгляд более удобный в использовании) — создание пользовательской функции:

Function IsFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False) ‘Application.Volatile True If ShowFormula Then If Cell.HasFormula Then IsFormula = «Формула: » & IIf(Cell.HasArray, «<" & Cell.FormulaLocal & ">«, Cell.FormulaLocal) Else IsFormula = «Значение: » & Cell.Value End If Else IsFormula = Cell.HasFormula End If End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA( Alt + F11 ) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций( Shift + F3 ), отыскав её в категории Определенные пользователем (User Defined Functions) .

Теперь в ячейку записываем созданную формулу
=IsFormula( A2 )
Данная функция имеет два аргумента:

  • Cell — ссылка на проверяемую ячейку
  • ShowFormula — необязательный аргумент. Если присвоено значение ЛОЖЬ или 0 или опущен(не указан) — то функция вернет значение ИСТИНА или ЛОЖЬ(в зависимости от наличия или отсутствия формулы в ячейке). Если присвоено значение ИСТИНА или 1, то в функция вернет не просто ИСТИНА или ЛОЖЬ, а еще и текст самой формулы.

Формулу можно так же найти в диспетчере функций в категории Определенные пользователемIsFormula и записывать её в ячейку через мастер функций.
Чтобы при изменении формулы в целевой ячейке сразу же изменялось её отображение в ячейке с данной функцией необходимо убрать апостроф(‘) перед Application.Volatile True (в файле-примере это уже сделано).

Недостатки данного метода — для работы функции обязательно должны быть разрешены макросы

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

Tips_All_HasFormula.xls (31,0 KiB, 3 901 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Ссылка на основную публикацию
Adblock
detector