Функция ВПР в Excel
ВПР (англ. вариант – VLOOKUP) – очень удобная и полезная функция особенно для работы с большим объемом данных, поскольку позволяет автоматически сопоставить диапазоны с десятками тысяч наименований. Является разновидностью поиска, но только вертикального (сверху вниз) – извлекает информацию из таблицы или определенного диапазона по строкам. Работает во всех версиях Excel и даже Google Sheets.
Синтаксис
Элемент – может быть числовым (адрес ячейки) или текстовым («текст»).
Адрес таблицы – диапазон ячеек, где примерно находится значение.
Номер столбца – принимает целое число из диапазона от 1 до n, из него будет извлечен результат.
Интервальный просмотр – приблизительное (ближайшее) соответствие критерию обозначается как 1 (истина), а точное соответствие – 0 (ложь). Данный логический аргумент указывать необязательно, если таблица отсортирована от минимального к максимальному значению. Если таблица не отсортирована и аргумент опущен, это равносильно истине.
В русифицированной версии Excel аргументы вводятся через знак «;», в англоязычной – через запятую.
Как работает функция?
Программа после поиска искомого значения переходит во второй столбец, чтобы извлечь возвращаемый элемент.
С одним условием
Рассмотрим функцию на простом примере поиска сотрудника по присвоенному ему коду. Таблицу нужно отсортировать в порядке возрастания.

- Кликнуть по ячейке справа от таблицы или под ней и вписать искомый номер.
- В ячейке рядом ввести функцию ВПР через знак «=», либо же использовать опцию «Вставить функцию» в разделе «Формулы». Проще использовать именно опцию – там есть подсказки, какие именно данные нужны.


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

- Нажать «Enter» – и появится результат поиска.

Когда таблица не отсортирована и данные введены в хаотичном порядке, результат будет неправильный – программа найдет ближайшее соответствие («ИСТИНА»). Но можно не сортировать таблицу, а указать интервальный просмотр «ЛОЖЬ».


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

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

- Кликнуть по пустой ячейке и ввести формулу =ВПР(G1;ЕСЛИ(C2:C12=G2;A2:D12;»»);4;0).

- Для подтверждения действия зажать комбинацию клавиш Ctrl+Shift+Enter. Нажатие на «Enter» не сработает в этом случае, потому что формула должна быть выполнена в массиве (об этом свидетельствуют скобки «<>», в которые взята вся формула).

Поиск по нескольким столбцам
Объем данных расширен, и нужно найти конкретное значение среди нескольких столбцов, просуммировав данные с помощью функции СУММ.

- Кликнуть по ячейке и ввести формулу =СУММ(ВПР(G1;A1:D12;<2;3;4>;ЛОЖЬ)). Для третьего аргумента перечисление столбцов происходит в скобках «<>».

- Одновременно зажать клавиши Ctrl+Shift+Enter. В результате формула будет взята в фигурные скобки «<>».

Программа сравнивает данные в таблице и, как только определяет точное совпадение, суммирует их.
Таким же способом можно найти среднее значение с помощью СРЗНАЧ: =СРЗНАЧ(ВПР(G1;A1:D12;<2;3;4>;ЛОЖЬ)).

Сравнение двух таблиц
ВПР помогает сопоставить значения в таблицах.


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

- Клацнуть по первой ячейке в столбце и написать функцию ВПР со следующими аргументами: =ВПР($A$2:$A$12;ссылка_на_новый_лист!$A$2:$B$12;2;ЛОЖЬ). То есть нужно выделить диапазон с фамилиями менеджеров и сделать ссылки (строки и столбца) неизменными с помощью знака «$», посмотреть его в таблице с новой зарплатой, взять данные из второго столбца новой зарплаты и подставить их в ячейку С2. В результате отобразится первый результат.

- При помощи маркера заполнения протянуть полученное значение вниз.

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

- В «Типе данных» выбрать «Список», задать диапазон (в нашем случае – фамилии менеджеров).

- Нажать «Ок». Отобразится список.

- В следующую ячейку вписать функцию ВПР. Первый аргумент – ссылка на раскрывающийся список, второй – диапазон таблицы, третий – номер столбца, четвертый – «ЛОЖЬ». В итоге получится следующее: =ВПР(E1;A1:B12;2;ЛОЖЬ). Нажать «Enter».

Меняется фамилия в списке – меняется и зарплата.
Перенос данных
Есть таблица с менеджерами и объемом их продаж. Во второй таблице значится сумма премии за продажу для каждого менеджера. Необходимо перенести данные в левую таблицу, чтобы подсчитать общую выручку (произведение объема продаж и премии за 1 продажу: =ПРОИЗВЕД(C2*D2)).

- Выделить первую ячейку с премией в левой таблице. Написать функцию с аргументами, сделать неизменными значения из второй таблицы, указать в третьем аргументе столбец 2, вместо «ЛОЖЬ» можно вписать 0: =ВПР(B2;$G$2:$H$12;2;0)

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

Ошибки
Когда пользователь ошибается при вводе данных или выборе диапазона, вместо результата отображаются различные ошибки: #Н/Д, #ЗНАЧ, #ССЫЛКА.
Ошибка #Н/Д появляется, если:
- Указанный диапазон не содержит искомый элемент.
- Искомый элемент меньше, чем минимальный в массиве.
- Задан точный поиск (аргумент «ЛОЖЬ» или 0), а искомого нет в диапазоне.
- Задан приблизительный поиск (аргумент «ИСТИНА» или 1), но данные не отсортированы по возрастанию.
- Разный формат (числовой и текстовый) у ячейки, откуда берется искомое, и ячейки с данными первого столбца.
- В коде есть пробелы или невидимые непечатаемые знаки.
- Используются значения времени или большие десятичные числа.
Во избежание ошибки #Н/Д, когда ВПР не находит значение, рекомендуется использовать следующую формулу: =ЕСЛИОШИБКА(ВПР(C2;A1:B12;2;ЛОЖЬ);0) – вместо 0 можно написать «не найдено».



Ошибка #ЗНАЧ появляется, если:
- В качестве номера столбца указано число 0.
- Длина первого аргумента превышает 255 знаков.
Ошибка #ССЫЛКА появляется, если третий аргумент больше количества столбцов в таблице.
Вместо заключения
В Excel есть улучшенная версия ВПР – функция ПРОСМОТРХ. Считается более простой и удобной в использовании, работает в любом направлении и возвращает точные совпадения по умолчанию.
При необходимости задействовать горизонтальный поиск элемента стоит воспользоваться функцией ГПР.
В программах OpenOffice и LibreOffice используется VLOOKUP, ее синтаксис =VLOOKUP(lookupvalue; datatable; columnindex; mode), а работает функция точно так же, как описано выше.
Базы данных в Excel. Или ВПР по неограниченному количеству условий
Довольно часто я встречаю решения выполнения поиска в таблице по двум/трём условиям с применением ВПР/ГПР. Подчас решения очень интересные. Однако что ВПР, что ГПР выдают только одно значение, и решения не масштабируемы. А что делать если необходимо из массива выбрать всю строку, которая будет подчиняться набору критериев?
Для этого служит встроенный в Excel механизм работы с таблицами как с базами данных. К сожалению им мало кто пользуется, но он очень прост в освоении. В этой теме попробую про него рассказать.
Итак, есть некая таблица и необходимо из неё выбрать все строки подчиняющиеся неким условиям.
Ход поиска однотипен:
1. Столбцы исходной таблицы имеют уникальные заголовки.
2. Для выборки из данной таблицы создаём таблицу условий. При этом заголовок таблицы условий должен совпадать с названием столбца из исходной таблицы, по которому будет проходить выборка. Если выборка по одному столбцу, но по нескольким условиям, то можно написать всё в один столбец (см.скрин ниже). Если условия по нескольким столбцам — по одному условию на столбец, наименования столбцов могут повторяться.
3. Затем переходим в вкладку «Данные» — «Сортировка и фильтр» — «Дополнительно». В открывшемся окне
3.1. отмечаем «скопировать результат в новое место». В этом случае исходная таблица не изменится.
3.2. Исходный диапазон — таблица исходная, вместе с шапкой
3.3. Диапазон условий — таблица условий, вместе с шапкой
3.4. Адрес ячейки с которой будет заполняться итоговая таблица согласно выборки.
Итоговая таблица при этом никак не связана с исходной. И с ней можно проводить любые операции.

Вынос итоговой таблицы в отдельный лист с помощью меню выполнить нельзя, однако можно через макрос, если полностью указать путь с учётом имени страницы назначения :
Sub Выборка()
Range(«B3:B37»).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range(«I3:I6»), _
CopyToRange:=Range(«K3»), _
Unique:=False
Range(«B3:B37») — исходная таблица
Range(«I3:I6») — таблица критериев
Range(«K3») — начало вывода результирующей таблицы
Соответственно можно повесить выполнением макроса на кнопку, менять условия и получать новые выборки.
Вызов функции выборки:
AdvancedFilter (Действие, CriteriaRange, CopyToRange, Уникальный)

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

Например, если я хочу просуммировать все значения из столбца «Продажи» с учётом того, что они проводились в марте, и контактов было от 35. 36, то я создаю таблицу критериев (см.скрин ниже) и в любой ячейке листа формулу =БДСУММ(B6:G21;F6;B2:В3)
B6:G21 — Диапазон исходной таблицы, включая заголовок;
F6 — по какому столбцу буду суммировать;
B2:D3 — при каких условиях суммировать.

Да, сейчас это можно заменить на СУММЕСЛИ, но если будет больше условий? А если суммируется при сложных условиях содержания ячеек?
Насколько способ с использованием баз нагляднее, не так ли?
Варианты задания условий при этом поражают разнообразием. Не всегда можно сходу подобрать условия для СУММЕСЛИ, а тут это просто содержание одной ячейки.

Ну и естественно умные таблицы используются без проблем

Рассмотрим ещё один метод поиска значения по 2-м, 3-м и более критериям без применение ВПР.
Для сокращения пишу для умной таблицы. К тому же она масштабируема, так что добавление участника не приведёт к необходимости корректировки формулы.
Допустим есть таблица исходных данных (Таблица1), в корой представлены список сотрудников (столбец Name) с датой их приёма на работу (Start) увольнения с должности (Stop) и названием должности (Role). При этом если человек принят, но ещё не уволился, то его ячейка Stop пустая. Нужно найти должность человека (F3) на какую то дату (F4). Попробуйте это через ВПР прописать ради интереса. А вот так делается без ВПР:

В ячейке F6 собственно формула поиска.
=ЕСЛИОШИБКА(ПРОСМОТР(2;1/(Таблица1[Name]=F3)/(Таблица1[Start]<=F4)/((Таблица1[Stop]=»»)+(Таблица1[Stop]>=F4));Таблица1[Role]);»нет данных»)
Разберём структуру поиска и задания условий:
Таблица1[Name]=F3 — совпадение имени
Таблица1[Start]<=F4 — дата зачисления на работу меньше даты поиска
(Таблица1[Stop]=»»)+(Таблица1[Stop]>=F4) — дата поиска или меньше даты увольнения или дата увольнения пустая.
Таблица1[Role] — вывод ячейки для которой все три условия истина.
Как видно формула легко масштабируется под любое количество условий.
Ну вот как то так.
Этим постом я хотел показать, что применение ВПР(ГПР) не всегда оправдано (хотя несомненно знание этих функций обязательно), и есть более простые и лёгкие способы.

661 пост 14.8K подписчиков
Правила сообщества
2. Публиковать посты соответствующие тематике сообщества
3. Проявлять уважение к пользователям
4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.
По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях
Важно — сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.
Утверждения вроде «пост — отстой», это оскорбление автора и будет наказываться баном.
Сам пост крутой! Кстати, расширенный фильтр может на другой лист выводить таблицу, если Критерии стоят на этом же (другом, то есть) листе. Функции баз данных, на мой взгляд, больше на расчеты все-таки заточены, а не на сопоставление. Ну а ПРОСМОТР — это ж прадедушка ВПР!)))
Я предпочитаю использовать функцию Find, она не имеет ограничения на количество условий и не привязана к таблице, с ее пощью я ищу адресс ячейки в которой есть текст «Номер», и все что ниже это номера. Привет уродам, которые не могут делать свои гнусные отчеты в единообразной форме
как-то не очень удобно выходит, нужно каждый раз нажимать кнопку дополнительно и ок, если меняешь параметры в таблице запроса
Пост хорош для расширения кругозора, но, насколько я помню, «БДСУММ», «индекс», «поискпоз» крайне плохо работают при ссылках на другие книги, вечно ошибки вылезают.
Да и когда «суммеслимн» только появилась, тоже выяснилось, что к её логике надо переучиваться и привыкать.
95% задач по вычислению по множеству условий куда проще и нагляднее решаются конструкцией <=сумм(если(. ))>
Ну или sql по таблицам excel, если условий крайне много.
Читать ещё на Пикабу

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


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


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

Установка рисунков в качестве маркеров позволяет разнообразить внешний вид документации, сделав её нагляднее. Установка смайлов (© http://www.kolobok.us/ ) сделана в качестве примера (помните про Aiwan то? Или забыли. ).
Для гармоничного отображения требуется проредить количество маркеров, в противном случае произойдёт наложение рисунков друг на друга. О прореживании писал ранее.

Заменить маркеры на рисунки, в данном случае они представлены смайлами, можно при помощи не сложного макроса
Sub Markers_Smiles()
ActiveSheet.ChartObjects(«Диаграмма 1»).Activate
For Each icell In [C2:C102]
ActiveChart.FullSeriesCollection(1).Points(icell.Row — 1).Select
‘ Убираю рамки вокруг маркеров
Selection.MarkerForegroundColorIndex = xlNone
‘ Установка типа маркера «Рисунок»
Selection.MarkerStyle = -4147
Selection.Format.Fill.UserPicture «D:\4.gif»
If icell.Value = 0 Then Selection.Format.Fill.UserPicture «D:\1.gif»
If icell.Value = 1 Then Selection.Format.Fill.UserPicture «D:\2.gif»
If icell.Value = 2 Then Selection.Format.Fill.UserPicture «D:\3.gif»
[C2:C102] — столбец с признаками маркера. Число элементов равно числу данных (Х или Y). Может как заполняться вручную, так и быть расчётным (см.рисунок ниже).
D:\1.gif . D:\4.gif — пути к рисункам.
Аналогично производится заполнение рисунками нескольких графиков на диаграмме

Sub Прореживание_маркеров()
‘ Активируем диаграмму
ActiveSheet.ChartObjects(«Диаграмма 1»).Activate
‘ Перебор по всем графикам диаграммы
For k = 1 To ActiveChart.FullSeriesCollection.Count
‘ Удаляем все маркеры на линии
For i = 1 To ActiveChart.SeriesCollection(k).Points.Count
ActiveChart.FullSeriesCollection(k).Points(i).Select
Selection.MarkerStyle = -4142
‘ Выставляем маркеры с требуемым шагом.
For i = 1 To ActiveChart.SeriesCollection(k).Points.Count Step 4
ActiveChart.FullSeriesCollection(k).Points(i).Select
With Selection
.MarkerStyle = 8
.MarkerSize = 15
Public Sub color_graph()
ActiveSheet.ChartObjects(«Диаграмма 1»).Activate
For k = 1 To ActiveChart.FullSeriesCollection.Count ‘ Перебор по всем графикам
For Each icell In [C2:C102]
ActiveChart.FullSeriesCollection(k).Points(icell.Row — 1).Select
Selection.MarkerStyle = -4147
Selection.Format.Fill.UserPicture «D:\4.gif»
If icell.Value = 0 Then Selection.Format.Fill.UserPicture «D:\1.gif»
If icell.Value = 1 Then Selection.Format.Fill.UserPicture «D:\2.gif»
If icell.Value = 2 Then Selection.Format.Fill.UserPicture «D:\3.gif»
Аналогично разным графикам одной диаграммы можно присвоить уникальные маркеры

Sub Markers()
ActiveSheet.ChartObjects(«Диаграмма 1»).Activate
For i = 1 To ActiveChart.FullSeriesCollection.Count ‘ Перебор по всем графикам
ActiveChart.FullSeriesCollection(i).Select
Selection.MarkerForegroundColorIndex = xlNone
Selection.MarkerStyle = -4147
If i = 1 Then Selection.Format.Fill.UserPicture «D:\1.gif»
If i = 2 Then Selection.Format.Fill.UserPicture «D:\2.gif»
If i = 3 Then Selection.Format.Fill.UserPicture «D:\3.gif»
If i = 4 Then Selection.Format.Fill.UserPicture «D:\4.gif»
If i = 5 Then Selection.Format.Fill.UserPicture «D:\5.gif»
Ну или просто разными штатными маркерами разные графики. Но в автоматическом режиме — очень сокращает время подготовки документации. Полезно при подготовке к печати в чёрно-белом варианте.

Sub Установка_разных_маркеров()
ActiveSheet.ChartObjects(«Диаграмма 1»).Activate
For i = 1 To ActiveChart.FullSeriesCollection.Count ‘ Перебор по всем графикам
ActiveChart.FullSeriesCollection(i).Select
Selection.Format.Line.ForeColor.RGB = RGB(0, 0, 0) ‘ Цвета линий и маркера
Selection.Format.Line.Weight = 0.75 ‘ Установка толщины линии
Selection.MarkerStyle = i ‘ Установка типа маркера
Selection.MarkerSize = 4 ‘ Установка размера маркера
Selection.Format.Fill.ForeColor.RGB = RGB(255, 255, 255) ‘ Установка заливки маркера
Можно ли это сделать без макросов? Несомненно. Долго и нудно кликать кнопочки.

Но как по мне — проще скопировать и немного поправить код простого макроса. А в остальном — ваш выбор.

Excel триальный
Немного отвлечённый пост о защите своей работы.
Итак, общеизвестны способы закрытия информации в Excel, а именно:
1. Защита листа/книги

Выбираем разрешения/допуски, вводим пароль, сохраняем файл.
Дополнительно для каждой ячейки можно указать защищается ли она или нет. По умолчанию — защищается.
2. Защита кода

Точно так же вводим пароль (с повторением), ок, сохраняем.
Но все эти способы не более чем игрушки, и вскрываются совершенно не сложно при наличии некоторых минимальных навыков и особенно при сохранении в *.xlsm (файл с поддержкой макросов). Сохраняйте в *.xlsb (двоичный код), если хотите хоть немного защитить свою работу.
Впрочем защита листа, даже без задания пароля, очень полезная вещь позволяющая ограничить вероятность порчи документа. Например если оставить без защиты (доступными для редактирования) только ячейки с исходными данными, то сам расчёт шаловливыми ручками испорчен не будет. Довольно часто пользуюсь.
Каким же образом можно ещё затруднить использование вашей работы, кроме как не давать её?
Ну для начала надо определиться что защищаем. Если это просто текст, и вы его кому то отдали, то забудьте о защите — он общедоступен. Но документ Excel это, прежде всего расчёты. Своей масштабируемостью они и ценны — при изменении исходных данных пересчёт произойдёт автоматически.
Этим можно воспользоваться выполнив передачу результатов расчёта в виде статических таблиц. Да, можно распечатать/сохранить в pdf, или банальным Ctrl+А / Ctrl+C / Ctrl+V /только значения/. А можно просто воспользоваться простым макросом:
‘ Замена всех формул на листе в значения
Sub Form_2_Dan()
Dim a As Integer
‘ Запрашиваем подтверждение
a = MsgBox(«Внимание!» & _
Chr(10) & «Вы точно хотите заменить все формулы на листе на значения?» & _
Chr(10) & «Это необратимо!», _
52, «Замена формул на значения.»)
‘ Если OK, то замену производим
If a = 6 Then
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
Расположение макроса — модуль.
Макрос сохраняется в личный набор/надстройку и кнопка запуска выводится на панель.
Внимание! Действие макроса необратимо!
Можно сделать «триальным» расчёт разместив в модулях листов вот такого вида макрос.
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
If Date >= #10/6/2022# Then ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
Application.ScreenUpdating = True
Т.е. после 10.06.2022 все расчёты с листа исчезнут. А цифры останутся.
Можно заменить проверку на заполнение ячейки, например проверить что в определённой ячейке записан автор труда «Вася Пупкин». 🙂 При смене которого всё превратится в набор цифр..
Естественно доступ к макросам должен быть закрыт/запаролен.
Ещё вариант — ввод пароля на саму книгу:
Private Sub Workbook_Open()
Dim i&, n&, P As Variant
Application.ScreenUpdating = False
If Date >= #1/2/2022# Then
For i = 1 To Sheets.Count
Sheets(i).Activate
Sheets(i).Protect «1234»
P = InputBox(«Время использования книги истекло, для продолжения введите пароль», «ВВОД ПАРОЛЯ»)
If P = «°0176» Then
For i = 1 To Sheets.Count
Sheets(i).Activate
Sheets(i).Unprotect «1234»
If n = 0 Then
Application.DisplayAlerts = False
ThisWorkbook.Close
Application.DisplayAlerts = True
MsgBox «Пароль не верный, у вас еще » & n & » попытки»
Application.ScreenUpdating = True
Расположение макроса — «Эта книга».
#1/2/2022# — дата с которой будет запрашиваться пароль
«°0176» – правильный пароль

И при открытии файл будет встречать весёлым окошком:

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

Формат отображения чисел
Многие знакомы с понятием формата отображения чисел в ячейках. Но не многие знают что данные форматы работают не только в ячейках.
Для начала напомню в кратце о чём речь:
Для любой ячейки можно задать независимый формат отображения. Можно воспользоваться как преднастроенными форматами, так и создать пользовательский формат:

Пользовательский формат может состоять из 4 фрагментов-масок, разделенных точкой с запятой*, где каждый фрагмент применяется в определенном случае:
<ПОЛОЖИТЕЛЬНЫЕ>; <ОТРИЦАТЕЛЬНЫЕ>; <НУЛЕВЫЕ>; <ТЕКСТ>
Три подряд точки с запятой Excel воспринимает как четыре пустых маски для всех четырех возможных случаев, т.е. выводит пустоту при любом значении ячейки.
Не нужно включать все разделы кода в пользовательский числовой формат. Если указано только два раздела, первый используется для положительных чисел и нулей, а второй — для отрицательных чисел. Если задан только один раздел, он применяется для всех чисел. Если нужно пропустить раздел кода и включить раздел, который следует за ним, необходимо оставить точку с запятой для пропускаемого раздела.
Excel использует несколько спецсимволов в масках форматов:
• 0 (ноль) — одно обязательное знакоместо (разряд), т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого знакоместа нет числа, то будет выведен ноль. Например, если к числу 12 применить маску 0000, то получится 0012, а если к числу 1,3456 применить маску 0,00 — получится 1,35.
• # (решетка) — одно необязательное знакоместо — примерно то же самое, что и ноль, но если для знакоместа нет числа, то ничего не выводится
• (пробел) — используется как разделитель групп разрядов по три между тысячами, миллионами, миллиардами и т.д.
• [ ] — в квадратных скобках перед маской формата можно указать цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.
Любой пользовательский текст (кг, чел, шт и тому подобные) или символы (в том числе и пробелы) — надо обязательно заключать в кавычки.

Естественно вариаций масок гораздо больше, но данный пост не об этом -пользовательский формат общеизвестен.
Примечание: *пользовательские форматы в русской и английской версии офиса не совпадают. Внезапно. Всё мной написанное относится к русской версии.
Данный пост о том, как построить диаграмму вот с такими осями (например):

Как видно — это обычная диаграмма с двумя графиками, построенными по основной и вспомогательным вертикальным осям. И в этом построении нет никакого секрета. А вот сделать так, чтобы подписи левой оси начинались с 4-х, а подписи правой заканчивались на 2000-х нам помогает именно формат чисел подписей осей:

Код формата левой (основной) оси — [>=4] 0 ;;;
Код формата правой (вспомогательной) оси — [<=2000] 0 ;;;
Возможно данный способ кому-то пригодится. Ну а с масками формата — экспериментируйте 🙂
УПД. Благодарю Yacl за наблюдательность

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

Любой, кто решал эту задачку — действовал следующим способом:
1. Создаётся столбец Х;
2. Создаётся столбец Y, котором происходит расчёт согласно заданной функции;
3. Выделяются два созданных столбца и вставляется график.
Но это просто и скучно. Есть другой способ. Построить график непосредственно из макроса.
Начнём с простого — у нас есть набор точек соответствия X и Y.
Sub Построй_график_по_точкам()
Dim MyChart As Chart
Set MyChart = ActiveSheet.Shapes.AddChart2.Chart
With MyChart
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = «xlXYScatterSmoothNoMarkers»
.SeriesCollection(1).XValues = Array(0#, 0.5, 1#, 1.5, 2#, 2.5, 3#, 3.5, 4#, 4.5, 5#)
.SeriesCollection(1).Values = Array(0#, 0.4794, 0.8415, 0.9975, 0.9093, 0.5985, 0.1411, -0.3508, -0.7568, -0.9775, -0.9589)
.ChartType = xlXYScatterLines ‘ Соединение точек прямыми
.SetElement msoElementLegendNone
Другие варианты отображения линии графика:
.ChartType = xlXYScatterLinesNoMarkers ‘ Соединение точек прямыми без маркеров
.ChartType = xlXYScatterSmoothNoMarkers ‘ Сглаженная линия
Более подробно о типах — тут
Сборка Array(. ) может быть выполнена с использованием программы, которую я выкладывал в 7-й части темы про оцифровку, ну или заполнить руками.
Как не трудно догадаться — вовсе не обязательно иметь готовый набор данных.
Рассмотрим ситуацию, когда требуется построить два графика на одной диаграмме.
Для упрощения восприятия использую две простые функции линий y1 = x — 20, y2 = x + 20.
Sub Создать_диаграмму()
Dim MyChart As Chart
Dim i As Integer, Xmin As Single, dX As Single, Xmax As Single, _
Ymin As Single, Ymax As Single, dY As Single
Dim X() As Single
Dim Y() As Single
Dim Yp() As Single
Xmin = 0: Xmax = 300: dX = 20 ‘ Сие больше нужно для осей и оформления
Ymin = 0: Ymax = 160: dY = 20
ReDim X(0 To Xmax — Xmin): ReDim Y(0 To Xmax — Xmin, 1 To 2)
ReDim Yp(0 To Xmax — Xmin)
For i = 0 To Xmax — Xmin Step 1
X(i) = Xmin + i
‘ Заполнение данных первого графика
Y(i, 1) = X(i) — 20
‘ Заполнение данных второго графика
Y(i, 2) = X(i) + 20
‘ создадим новую диаграмму и зададим ей габаириты
Set MyChart = ActiveSheet.Shapes.AddChart2(, , , , 300, 200).Chart
For i = 1 To 2
For j = 0 To Xmax — Xmin Step 1
With MyChart
.SeriesCollection.NewSeries
.SeriesCollection(i).XValues = X
.SeriesCollection(i).Values = Yp
.ChartType = xlXYScatterSmoothNoMarkers
При задании новой диаграммы можно задать в том числе и положение диаграммы на листе
AddChart2(Стиль,XlChartType,слева,сверху,ширина,высота,NewLayout)
В итоге получим вот такую диаграмму:

В дальнейшем можно обработать её как обычную — задать цвета, толщины и т.д. Но можно это сразу поручить нашему макросу:
Sub Создать_диаграмму()
Dim MyChart As Chart
Dim i As Integer, Xmin As Single, dX As Single, Xmax As Single, _
Ymin As Single, Ymax As Single, dY As Single
Dim X() As Single
Dim Y() As Single
Dim Yp() As Single
Xmin = 0: Xmax = 300: dX = 20 ‘ Сие больше нужно для осей и оформления
Ymin = 0: Ymax = 340: dY = 20
ReDim X(0 To Xmax — Xmin): ReDim Y(0 To Xmax — Xmin, 1 To 2)
ReDim Yp(0 To Xmax — Xmin)
For i = 0 To Xmax — Xmin Step 1
X(i) = Xmin + i
Y(i, 1) = X(i) — 20
Y(i, 2) = X(i) + 20
Set MyChart = ActiveSheet.Shapes.AddChart2(, , 0, 0, 400, 230).Chart
For i = 1 To 2
For j = 0 To Xmax — Xmin Step 1
With MyChart
.SeriesCollection.NewSeries
.SeriesCollection(i).XValues = X
.SeriesCollection(i).Values = Yp
.ChartType = xlXYScatterSmoothNoMarkers
With MyChart
.SetElement (msoElementPrimaryCategoryGridLinesMajor)
‘ Включаю отображение названия осей
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Text = «Расход Go т/ч»
.Axes(xlValue, xlPrimary).AxisTitle.Text = «Давление кгс/кв.см.»
‘ Выключаю отображение легенды
.SetElement (msoElementLegendNone)
‘ Выключаю отображения заголовка диаграммы
.SetElement (msoElementChartTitleNone)
‘ Выставляем параметры осей
.Axes(xlCategory).MinimumScale = Xmin
.Axes(xlCategory).MaximumScale = Xmax
.Axes(xlCategory).MajorUnit = dX
.Axes(xlValue).MinimumScale = Ymin
.Axes(xlValue).MaximumScale = Ymax
.Axes(xlValue).MajorUnit = dY
‘ Оформление гризонтальной оси
MyChart.Axes(xlCategory).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 0, 0)
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Visible = msoTrue
.Weight = 1.25
‘ Оформление вертикальной оси
MyChart.Axes(xlValue).Select
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 0, 0)
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Visible = msoTrue
.Weight = 1.25
‘ Оформление горизонтальной сетки
MyChart.Axes(xlValue).MajorGridlines.Select
With Selection.Format.Line
.Visible = msoTrue
.DashStyle = msoLineDash
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 240)
.Transparency = 0
‘ Оформление вертикальной сетки
MyChart.Axes(xlCategory).MajorGridlines.Select
With Selection.Format.Line
.Visible = msoTrue
.DashStyle = msoLineDash
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 240)
.Transparency = 0
По итогу диаграмма будет выглядеть так:

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения
Итак, мы с вами имели рисунок на бумажке, перевели его в цифру (сняли точки), написали макрос, позволяющий определить значение Y по известным аргументам. В некоторых случаях этого достаточно, однако не всегда. Например для отчёта требуется указать поиск решения в графическом виде, поскольку заказчика «я фсио оцифровал! Вы не пониаити, у меня макрос!» не устраивает. Особенно когда речь идёт о больших деньгах, и проводятся гарантийные испытания с определением поправочных коэффициентов (например.). Или преподаватель в институте будет приятно удивлён красивому графику в курсовом проекте/дипломе.
Итак, по сути потребуется решить два вопроса:
1. Построить ход поиска с помощью стрелки/стрелок.
2. Совместить построенный график с изначальным рисунком.
Т.е. получить что то похожее на вот это:

На самом деле нет принципиальной разницы в начале построить поиск решения или в начале совместить рисунок с диаграммой. Но начну с построения, т.к. при этом меньше мусора на рисунках.
Часть 1. Построение поиска решения.
Итак, у нас есть заданные аргументы (G2, t1в) и результат расчёта Р2. На графике сие будет выглядеть как одна точка с координатами X = G2 = 200 (в нашем примере) и Y = Р2 = 0,065
Существуют минимум три метода построения стрелки поиска:
Вариант 1. Для вертикальной и горизонтальной части строим независимые линии.

После построения настраиваем цвета, указываем наличие стрелки, и т.д.
Для вертикальной линии второй точкой указывается точка с равным значением по Х и минимумом по бумажному графику Y.
Для горизонтальной линии второй точкой указывается точка с равным значением по Y и минимумом по бумажному графику X.
Минимумы и максимумы диаграммы выставляются равными минимумам и максимумам бумажного рисунка.
Хоть данный вариант и кажется наиболее раздутым, но на практике, когда линий поиска десяток, он наиболее удобен и понятен.
Вариант 2. Единая линия поиска.

Выставление значений дополнительных точек, и значений осей аналогично Варианту 1.
Вариант 3. Использование погрешностей для указания поиска решения.

Если точка одна, то для отображения линий погрешности необходимо перейти в настройки предела погрешности по Х и по Y поочерёдно и.

— величина погрешности «пользовательская».
В качестве отрицательной величины погрешности указываем соответственно значение X и Y

Если есть желание получить стрелку направленную к оси Y, а ось Х начинается не с 0 (в нашем случае с 2-ти), то потребуется сделать ячейку рассчитывающую смещение относительно 0.
В нашем примере сделаем такое и для X и Y:
ось Х сдвинута на 20. Соответственно имеем ячейку Хзаданное — Хсмещения = 200 — 20
ось Y сдвинута на 0,02 Соответственно имеем ячейку Yзаданное — Yсмещения
Это значения не статичны, т.е. они пересчитаются при изменении исходных данных.
При указании отображения погрешностей ссылаемся на данные ячейки.

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

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

Часть 2. Совмещение построенного графика с изначальным рисунком.
И опять есть минимум три варианта.
Вариант 1. Использование рисунка в качестве подложки под областью построения (то, что расположено внутри границ осей). Для этого рисунок сначала подготавливается (обрезается по размерам построения, при этом подписи осей оказываются обрезанными), а затем вставляется по пути: Формат области построения – Заливка – Рисунки и текстура – Файл / из буфера обмена;
Вариант 2. Использование рисунка в качестве подложки области диаграммы (вкладка Формат области диаграммы – Заливка – Рисунки и текстура — Файл) вставляется рисунок графика (предварительно подготовленный и очищенный. Необходимо также учитывать, что потребуется некоторая ширина полей для выставления подписей). Совмещаются границы графика Excel с границами графика рисунка перетягиванием за маркеры границы графика (перемещение указал стрелками).

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

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

при необходимости можно построить дополнительную линию. В качестве примера построена дополнительная кривая при 40°С при помощи созданной пользовательской функции при заданной температуре 40°С и переменной влажности. Аналогично построена дополнительная линия на первом рисунке

Вариант 3. При третьем варианте рисунок вставляется на лист Excel, построенный график/ подготовленная диаграмма размещается над рисунком, при этом заливка поля построения и самой диаграммы «отсутствует» или «прозрачная». После совмещения изображение и диаграмма фиксируются между собой как это было указано в посте «Нестандартные заголовки диаграмм».
Третий вариант позволяет разместить отображение поиска решения для нескольких диаграмм расположенных на одном листе, если таковое требуется заказчиком. Например на рисунке ниже на одном листе 7-мь диаграмм, и в дальнейшем данный рисунок пошёл в отчёт скомпонованный в таком виде.

Отдельно стоят диаграммы состоящие из расположенных рядом двух и более диаграмм.
Их оформление, опять же, может быть реализовано тремя способами.
Способ 1 — применение третьего варианта наложения диаграмм на рисунок (описано выше). Т.е. строим два независимых графика для левой и правой части, делаем их прозрачными и накладываем на рисунок.
Способ 2 — применение первого варианта, наложение графика на область построения (описано выше). Т.е. строим два независимых графика для левой и правой части, накладываем области построения и размещаем взаимно друг другу до совпадения минимума и максимума.
Способ 3. — пригоден только для расположенных рядом двух диаграмм. Данный способ позволяет избавится от стыка, неизбежно возникающего при первых двух способах. Основано как правило на применении второго варианта описанного выше, а именно использовании рисунка как подложки под диаграммой.
Рассмотрим один из вариантов построения стрелки на диаграмме, состоящей из двух диаграмм, при этом ширина клеток и величина шага для правого и левого графика разная.

Для наглядности оси были ярко выражены и отодвинуты относительно области построения, а графики разнесены по цветам.
Шаг 1. Построение левого графика (синий график, синяя ось, синие данные).
1. Построить точечный график по исходным данным, причём заложить небольшой перехлёст по Х (установлено 80 вместо 70-ти по рисунку);
2. Сделать подложку под диаграмму (используется весь рисунок, без обрезок или разделения на две части);
3. Растянуть область построения на рисунок;
4. Задать значения оси (диапазон) Y в соответствии с оцифровкой;
5. Задать значения оси (диапазон) Х таким образом, чтобы Хмин было равно минимальному значению на рисунке (30), а Хмакс подобрать таким образом, чтобы совпали значения рисок (40=40, 50=50, 60=60, 70=70).
Шаг 2. Построение правого графика (красный график, красный ось, красный данные).
1. Построить точечный график по исходным данным, причём минимум Х заложить равным минимуму по второй оси (0);
2. Указать построение по вспомогательным осям;
3. Задать значения вспомогательной оси (диапазон) Y в соответствии с оцифровкой;
4. Задать значения оси (диапазон) Х таким образом, чтобы Хмакс было равно максимальному значению по второй оси рисунка, а Хмин подбрать таким образом, чтобы начало второго графика легло на минимум второй оси Х рисунка.
Шаг 3. Убрать отображение подписей осей, сетки и т.д. Настроить цвета линий.
Для кого то это покажется элементарным, но я на своей практике не один раз ломал голову как выполнить графическое оформление поиска решения. Базовыми знаниями поделился. Всё дальнейшее зависит от вас. Будут вопросы — помогу по мере сил.
Пожалуй на этом закончим и серию Excel. Долгая дорога оцифровки. Всё обещанное показал, а именно:
9. Отображение поиска решения (данный пост).

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции
По аналогии с Excel. Долгая дорога оцифровки. Часть 4. Макрос по созданию макросов апроксимации простых графиков полиномом и Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция не сложно выполняется макрос по созданию макросов оцифровки простых графиков с использованием кусочной интерполяции.

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

Отличием от вводимых ранее данных является требование указания критериев через точку с запятой.
Основное нововведение — определение количества графиков. Если вспомните ещё в Excel. Долгая дорога оцифровки. Часть 2. Забираем данные с листа я писал, что что «снятие точек производить от меньшего Х к большему. При наличии диаграммы зависимости от двух аргументов типаY(X1, X2) начиная с графика меньшего Х2. С обязательным условием — каждая следующая линия должна начинаться с Х меньшего, чем закончилась предыдущая.«. И теперь можно этим воспользоваться — определить количество переходов на новую линию по уменьшению Х по сравнению с предыдущим.
For i = 2 To xVal.Count
If i = xVal.Count Then
Nkon(Ndiap) = i
If xVal.Rows(i) < xVal.Rows(i — 1) Then
Nkon(Ndiap) = i — 1
Ndiap = Ndiap + 1
Nna4(Ndiap) = i
Ну а дальше просто — перебираем поочерёдно все диапазоны, для каждого определяем уравнение апроксимации.
Результирующий макрос будет иметь вид:
‘ Поправки Сербия Панчево Страница 34 из 77 Нижний рисунок
Public Function ТЭХ_ПТ80_Рис3(ByRef Go As Single, ByRef CkH As Single) As Single
Dim krit_kriv As Variant
krit_kriv = array(2.96,3.06,3.15)
Dim kriv As Variant
kriv = Array(-0.00271242 * Go + 0.100817, _
-0.00252906 * Go + 0.230858, _
0.000276671 * Go ^ 2 -0.203078 * Go + 31.5862)
ТЭХ_ПТ80_Рис3= kus_interp(krit_kriv, kriv, CkH, 2)
End Function
Не забываем удалять кавычки в начале и конце макроса при копировании в модуль.
Давайте так, чтобы не утомлять читателя выкопировкой текстовок макросов — выкладываю сие для свободной скачки/использования/модернизации
Если возникнут вопросы как сие работает, распишу. Если у кого то что то не заработает — обращайтесь, посмотрю.
В программе есть не описанный мной макрос кубического сплайна, но т.к. автор не я, и макрос выложен в общественный доступ, для ознакомления с остальными сплайнами переходите по приведённой в макросе ссылке

За сим тему с оцифровкой считаю закрытой. Все базовые функции показал. С помощью данных функций, а так-же их комбинаций и расширений можно сделать автоматическую оцифровку совершенно разнообразных конфигураций диаграмм.
Например диаграмма с несколькими независимыми графиками типа такой. Можно либо сделать 3 независимых макроса, либо один с выбором графика.

С помощью автоматического создания макросов

Позволит получить (текстовка от графика отличного от представленного выше рисунка)
‘ ТЭХ ПТ80 Рис.3 Давление в отборах при конденсационном режиме [МПа]
Public Function ТЭХ_ПТ80_Рис3(ByRef Go As Single, ByRef Название_графика As Variant) As Variant
Dim krit_graph As Variant
krit_graph = array(1,2,3)
Select Case Название_графика
Case krit_graph(0)
ТЭХ_ПТ80_Рис3 = -0.0027124 * Go ^ 1 + 0.10082
Case krit_graph(1)
ТЭХ_ПТ80_Рис3 = -0.0025397 * Go ^ 1 + 0.23509
Case krit_graph(2)
ТЭХ_ПТ80_Рис3 = -0.0026659 * Go ^ 1 + 0.4529
ТЭХ_ПТ80_Рис3 = 999999999999999
End Function
При желании указывать название графика правится krit_graph = array(«Go»,»Qo»,»qt»).
Ну и гораздо более сложноподчинённые, например что реализовано у меня:
Создание макроса для варианта когда критерий зависит от своего критерия

Диаграммы режимов ПТ типа ПТ-80

Диаграммы режимов типа Т-250

Нормативной температуры сетевого подогревателя.

Все вышеперечисленные сложные диаграммы можно разбить на простые, и сделать в ручном режиме с помощью тех программ создания макросов что я дал. А можно потратить пару вечеров и создать удобный инструмент под свои задачи.
Из того на что стоит обратить внимание, или маленькие лайфхаки:
1. Не всегда есть разметка осей. Например на диаграмме на последнем скрине вертикальная ось не размечена. Но она в данном случае не нужно. Важно иметь одинаковое значение для левого и правого графиков. Как правило я принимаю в качестве минимального значения оси — 0, в качестве максимального — число клеток (например 12-ть).
2. Внимание! Ось Х не обязательно горизонтальная при «снятии точек»! Например на диаграмме на последнем скрине для правого графика удобно взять в качестве оси Х вертикальную ось а в качестве Y — горизонтальную. Тогда результат обработки левой номограммы будет сразу выступать в качестве аргумента для правой номограммы.
3. Есть варианты оцифровки, когда лучше привязываться не к значениям осей, а к клеточкам 🙂 Да, звучит дико, но иногда проще внести пересчёт внутри макроса, чем реализовать оцифровку по данным осей. Например диаграмма ниже — обратите внимание, что вертикальная ось не обозначена, зато горизонтальная в левой диаграмме разбита на 3 участка с разным масштабом.

Упд. Вспомнил ещё про важную часть — обратные функции. Т.е. есть макрос (готовый!), который по известным Х1, Х2. находит Y. Иногда требуется с использованием данного макроса и известных Y и X1 найти X2. Но об этом в следующий раз. А то и так пост разросся.

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция
Ну теперь пора перейти именно к интерполяции исходных данных. Итак, я напомню — у нас был лист с распечатанным графиком, мы его отсканировали, получили набор точек ХY и. имеем вот такую (в лучшем случае) картину (см.первый скрин). Т.е. по данному набору точек невозможно сделать корректную апроксимацию полиномом.

Выходом из данной ситуации является разбиение данных на несколько частей, в данном случае 2 с общей точкой Do=428, создание кусучнозаданной функции (ЕСЛИ меньше 428 одна функция, если больше — вторая функция). Но так в данном случае, а если надо сделать два, три. и больше разбиений? Кропотливая работа. Но зачем, если можно заставить Excel в автоматическом режиме выбирать малое количество точек и проводить через них интерполяционную функцию.
Отчасти кусочную интерполяцию показывал в прошлом посте серии ( Excel. Долгая дорога оцифровки. Часть 5. Создание пользовательской функции для двух аргументов. Ручной вариант ) при поиске решения между заданных критериев.
Как простые варианты рассмотрим кусочную интерполяцию по двум и по четырём точкам для заданных ниже данных.

Допустим нужно определить значение Y при X = 2.5.
При кусочной интерполяции по двум точкам используются две ближайшие заданные точки к X = 2.5. , т.е. 2 и 3, через данные точки провидится линия,и по ней находится Y при X = 2.5..

При кусочной интерполяции по четырём точкам используются две ближайшие заданные точки к X = 2.5. справа и две две ближайшие заданные точки к X = 2.5. слева, т.е. 1 и 2 и 3 и 4, через данные точки провидится кривая (полином 3-й степени),и по ней находится Y при X = 2.5.
Это справедливо для данных за 2-й и перед предпоследней известной точкой. Для данных отрезков и для экстраполяции использую линейную интерполяцию (по 2-м точкам).

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

Ну и собственно с помощью чего сие выполняется:
Макрос кусочной интерполяции при использовании данных с листа
‘ Интерполяция по 2-м, 3-м или 4-м ближайшим (до и после) к заданной (Xisk) точке
‘ В подпрограмму передаются все заданные точки
‘ Интерполяция происходит косочно, по количеству заданных точек с учётом расположения заданного Х
‘ Данные из листа Excel.
Public Function kus_interp_Ex(Xt As Range, Yt As Range, Xisk As Single, Optional ByVal toch As Integer = 2) As Variant
Dim i As Long
Dim xd() As Double
Dim yd() As Double
Dim cd() As Double
‘ toch — указание поиска решения с использованием количества точек (2, 3, 4).
Select Case toch
Case 2 ‘ Уравнение а·х+b
kus_interp_Ex = linterp(Xt.Rows(Xt.Count — 1), Xt.Rows(Xt.Count), Yt.Rows(Xt.Count — 1), Yt.Rows(Xt.Count), Xisk)
For i = 1 To Xt.Count — 1
If Xisk < Xt.Rows(i + 1) Then
kus_interp_Ex = linterp(Xt.Rows(i), Xt.Rows(i + 1), Yt.Rows(i), Yt.Rows(i + 1), Xisk)
Case 3 ‘ Уравнение а·х^2+b·x+c Интерполяция по принципу х1 Х х2 х3
kus_interp_Ex = kubterp(Xt.Rows(Xt.Count — 2), Xt.Rows(Xt.Count — 1), Xt.Rows(Xt.Count), _
Yt.Rows(Xt.Count — 2), Yt.Rows(Xt.Count — 1), Yt.Rows(Xt.Count), Xisk)
For i = 1 To Xt.Count — 2
If Xisk < Xt.Rows(i + 1) Then
kus_interp_Ex = kubterp(Xt.Rows(i), Xt.Rows(i + 1), Xt.Rows(i + 2), _
Yt.Rows(i), Yt.Rows(i + 1), Yt.Rows(i + 2), Xisk)
Case 4 ‘ Уравнение а·х^3+b·x^2+c·x+d Интерполяция по принципу х1 х2 X х3 x4
ReDim xd(1 To 4) As Double
ReDim yd(1 To 4) As Double
If Xisk < Xt.Rows(2) Then ‘ Экстраполяция ДО и интерполяция ДО второй известной точки — линейна
kus_interp_Ex = linterp(Xt.Rows(1), Xt.Rows(2), Yt.Rows(1), Yt.Rows(2), Xisk)
If Xisk >= Xt.Rows(Xt.Count — 1) Then ‘ Экстраполяция ЗА и интерполяция ПОСЛЕ второй известной точки — линейна
kus_interp_Ex = linterp(Xt.Rows(Xt.Count — 1), Xt.Rows(Xt.Count), Yt.Rows(Xt.Count — 1), Yt.Rows(Xt.Count), Xisk)
Else ‘ Между ними считаю по интерполяции полиномом с расположением заданного икса между двух пар точек
For i = 3 To Xt.Count — 1
If Xisk < Xt.Rows(i) Then
xd(1) = Xt.Rows(i — 2): xd(2) = Xt.Rows(i — 1): xd(3) = Xt.Rows(i): xd(4) = Xt.Rows(i + 1)
yd(1) = Yt.Rows(i — 2): yd(2) = Yt.Rows(i — 1): yd(3) = Yt.Rows(i): yd(4) = Yt.Rows(i + 1)
Linia_trenda yd, xd, 3, cd
kus_interp_Ex = cd(1) * Xisk ^ 3 + cd(2) * Xisk ^ 2 + cd(3) * Xisk ^ 1 + cd(4)
End Function
Xt — Столбец исходных Х
Yt — Столбец исходных Y
Xisk — X при котором требуется определить Y
toch — количество используемых точек при интерполяции.
Наблюдательный заметит, что в макросе присутствует и интерполяция с использованием 3-х точек. (0_о)
Дополнительная функция, требуемая для макроса кусочной интерполяции — определение коэффициентов полинома линии тренда:
‘ Проведение интерполяции с использованием функционала Excel
‘ На выходе — коэффициенты полинома. Число точек должно быть минимум на одну больше, чем степень полинома.
‘ Данные берутся из программы
Public Sub Linia_trenda(ByRef Y() As Double, ByRef x() As Double, ByVal PolyStep As Integer, ByRef c() As Double, Optional ByRef r2 As Double)
Dim stepen As Long
‘ Ввожу проверку не превышения степени массива
If (UBound(Y) — LBound(Y) — 1) < PolyStep Then
stepen = UBound(Y) — LBound(Y)
stepen = PolyStep
‘ Объявляю переменные, создаю матрицы под размер данных и степень полинома.
Dim X1() As Double, Y1() As Double
ReDim X1(LBound(Y) To UBound(Y), 1 To stepen) As Double
ReDim Y1(LBound(Y) To UBound(Y), 1 To 1) As Double
ReDim c(1 To stepen + 1) As Double
‘ Заполню массив Х в соответствии со степенью уравнения.
For i = LBound(x) To UBound(x)
For N = 2 To stepen
X1(i, N) = X1(i, 1) ^ N
‘ Нахожу уравнение.
Dim Coefs As Variant
Coefs = WorksheetFunction.LinEst(Y1, X1, True, True)
‘ Вытаскиваю коэффициенты полинома.
For i = 1 To stepen + 1
c(i) = Coefs(1, i)
‘ Вытаскиваю величину достоверности апроксимации.
r2 = Coefs(3, 1)
Макрос linterp был представлен в прошлый раз.
Одним из замечательных применений кусочной интерполяции является возможность автоматического создания макросов функций без проблем с невозможностью достоверной апроксимации исходных данных вот в таком виде:
‘ Поправки Сербия Панчево Страница 39 из 77
Public Function ТЭХ_ПТ80_Рис3(ByRef Go As Single) As Variant
Dim Xt As Variant
Dim Yt As Variant
Xt = Array(13.0042194092827, 13.4767932489451, 14.0675105485232)
Yt = Array(-6.38888888888889E-02, -6.38888888888889E-02, -0.06875)
ТЭХ_ПТ80_Рис3 = kus_interp(Xt, Yt, Go, 4, 2)
End Function
Учтите что kus_interp при использовании данных с листа и из макроса отличаются.
Но об этом в следующий раз.
Планы на будущее
1. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции.
2. Построим поиск решения.
3. Строим график функции.

Excel. Долгая дорога оцифровки. Часть 4. Макрос по созданию макросов апроксимации простых графиков полиномом
«Позабыты хлопоты, остановлен бег, Вкалывают роботы, счастлив человек!»(с)ПЭ
В этом посте я хотел бы показать, что ничего сложного в создании макроса, который бы выполнял рутинную работу по созданию макросов нет.
Всё базируется на трёх китах:
2. Результатом действия макроса может являться текст;
3. В текстовых переменных можно использовать спец символы:
3.1. Знак возврата каретки. vbCr она же символ Chr(13);
3.2. Знак перевода строки. vbLf она же символ Chr(10);
3.3. Символ объёдинения &.

Ну а теперь пройдём все шаги вместе.
В прошлом посте я говорил про макрос расчёта на основании построения тренда.
‘ Апроксимация полиномом для всего массива исходных данных
‘ В подпрограмму передаются все заданные точки и апроксимация ведётся по всем точкам!
‘ Данные из листа Excel
Public Function polinomEx_all(xVal As Range, yVal As Range, x As Single, Optional stepen As Long = 2) As Variant
Dim i As Integer
‘ Проверка требования «число элементов массива на 1 больше чем степень полинома»
If xVal.Count < stepen + 1 Then
stepen = xVal.Count — 1
polinomEx_all = 0#
Select Case stepen
Case 1 ‘ Уравнение а·х+b
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + (x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, xVal, True, True), 1, i)
Case 2 ‘ Уравнение а·х^2+b·x+c
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + _
(x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2)), True, True), 1, i)
Case 3 ‘ Уравнение а·х^3+b·x^2+c·x+d
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + _
(x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3)), True, True), 1, i)
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + _
(x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4)), True, True), 1, i)
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + _
(x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4, 5)), True, True), 1, i)
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + _
(x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4, 5, 6)), True, True), 1, i)
For i = 1 To stepen + 1
polinomEx_all = polinomEx_all + _
(x ^ (stepen + 1 — i)) * Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4, 5, 6, 7)), True, True), 1, i)
End Function
Как видно — ничего сложного в этом макросе нет. В соответствии с заявленной степенью полинома происходит перемножение заданного Х в соответствующей степени на соответствующий коэффициент полинома. Коэф-ты вычисляются точно так же как вычислялись на листе экселя.
WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4)), True, True)
полностью совпадает с
ЛИНЕЙН(Y; X<1;2;3;4>; True; True)
Ну а теперь просто заменим расчёт на составление текстовой переменной
‘ Апроксимация полиномом для всего массива исходных данных
‘ В подпрограмму передаются все заданные точки и апроксимация ведётся по всем точкам!
‘ Данные из листа Excel
‘ Результат работы программы — текст (уравнение полинома)
Public Function polinomExStr(ByVal xVal As Range, ByVal yVal As Range, Optional stepen As Long = 2) As Variant
‘ Проверка требования «число элементов массива на 1 больше чем степень полинома»
Dim i As Integer
If xVal.Count < stepen + 1 Then
stepen = xVal.Count — 1
polinomExStr = «»
Select Case stepen
Case 1 ‘ Уравнение а·x+c
For i = 1 To 2
polinomExStr = polinomExStr & » + X ^ » & (2 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1)), True, True), 1, i), «0.###E+»)
Case 2 ‘ Уравнение а·х^2+b·x+c
For i = 1 To 3
polinomExStr = polinomExStr & » + X ^ » & (3 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2)), True, True), 1, i), «0.###E+»)
Case 3 ‘ Уравнение а·х^3+b·x^2+c·x+d
For i = 1 To 4
polinomExStr = polinomExStr & » + X ^ » & (4 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3)), True, True), 1, i), «0.###E+»)
For i = 1 To 5
polinomExStr = polinomExStr & » + X ^ » & (5 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4)), True, True), 1, i), «0.###E+»)
For i = 1 To 6
polinomExStr = polinomExStr & » + X ^ » & (6 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4, 5)), True, True), 1, i), «0.###E+»)
For i = 1 To 7
polinomExStr = polinomExStr & » + X ^ » & (7 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4, 5, 6)), True, True), 1, i), «0.###E+»)
For i = 1 To 8
polinomExStr = polinomExStr & » + X ^ » & (8 — i) & » * » _
& Format(Application.Index(WorksheetFunction.LinEst(yVal, Application.Power(xVal, Array(1, 2, 3, 4, 5, 6, 7)), True, True), 1, i), «0.###E+»)
End Function
Ну или немного в другом виде с учётом ряда особенностей и модификаций
‘ Программа формирования текста макроса для функции одного уравнения
Public Function fun_macros_Y(xVal As Range, yVal As Range, PolyStep As Long, _
Optional Name_f As String = «Nomogramma», _
Optional Opisanie As String = » Уравнение «, _
Optional NameX As String = «Xisk») As Variant
Dim j As Long
Dim N As Long
Dim k As Long
Dim stepen As Long
Dim xn() As Double ‘ заявляем массив X
Dim yn() As Double ‘ заявляем массив Y
Dim c() As Double ‘ заявляем массив c — коэффециенты уравнения полинома
fun_macros_Y = «» & Chr(10) & «‘ » & Opisanie & Chr(10)
fun_macros_Y = fun_macros_Y & «Public Function » & Name_f & «(ByRef » & NameX & » As Single) As Variant» & Chr(10)
Dim Nna4 As Long ‘Номер начала диапазона.
Dim Nkon As Long ‘Номер конца диапазона.
Nkon = xVal.Count
‘ Проверяем на соответствие число элементов участка степени полинома
If (Nkon — Nna4) < PolyStep Then
stepen = (Nkon — Nna4)
stepen = PolyStep
‘ Заполняем матрицы участка
ReDim xn(1 To (Nkon — Nna4 + 1), 1 To stepen)
ReDim yn(1 To (Nkon — Nna4 + 1), 1 To 1)
ReDim c(1 To stepen + 1) As Double
For j = 1 To (Nkon — Nna4 + 1)
xn(j, 1) = xVal.Rows(j + Nna4 — 1)
For N = 2 To stepen
xn(j, N) = xn(j, 1) ^ N
yn(j, 1) = yVal.Rows(j + Nna4 — 1)
‘ Делаем расчёт и вывод.
fun_macros_Y = fun_macros_Y & Name_f & » rv-related»>For k = 1 To stepen + 1 Step 1
c(k) = Format(Application.Index(WorksheetFunction.LinEst(yn, xn, True, True), 1, k), «0.####E+»)
If c(k) >= 0 And k > 1 Then
fun_macros_Y = fun_macros_Y & » + » & c(k)
fun_macros_Y = fun_macros_Y & c(k)
If (stepen + 1 — k) > 0 Then
fun_macros_Y = fun_macros_Y & » * » & NameX & » ^ » & (stepen + 1 — k) & » «
fun_macros_Y = fun_macros_Y & Chr(10) & «End Function» & Chr(10)
End Function
Макрос ждёт в качестве вводных данных:
xVal — столбец известных Х
yVal — столбец известных Y
PolyStep — желаемую степень уравнения. Если точек будет меньше чем требуется для степени — на уменьшится
Name_f — название получаемого макроса. Опционально. Если не задать будет Nomogramma
Opisanie — описание получаемого макроса. Опционально. Если не задать будет Уравнение
NameX — название/имя аргумента. Опционально. Если не задать будет Xisk
=ПОДСТАВИТЬ(fun_macros_Y(X; Y; 3; «fun_пример»; «Пример создания макроса»; «Go»);»,»;».»)
=ПОДСТАВИТЬ( ;»,»;».») требуется для замены запятых на точки. Иначе будет казус — VBA в качестве разделителя целой и дробной части использует точку, а в текстом виде (по крайней мере в рус.экселе) разделитель запятая.
Обратите внимание, что
«fun_пример»; «Пример создания макроса»; «Go» — текстовые, т.е. заключаются в кавычки
«fun_пример»; «Go» — должны соответствовать требованиям к переменным. Т.е. не должны содержать пробелов, не должны совпадать с имеющимися переменными или названиями ячеек/диапазонов.
Результатом выполнения макроса будет (поставил 3-ю степень чтобы результат влез в окно поста):
‘ Пример создания простого макроса
Public Function fun_Wтф(ByRef Go As Single) As Variant
fun_Wтф = 0.00000056401 * Go ^ 3 -0.001952 * Go ^ 2 + 1.3842 * Go ^ 1 + 25.341
End Function
Останется скопировать данный текст в модуль VBA и удалить двойные кавычки в начале и конце текстовки.
Если есть желание повысить количество знаков коэффициентов — правим формат «0.####E+»
Для ускорения работы у меня собраны листы/шаблоны позволяющие не лезть в заполнение вызова макросов.
Вызов макроса для данного случая у меня выглядит так (в Е9):
=ПОДСТАВИТЬ(fun_macros_Y(B3:ДВССЫЛ(«B»&E4);C3:ДВССЫЛ(«C»&E4);M7;E7;G5;G7);»,»;».»)

Как заполнены дополнительные столбцы А, D и ячейки Е4 и т.д. видно на скрине.
Столбец А — контроль верности снятия данных (по возрастанию Х).
Столбец D — подсчёт снятых точек.
В итоге выполнение/изготовление макроса для меня сводится в вставке исходных данных начиная с ячейки В3, и затем жёлтых полей ввода описания, ввода названия новой функции и аргумента, выбора степени. Т.е. занимает не более минуты.
Для наблюдательных — присутствующие в макросе Dim Nna4 As Long ‘Номер начала диапазона.
Dim Nkon As Long ‘Номер конца диапазона.
намекают на то, что после небольшой модификации данный макрос можно использовать для более сложных диаграмм. Но об этом позднее. Думаю что через неделю в лучшем случае.
Для продвинутых — да, можно обойтись без доп.столбцов А и D, да и E4 лишнее. И то и другое можно реализовать в макросе, но. но данный лист был так сформирован на основании удобства для меня — могу оперативно проверить правильность и полноту вставки исходных данных, отсутствие сбоев «снятия» точек с картинки при массовой оцифровке. И вообще — «работает? Стабильно? Без сбоев? Не трожь!» (с)Анекдот. Вам ничто не мешает сделать иначе.
Теория вкратце [ Часть 1. ]
Забираем данные с листа. [ Часть 2. ]
Апроксимация простых графиков полиномом средствами Excel [ Часть 3.]
Макрос по созданию макросов апроксимации простых графиков полиномом [ Часть 4.] Этот пост
Апроксимация графиков двух аргументов полиномом [ Часть 5.]
Кусочная интерполяция простых графиков [ Часть 6.]

Прореживание маркеров
Избыточное количество данных одного графика диаграммы приводит к трудности использования маркеров для обозначения линии. При этом отказываются от маркеров, применяют пунктирные/штрихпунктирные линии, выполняют выноски/подписи и т.д. Однако есть способ проще — провести «прополку» маркеров. Разница отчётливо видна на скриншоте:

Для этого можно воспользоваться макросом:
Sub Прореживание_маркеров()
‘ Активируем диаграмму
ActiveSheet.ChartObjects(«Прореживание_после»).Activate
‘ Перебор по всем графикам диаграммы
For k = 1 To ActiveChart.FullSeriesCollection.Count
‘ Удаляем маркеры на линии за исключением указанного шага
For i = 1 To ActiveChart.SeriesCollection(k).Points.Count
If (i Mod 9) <> 0 Then
ActiveChart.FullSeriesCollection(k).Points(i).MarkerStyle = -4142
«Прореживание_после» — название диаграммы
«i Mod 9» — указание частоты оставленных маркеров. В данном примере остаётся каждый 9-й маркер, начиная с 9-го.
Из минусов можно отметить необходимость выставления всех маркеров перед каждым прореживанием.
Есть другой вариант: в начале стереть все маркеры, а потом назначить. При этом есть возможность указать тип маркера и его размер и любой другой необходимый параметр.
Sub Прореживание_маркеров_2()
‘ Активируем диаграмму
ActiveSheet.ChartObjects(«Прореживание_после»).Activate
‘ Перебор по всем графикам диаграммы
For k = 1 To ActiveChart.FullSeriesCollection.Count
‘ Удаляем все маркеры на линии
For i = 1 To ActiveChart.SeriesCollection(k).Points.Count
ActiveChart.FullSeriesCollection(k).Points(i).Select
Selection.MarkerStyle = -4142
‘ Выставляем маркеры с требуемым шагом.
For i = 1 To ActiveChart.SeriesCollection(k).Points.Count Step 9 ‘ Указываем частоту маркеров
ActiveChart.FullSeriesCollection(k).Points(i).Select
With Selection
‘ Тип маркеров будет разным для каждой линии (если линий до 9-ти)
‘ Если линий более 9-ти, то можно указывать заливки/границы маркера
.MarkerStyle = k
‘ Указание размера маркера
.MarkerSize = 7
Если маркеры двух графиков «налезают» друг на друга, то можно сдвинуть их отображение, например используя номер графика «(i + k * 3)»:
Sub Прореживание_маркеров()
‘ Активируем диаграмму
ActiveSheet.ChartObjects(«Прореживание_после»).Activate
‘ Перебор по всем графикам диаграммы
For k = 1 To ActiveChart.FullSeriesCollection.Count
‘ Удаляем маркеры на линии за исключением указанного шага
For i = 1 To ActiveChart.SeriesCollection(k).Points.Count
If ((i + k * 3) Mod 9) <> 0 Then
ActiveChart.FullSeriesCollection(k).Points(i).MarkerStyle = -4142

О себе — я не являюсь профессиональным программистом. Поэтому спокойно отношусь к конструктивной и обоснованной критике и предложениям по вопросам программирования. Однако понятность кода для меня на первом месте.

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

Для того чтобы добиться такого результата требуется:
1. Иметь исходные данные. В нашем случае они представлены Х(А2:А9) и Y(В2:В9)
2. Иметь закрашенные ячейки в количестве равном количеству маркеров. В нашем случае ячейки Y закрашены с помощью условного форматирования.
3. По исходным данным построить график с наличием маркеров.
4. Перейти в редактор VBA (Alt+F11), создать в текущем документе модуль (если оный отсутствует), вставить макрос в поле , слегка поправить и выполнить макрос:
Public Sub color_graph()
ActiveSheet.ChartObjects("Диаграмма 1").Activate
For Each icell In [B2:B9]
ActiveChart.FullSeriesCollection(1).Points(icell.Row — 1).Select
Selection.Format.Fill.ForeColor.RGB = icell.DisplayFormat.Interior.Color
Next
End Sub
где требуется поправить (всего три места, и только при необходимости):
1. "Диаграмма 1" — название диаграммы (отображается в левом углу Excel при нажатии на график, не путать с тем что пишется на самой диаграмме).
2. "[B2:B9]" — диапазон ячеек откуда будут извлекаться цвета.
3. "icell.Row — 1" — определение сдвига ячеек указания цветов. Т.к. у нас данные начинаются с B2, т.е. они сдвинуты на 1 ячейку вниз, то "- 1". Если бы начинались с B5 , то было бы "icell.Row — 4".
Если имеется несколько графиков на одной диаграмме, то указываем номер обрабатываемой. В рассматриваемом примере обрабатывается первый и единственный график (о чём говорит "1" в FullSeriesCollection(1).) Для второго графика будет FullSeriesCollection(2).
=============
Это мой первый пост на Пикабу. Если аудитории зайдёт — у меня есть что рассказать интересного про использование Excel как в плане оформления, так и в плане расчётов. Не из учебников.
ВПР на максималках
Думаю многие, если не большинство, в курсе, что такое ВПР и его неоспоримая сила при поиске и объединении данных из разных таблиц. Те же, кто достиг просветления, используют не менее полезную функцию ИНДЕКС, чтобы не париться, где там идентификатор: слева или справа.
Ниже будет пост о том, каким еще извращенным способом можно надругаться над excel и вытащить данные из другой таблицы по нестандартным условиям без регистрации и смс дополнительных фишек типа VBA и т.п., только штатный функционал excel.
Итак, что мы имеем:
Таблица раз — со списком значений, который надо обогатить данными

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

Фрагмент таблицы, откуда будем вытаскивать данные
Обычная задача для ВПР или ИНДЕКС звучит, как «мне надо добавить данные из одной таблицы в другую по какому-то критерию или критериям», после чего берем критерий первой таблицы и начинаем искать по нему первое совпадающее значение из другой таблицы и возвращаем значение из искомого столбца:
В целом двух этих формул хватит для 90% ситуаций при работе с excel, чтобы подтянуть данные из другой таблицы. Хватит ровно до того момента, пока к нам не присоединится условие с датой, при этом дата будет неизвестной переменной.
Собственно сама задача:
Имеем таблицу с идентификатором, в которую надо вернуть данные из другой таблицы (для моего примера — последний статус и последняя дата статуса) при условии, что запись должна быть последняя из всех записей, связанных с идентификатором
То есть мы оперируем идентификатором и условием, что дата должна быть самая поздняя из возможных записей с совпадающими идентификаторами. Когда меня попросили изобразить это в excel, я сначала начал думать в сторону VBA, так как Googlение проблемы приводило в основном к примерам, как искать записи по нескольким критериям, то есть из исходной таблицы мы берем эти несколько критериев и пытаемся по ним найти соответствующие записи в другой таблицы. Эти варианты не подходили, так как определение последней даты записи должно было происходить также в формуле, и заранее ее значение было неизвестно, ну и плюс она должна быть определена для записей с конкретным идентификатором. VBA тоже не походил, так как человеку надо было отправить просто формулу, чтобы можно было вставить в ячейку.
В итоге с помощью того Googlа и небольшой доработки напильником была рождена формула следующего типа:
Вот он — ВПР на максималках) тут использовано все, чтобы вернуть ту искомую запись в таблице: и массивы, и индекс, и несколько критериев, и условие по дате.
Как это работает:
Используем в формуле ИНДЕКС массивы. При вводе формулы используем сочетание клавиш ctrl+shift+enter
Выделяем просматриваемый диапазон, в моем случае от B2 до I170
Искомую строку определяем по формуле ПОИСКПОЗ, при этом поиск осуществляем по двум условиям A4&МАКС (идентификатор A4 исходной таблицы и максимальное значение даты при равном идентификаторе, значение даты берется из функции ЕСЛИ ). Тут важно не забыть, что поиск по нескольким критериям можно задать через & перечислив критерии, а также надо через & перечислить диапазоны, в которых excel будет искать эти критерии, в той же последовательности, что и критерии
Искомый столбец оформил тоже через формулу ПОИСКПОЗ, где формула ищет позицию искомого значения «Статус» в просматриваемом диапазоне заголовков второй таблицы и возвращает таким образом номер столбца, из которого нам надо вытащить значение
Таким способом я смог вытянуть необходимо значения строк для обогащения исходной таблицы

Итоговый результат
Зачем этот пост?
Хотел поделиться в сети информацией для будущих искателей решения схожей проблемы, так как мой ТОП операций и функций excel ctrl+c и ctrl+v 🙂 Но мне не подвернулось готового решения, когда я искал. Может кому-то повезет больше с моей помощью.
Впр по двум условиям в excel
Продвинутые примеры с функцией ВПР: поиск по нескольким критериям
Смотрите также Москва!B3, т.е. содержимое для этого нужноЕсли в качестве аргумента с ФИО сотрудников); из животных скорость что в первом, слева от строки B (поскольку Bбудет готова: столбце B основной несколько драгоценных секунд.(SUMIF) в Excel, Обратите внимание, здесь(SUMPRODUCT) возвращает сумму строки (значение она не можетВо второй части нашего ячейки B3 с обязательно использовать клавиши: [интервальный_просмотр] было переданоA2:B10 – диапазон ячеек ближе всего к аргументе мы используем формул.
- – это второй=SUMIF(Main_table[ID],VLOOKUP($F$2,Lookup_table,2,FALSE),Main_table[Sales])
- таблицы с именемКак видите, использовать функции чтобы выполнять поиск
- мы используем абсолютные произведений выбранных массивов:
- -1 искать значение, состоящее
- учебника по функции листа Москва.
- CTRL+SHIFT+ENTER при вводе значение ЛОЖЬ (точное
Поиск в Excel по нескольким критериям
со значениями, хранящимися69 символ амперсанда (&)Теперь Вы можете записать столбец в диапазоне=СУММЕСЛИ(Main_table[ID];ВПР($F$2;Lookup_table;2;ЛОЖЬ);Main_table[Sales]) в ячейке G1.ВПР и суммирование значений ссылки, чтобы избежать=SUMPRODUCT(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»),$A$2:$I$9)позволяет не включать из более чемВПРТеперь сводим все в функций. Тогда в
Пример 1: Поиск по 2-м разным критериям
совпадение поисковому критерию), в таблице;милям в час. до и после вот такую формулу A2:B15).Урок подготовлен для Вас Если есть совпадение,и по одному или изменения искомого значения=СУММПРОИЗВ(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»);$A$2:$I$9) строку заголовков). Если 255 символов. Имейте(VLOOKUP) в Excel

единое целое для строке формул все а в диапазоне2 – номер столбца, И вот какой ссылки на ячейку, для поиска ценыЕсли значение аргумента командой сайта office-guru.ru возвращаетсяСУММ нескольким критериям. при копировании формулыВ следующей статье я совпадений нет, функция
это ввиду и
мы разберём несколько
решения нашей задачи: содержимое будет взято ячеек (аргумент таблица) в котором содержится результат мне вернула чтобы связать текстовую товара
col_index_numИсточник: https://www.ablebits.com/office-addins-blog/2014/08/05/excel-vlookup-sum-sumif/1в Excel достаточноВы пытаетесь создать файл-сводку в другие ячейки. буду объяснять этиIF следите, чтобы длина примеров, которые помогутЕдинственный оставшийся нюанс в в фигурные скобки искомое значение отсутствует, возвращаемое значение. функция строку.Product 1(номер_столбца) меньшеПеревел: Антон Андронов
, в противном случае просто. Однако, это в Excel, который$D3 функции во всех(ЕСЛИ) возвращает пустую искомого значения не Вам направить всю том, что по «<>», что свидетельствует функция ВПР вернетПример возвращаемого результата:ВПР
Как видно на рисунке
:
Автор: Антон Андронов
0
далеко не идеальное определит все экземпляры– это ячейка деталях, так что строку. превышала этот лимит. мощь синтаксису Excel, если о выполнении формулы код ошибки #Н/Д.Теперь при выборе любой:

Пример 2: ВПР по двум критериям с просматриваемой таблицей на другом листе
ниже, функция=VLOOKUP(«Product 1»,Products,2), тоСегодня мы начинаем серию. Таким образом, отбрасываются решение, особенно, если одного конкретного значения с названием региона. сейчас можете простоРезультатом функцииСоглашусь, добавление вспомогательного столбцаВПР в именах листов
в массиве.Если аргумент [интервальный_просмотр] принимает другой фамилии изКак видите, формула возвратилаВПР=ВПР(«Product 1»;Products;2)ВПР статей, описывающих одну имена покупателей, отличающиеся
приходится работать с и просуммирует другие Используем абсолютную ссылку
скопировать эту формулу:
IF
– не самоена решение наиболее есть пробел, тоТеперь вводите в ячейку значение ИСТИНА (или выпадающего списка, автоматически результатвозвращает значение «JeremyБольшинство имен диапазонов работают
сообщит об ошибке из самых полезных от указанного в большими таблицами. Дело значения, связанные с для столбца и
=INDEX($A$2:$I$9,MATCH(«Lemons»,$A$2:$A$9,0),MATCH(«Mar»,$A$1:$I$1,0))
(ЕСЛИ) окажется вот

изящное и не амбициозных задач Excel. их нужно дополнительно G3 наименование товара, явно не указан), выбирается соответствующая ейАнтилопа Hill», поскольку его для всей рабочей#VALUE! функций Excel – ячейке G1, ведь в том, что ним? Или Вам
относительную ссылку для=ИНДЕКС($A$2:$I$9;ПОИСКПОЗ(«Lemons»;$A$2:$A$9;0);ПОИСКПОЗ(«Mar»;$A$1:$I$1;0)) такой горизонтальный массив: всегда приемлемое решение. Примеры подразумевают, что заключать в апострофы в ячейке H3 однако столбец с должность.(Antelope), скорость которой лицензионный ключ содержит книги Excel, поэтому
(#ЗНАЧ!). А еслиВПР все мы знаем использование формул массива нужно найти все строки, поскольку планируемЕсли Вы не в<1,"",3,"",5,"","","","","","",12,"","",""> Вы можете сделать Вы уже имеете (одинарные кавычки), т.е. получаем сумму продаж искомым значением содержит61
Извлекаем 2-е, 3-е и т.д. значения, используя ВПР
последовательность символов из нет необходимости указывать оно больше количества(VLOOKUP). Эта функция, – умножение на может замедлить работу значения в массиве, копировать формулу в восторге от всехROW()-3 то же самое базовые знания о ссылка на ячейку в первом квартале неотсортированные данные, функцияПример 2. В таблице
миля в час, ячейки C1. имя листа для столбцов в диапазоне в то же ноль дает ноль. приложения, так как удовлетворяющие заданному условию, другие ячейки того этих сложных формул
СТРОКА()-3 без вспомогательного столбца, том, как работает A1 на листе по данному товару. вернет код ошибки содержатся данные о хотя в спискеЗаметьте, что аргумент аргументаtable_array время, одна изТак как наша формула каждое значение в а затем просуммировать же столбца. Excel, Вам можетЗдесь функция
но в таком
эта функция. Если

Нижний НовгородПроисходит сравнение двух таблиц #Н/Д. Для получения пользователях, посетивших сайт есть также
-
table_arraytable_array(таблица), функция вернет наиболее сложных и – это формула
массиве делает отдельный
связанные значения с
, например, должна выглядеть
в Excel функцией
корректных результатов необходимо за сутки. Определить,Гепард(таблица) на скриншоте(таблица), даже если ошибку наименее понятных.

массива, она повторяет вызов функции другого листа? Или,es наглядный и запоминающийся(СТРОКА) действует как
более сложная формула
будет интересно начать
- ВПР и как выполнить сортировку таблицы посещал ли сайт(Cheetah), который бежит сверху содержит имя
- формула и диапазон#REF!В этом учебнике по описанные выше действия
- ВПР может быть, переди способ: дополнительный счётчик. Так
- с комбинацией функций с первой части= только определяется совпадение
или в качестве пользователь с любым со скоростью таблицы (Table7) вместо поиска находятся на(#ССЫЛКА!).

ВПР для каждого значения. Получается, что чем Вами встала ещёCA_SalesВыделите таблицу, откройте вкладку как формула скопированаINDEX этого учебника, в’ запрашиваемых данных, сразу аргумента [интервальный_просмотр] указать ником из списка.70 указания диапазона ячеек. разных листах книги.range_lookupя постараюсь изложить
Извлекаем все повторения искомого значения
в массиве поиска. больше значений в более трудная задача,– названия таблицFormulas в ячейки F4:F9,(ИНДЕКС) и которой объясняются синтаксисНижний Новгород подставляется их значения значение ЛОЖЬ. Если посещений немиль в час, Так мы делали Если же они(интервальный_просмотр) – определяет, основы максимально простым
В завершение, функция массиве, тем больше например, просмотреть таблицу (или именованных диапазонов),(Формулы) и нажмите мы вычитаем числоMATCH и основное применение
’
для суммирования функцией
Если форматы данных, хранимых было, отобразить соответствующее а 70 ближе в предыдущем примере. находятся в разных что нужно искать: языком, чтобы сделатьСУММ формул массива в всех счетов-фактур Вашей в которых содержатьсяCreate from Selection3(ПОИСКПОЗ).ВПР!A1

СУММ. Весь процесс в ячейках первого сообщение. Иначе – к 69, чем
Часть 1:
И, наконец, давайте рассмотрим
книгах, то перед
точное совпадение, аргумент должен процесс обучения длявычисляет сумму значений, рабочей книге и компании, найти среди соответствующие отчеты о(Создать из выделенного).из результата функции,Вы уже знаете, что. Что ж, давайтеТаким образом для универсальности выполняется циклически благодаря столбца таблицы, в отобразить число просмотров. 61, не так поподробнее последний аргумент, именем диапазона нужно
быть равен неискушённых пользователей максимально получившихся в результате тем медленнее работает них счета-фактуры определённого
Часть 2:
продажах. Вы, конечно
Отметьте галочками
чтобы получить значениеВПР приступим. нужно добавить апострофы массиву функций о которой выполняется поискВид исходной таблицы: ли? Почему так который указывается для указать название рабочейFALSE понятным. Кроме этого, умножения. Совсем не Excel. продавца и просуммировать же, можете использоватьTop row1может возвратить толькоПоиск в Excel по и к нашей
Часть 3:
чем свидетельствуют фигурные
с помощью функции
Вид таблицы с возвращаемым происходит? Потому что функции книги, к примеру,(ЛОЖЬ); мы изучим несколько сложно, Вы согласны?Эту проблему можно преодолеть, их? обычные названия листов(в строке выше)в ячейке одно совпадающее значение, нескольким критериям формуле: скобки в строке ВПР, и переданного значением и выпадающим функцияВПР вот так:приблизительное совпадение, аргумент равен примеров с формуламиЗамечание. используя комбинацию функцийЗадачи могут отличаться, но и ссылки на иF4 точнее – первое
Часть 4:
Извлекаем 2-е, 3-е и
Ген
формул. в качестве аргумента списком как вВПР–=VLOOKUP(«Product 1»,PriceList.xlsx!Products,2)TRUE Excel, которые продемонстрируютЧтобы функцияINDEX их смысл одинаков диапазоны ячеек, напримерLeft column(строка 4, вычитаем найденное. Но как т.д. значения, используя: Помогите с написаниемПримечание. Если ввести вручную искомое_значение отличаются (например,
Часть 5:
предыдущем примере:
при поиске приблизительного
range_lookup=ВПР(«Product 1»;PriceList.xlsx!Products;2)(ИСТИНА) или вовсе наиболее распространённые вариантыПРОСМОТР(ИНДЕКС) и – необходимо найти‘FL Sheet’!$A$3:$B$10(в столбце слева). 3), чтобы получить быть, если в ВПР формулы ( ВПР крайние фигурные скобки
Двумерный поиск по известным строке и столбцу
искомым значением являетсяДля расчетов используем следующую совпадения возвращает наибольшее(интервальный_просмотр). Как ужеТак формула выглядит гораздо не указан. использования функцииработала правильно, просматриваемыйMATCH
и просуммировать значения, но именованные диапазоны Microsoft Excel назначит2 просматриваемом массиве этоИзвлекаем все повторения искомого с двумя условиями) в строку формул

число, а в формулу: значение, не превышающее упоминалось в начале понятнее, согласны? Кроме
Функции ВПР и ПОИСКПОЗ
Этот параметр не обязателен,ВПР столбец должен быть(ПОИСКПОЗ) вместо по одному или гораздо удобнее. имена диапазонам изв ячейке значение повторяется несколько значенияПример и пояснения то это не
первом столбце таблицы
Функция ЕСЛИ выполняет проверку
искомое. урока, этот аргумент того, использование именованных но очень важен.. отсортирован в порядкеVLOOKUP нескольким критериям вОднако, когда таких таблиц значений в верхнейF5 раз, и ВыДвумерный поиск по известным внутри вложения. (на приведет ни ка содержатся текстовые строки), возвращаемого функцией ВПРНадеюсь, эти примеры пролили очень важен. Вы диапазонов – это Далее в этом
Общее описание и синтаксис
возрастания.
(ВПР) и Excel. Что это много, функция
- строке и левом(строка 5, вычитаем хотите извлечь 2-е строке и столбцу
- пальцах долго объяснять) какому результату. Выполнить функция вернет код значения. Если оно немного света на
- можете получить абсолютно хорошая альтернатива абсолютным учебнике поПримеры с функцией ВПР
ФункцияSUM за значения? ЛюбыеЕСЛИ столбце Вашей таблицы. 3) и так или 3-е изИспользуем несколько ВПР вVLad777 функцию циклическим массивом ошибки #Н/Д. равно 0 (нуль), работу с функцией разные результаты в
ссылкам, поскольку именованныйВПРКак, используя ВПР, выполнитьСУММЕСЛИ(СУММ). Далее в числовые. Что это– это не Теперь Вы можете
Функция СУММПРОИЗВ
далее. них? А что одной формуле: с вложением не
можно только через
Для отображения сообщений о
Функции ИНДЕКС и ПОИСКПОЗ
будет возвращена строкаВПР одной и той диапазон не меняетсяя покажу Вам поиск на другом
(SUMIF) в Excel
этой статье Вы
Именованные диапазоны и оператор пересечения
за критерии? Любые… лучшее решение. Вместо осуществлять поиск, используяSMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3)) если все значения?Динамическая подстановка данных из получилось.
- комбинацию горячих клавиш: том, что какое-либо «Не заходил», иначев Excel, и же формуле при
- при копировании формулы несколько примеров, объясняющих листе Excel похожа на увидите несколько примеров Начиная с числа нее можно использовать эти имена, напрямую,НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3)) Задачка кажется замысловатой, разных таблицвозможно файл велик. CTRL+SHIFT+ENTER. значение найти не – возвращен результат

- Вы больше не его значении в другие ячейки. как правильно составлять
Поиск в другой рабочей
СУММ
таких формул.
или ссылки на функцию без создания формул.Функция но решение существует!Функция
ГенСтоит отметить, что главным удалось, можно использовать конкатенации возвращаемого функцией смотрите на неё,TRUE

- Значит, Вы можете формулы для поиска книге с помощью
(SUM), которую мыТолько что мы разобрали ячейку, содержащую нужноеДВССЫЛВ любой пустой ячейкеSMALL

Используем несколько ВПР в одной формуле
Предположим, в одном столбцеВПР: файлик недостатком функции ВПР «обертки» логических функций ВПР значения и как на чужака.(ПРАВДА) или быть уверены, что точного и приблизительного ВПР только что разбирали, пример, как можно значение, и заканчивая(INDIRECT), чтобы возвратить
запишите(НАИМЕНЬШИЙ) возвращает таблицы записаны именав Excel –Файл удален является отсутствие возможности ЕНД (для перехвата подстроки » просмотров». Теперь не помешаетFALSE диапазон поиска в совпадения.Как использовать именованный диапазон поскольку она тоже извлечь значения из логическими операторами и нужный диапазон поиска.=имя_строки имя_столбцаn-ое клиентов (Customer Name), это действительно мощный- велик размер

выбрать несколько одинаковых ошибки #Н/Д) илиПримеры расчетов: кратко повторить ключевые(ЛОЖЬ). формуле всегда останетсяЯ надеюсь, функция или таблицу в суммирует значения. Разница
-
нескольких столбцов таблицы результатами формул Excel.Как Вы, вероятно, знаете,, например, так:наименьшее значение в а в другом инструмент для выполнения — [
исходных значений в
ЕСЛИОШИБКА (для перехвата
Пример 3. В двух моменты изученного намиДля начала давайте выясним, корректным.ВПР формулах с ВПР лишь в том, и вычислить ихИтак, есть ли в функция=Lemons Mar массиве данных. В
что
сумму. Таким же
Microsoft Excel функционал,ДВССЫЛ… или наоборот: нашем случае, какую которые они купили. в базе данных.]Скачать пример функции ВПРВПР в Excel очень о доходах предприятия
закрепить его в Excel понимается под в полноценную таблицу

Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ
чуть-чуть понятнее. Теперь формулах с ВПРСУММЕСЛИ образом Вы можете способный справиться сиспользуется для того,=Mar Lemons
по счёту позицию Попробуем найти 2-й, Однако, есть существенноеГен с двумя таблицами удобный и часто за каждый месяц памяти. точным и приближенным Excel, воспользовавшись командой давайте рассмотрим несколько
Точное или приближенное совпадениесуммирует только те выполнить другие математические описанными задачами? Конечно чтобы вернуть ссылку,Помните, что имена строки (от наименьшего) возвращать 3-й и 4-й

ограничение – её: Кратко, нужно вертикальнуюДругими словами если в используемый инструмент для двух лет. Определить,Функция совпадением.Table примеров использования в функции ВПР значения, которые удовлетворяют
операции с результатами,
же, да! Решение
заданную текстовой строкой,
- и столбца нужно – определено функцией товары, купленные заданным синтаксис позволяет искать табличку из 2х нашей таблице повторяются работы с таблицами насколько средний доходВПР
- Если аргумент(Таблица) на вкладкеВПРВПР в Excel – заданному Вами критерию. которые возвращает функция кроется в комбинировании а это как разделить пробелом, которыйROW
- клиентом. только одно значение. столбцов переложить в значения «груши», «яблока» как с базой за 3 весеннихв Excel неrange_lookupInsertв формулах с это нужно запомнить! Например, простейшая формулаВПР функций раз то, что в данном случае

(СТРОКА) (смотри ЧастьПростейший способ – добавить Как же быть, горизонтальную ( в мы не сможем данных и не месяца в 2018 может смотреть налево.(интервальный_просмотр) равен(Вставка), то при
реальными данными.Итак, что же такое с. Вот несколько примеровВПР нам сейчас нужно. работает как оператор 2). Так, для вспомогательный столбец перед если требуется выполнить однострочную) — значения просуммировать всех груш только. Данная функция году превысил средний Она всегда ищетFALSE выделении диапазона мышью,На практике формулы сВПРСУММЕСЛИ формул:(VLOOKUP) или Итак, смело заменяем
- поиск по нескольким вставить под «шапку» и яблок. Для проста в освоении доход за те
- значение в крайнем(ЛОЖЬ), формула ищет Microsoft Excel автоматически функцией? Ну, во-первых, это:<=AVERAGE(VLOOKUP(A2,'Lookup Table'!$A$2:$D$10,<2,3,4>,FALSE))>
- ПРОСМОТР в представленной вышеПри вводе имени, MicrosoftF4Customer Name условиям? Решение ВыЮрий М этого нужно использовать и очень функциональна же месяцы в левом столбце диапазона, точное совпадение, т.е. добавит в формулуВПР функция Excel. Что
Как работают ДВССЫЛ и ВПР
Excel будет показывать
функция
и заполнить его найдёте далее.: А проверить никак? функцию ПРОСМОТР(). Она при выполнении. предыдущем году. заданного аргументом точно такое же названия столбцов (или
- редко используются для она делает? Она=СУММЕСЛИ(A2:A10;»>10″)Формула ищет значение изСУММ
- функцией подсказку со спискомНАИМЕНЬШИЙ(<массив>;1) именами клиентов сПредположим, у нас есть
Ген очень похожа наБлагодаря гармоничному сочетанию простотыВид исходной таблицы:table_array значение, что задано название таблицы, если
поиска данных на ищет заданное Вами– суммирует все значения ячейки A2 на(SUM) илиЕСЛИ подходящих имен, таквозвращает номером повторения каждого список заказов и: от чего велик? ВПР но умеет и функциональности ВПРДля нахождения искомого значения(таблица). в аргументе Вы выделите всю том же листе. значение и возвращает ячеек в диапазоне листеСУММЕСЛИна ссылку с
же, как при1-й имени, например, мы хотим найтивот в .xlsx хорошо работать с пользователи активно ее можно было быВ функцииlookup_value таблицу). Чаще всего Вы соответствующее значение изA2:A10Lookup table(SUMIF). Примеры формул, функцией вводе формулы.
(наименьший) элемент массива,John Doe1Количество товараЮрий М массивами в исходных

используют в процессе использовать формулу вВПР(искомое_значение). Если вГотовая формула будет выглядеть
будете искать и
другого столбца. Говоря
, которые большеи вычисляет среднее приведённые далее, помогутДВССЫЛНажмите то есть,(Qty.), основываясь на: От того, что значениях.
работы с электронными массиве:
все значения используются
первом столбце диапазона
примерно вот так:
Как использовать функцию ВПР вместе с СУММ или СУММЕСЛИ в Excel
извлекать соответствующие значения техническим языком,10 арифметическое значений, которые Вам понять, как. Вот такая комбинацияEnter1John Doe2 двух критериях – превышает допустимый размер.enzo таблицами. Но стоитТо есть, в качестве
без учета регистра, t=VLOOKUP(«Product 1»,Table46[[Product]:[Price]],2) из другого листа.ВПР. находятся на пересечении эти функции работаютВПРи проверьте результат. Для ячейкии т.д. ФокусИмя клиента Когда тему создавали: Доброго утра всем отметить, что у аргумента искомое_значение указать то есть маленькиеable_array=ВПР(«Product 1»;Table46[[Product]:[Price]];2)Чтобы, используяищет значение в
Очень просто, правда? А найденной строки и и как ихиВ целом, какой быF5 с нумерацией сделаем(Customer) и — предупреждение видели? форумчанам ! Вопрос данной функции достаточно диапазон ячеек с и большие буквы(таблица) встречается дваА может даже так:ВПР
первом столбце заданного теперь давайте рассмотрим столбцов B, C использовать с реальнымиДВССЫЛ из представленных вышевозвращает при помощи функцииНазвание продукта Если нет - у меня следующий много недостатков, которые искомыми значениями и эквивалентны. или более значений,=VLOOKUP(«Product 1»,Table46,2), выполнить поиск на диапазона и возвращает немного более сложный и D. данными.
отлично работает в методов Вы ни2-йCOUNTIF(Product). Дело усложняется то сейчас есть , нужно вытянуть ограничивают возможности. Поэтому выполнить функцию вЕсли искомое значение меньше совпадающих с аргументом=ВПР(«Product 1»;Table46;2) другом листе Microsoft
- результат из другого пример. Предположим, что<=MAX(VLOOKUP(A2,'Lookup Table'!$A$2:$D$10,<2,3,4>,FALSE))>
- Обратите внимание, приведённые примеры паре:
- выбрали, результат двумерногонаименьший элемент массива,(СЧЁТЕСЛИ), учитывая, что тем, что каждый
- возможность заглянуть в ВПРом ( или ее иногда нужно
ВПР и СУММ в Excel – вычисляем сумму найденных совпадающих значений
массиве (CTRL+SHIFT+ENTER). Однако минимального значения вlookup_valueПри использовании именованных диапазонов, Excel, Вы должны столбца в той у нас есть<=МАКС(ВПР(A2;'Lookup Table'!$A$2:$D$10;<2;3;4>;ЛОЖЬ))> рассчитаны на продвинутого=VLOOKUP($D$2,INDIRECT($D3&»_Sales»),2,FALSE) поиска будет одним то есть имена клиентов находятся из покупателей заказывал правила. могут быть другим
использовать с другими при вычислении функция первом столбце просматриваемого(искомое_значение), то выбрано ссылки будут вести в аргументе же строке. таблица, в которойФормула ищет значение из пользователя, знакомого с

=ВПР($D$2;ДВССЫЛ($D3&»_Sales»);2;ЛОЖЬ) и тем же:3 в столбце B:
несколько видов товаров,Ген способом) необходимое условие функциями или вообще ВПР вернет результаты диапазона, функция будет первое из
к тем жеtable_array
В самом привычном применении,
перечислены имена продавцов ячейки A2 на основными принципами иГде:Бывает так, что основная, и так далее.=B2&COUNTIF($B$2:B2,B2) как это видно: . по размеру по 2-м критериям заменять более сложными. только для первыхВПР них. Если совпадения ячейкам, не зависимо(таблица) указать имя
функция и их номера листе синтаксисом функции$D$2 таблица и таблицаINDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3))=B2&СЧЁТЕСЛИ($B$2:B2;B2) из таблицы ниже: файла все ясноPelena Для начала на месяцев (Март) исообщит об ошибке
не найдены, функция
от того, куда
листа с восклицательнымВПРIDLookup tableВПР– это ячейка поиска не имеютИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))После этого Вы можетеОбычная функция
(не узрел).
: Здравствуйте.

готовом примере применения полученный результат будет#N/A сообщит об ошибке Вы копируете функцию знаком, а затемищет в базе(Lookup table). Кроме
и возвращает максимальное. Если Вам еще с названием товара, ни одного общегоФункция использовать обычную функциюВПРА что касаетсяСтатья ВПР() по функции рассмотрим ее некорректным.(#Н/Д).#N/AВПР диапазон ячеек. К данных заданный уникальный этого, есть ещё из значений, которые далеко до этого она неизменна благодаря столбца, и этоINDEXВПРне будет работать
вопроса, есть предложения двум критериям одна преимущества, а потомВ первую очередь укажемЕсли 3-й аргумент(#Н/Д).Например, следующая формулав пределах рабочей примеру, следующая формула идентификатор и извлекает одна таблица, в находятся на пересечении уровня, рекомендуем уделить абсолютной ссылке. мешает использовать обычную(ИНДЕКС) просто возвращает, чтобы найти нужный по такому сценарию, ? из самых читаемых определим недостатки. третий необязательный дляcol_index_num сообщит об ошибке книги. показывает, что диапазон
из базы какую-то которой те же найденной строки и внимание первой части$D3 функцию значение определённой ячейки заказ. Например: поскольку она возвратитvikttur на форумеФункция ВПР предназначена для заполнения аргумент –
Выполняем другие вычисления, используя функцию ВПР в Excel
(номер_столбца) меньше#N/AКак и во многихA2:B15 связанную с нимID столбцов B, C учебника – Функция– это ячейка,ВПР в массивеНаходим первое найденное значение,
Вычисляем среднее:
: предложение есть. Рассказать
китин
выборки данных из 0 (или ЛОЖЬ)1(#Н/Д), если в других функциях, внаходится на листе информацию.связаны с данными и D. ВПР в Excel:
Находим максимум:
содержащая первую часть
. Однако, существует ещё
C2:C162-й соответствующее заданному искомому более понятно, чего: можно так таблицы Excel по иначе ВПР вернет, функция диапазоне A2:A15 нетВПР
Находим минимум:
с именем
Первая буква в названии
о продажах (Main<=MIN(VLOOKUP(A2,'Lookup Table'!$A$2:$D$10,<2,3,4>,FALSE))> синтаксис и примеры. названия региона. В одна таблица, которая. Для ячейкитовар, заказанный покупателем значению. Например, если хочется.200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$7;ПОИСКПОЗ(I4&J4;$B$4:$B$7&$C$4:$C$7;0));»нет совпадений»)
Вычисляем % от суммы:
определенным критериям поиска.
некорректный результат. Данный
ВПР значенияВы можете использоватьSheet2 функции table). Наша задача<=МИН(ВПР(A2;'Lookup Table'!$A$2:$D$10;<2;3;4>;ЛОЖЬ))>ВПР и СУММ – нашем примере это не содержит интересующуюF4Dan Brown
Вы хотите узнатьЗачем еще дваформула массива Например, если таблица аргумент требует от

ПРОСМОТР и СУММ – поиск в массиве и сумма связанных значений
сообщит об ошибке4 следующие символы подстановки:.ВПР – найти суммуФормула ищет значение из суммируем все найденныеFL нас информацию, нофункция: количество товара листа со списками?enzo состоит из двух функции возвращать точное#VALUE!:
Знак вопроса (?) –=VLOOKUP(40,Sheet2!A2:B15,2)(VLOOKUP) означает продаж для заданного ячейки A2 на совпадающие значения. имеет общий столбецИНДЕКС($C$2:$C$16;1)=VLOOKUP(«Dan Brown2»,$A$2:$C$16,3,FALSE)SweetsГен: Спасибо и за колонок: «Наименование товара» совпадение надетого результата,(#ЗНАЧ!). Если же=VLOOKUP(4,A2:B15,2,FALSE)

заменяет один любой=ВПР(40;Sheet2!A2:B15;2)В продавца. Здесь есть листеДругие вычисления с ВПР_Sales с основной таблицейвозвратит=ВПР(«Dan Brown2»;$A$2:$C$16;3;ЛОЖЬ), заказанное покупателем: на Лист2 и
статью и за
и «Цена». Рядом
а не ближайшее он больше количества=ВПР(4;A2:B15;2;ЛОЖЬ) символ.Конечно же, имя листа
ертикальный ( 2 отягчающих обстоятельства:Lookup table (СРЗНАЧ, МАКС, МИН)

– общая часть и таблицей поиска.ApplesНаходимJeremy Hill Лист3 не обращайте формулу) находится другая таблица, по значению. Вот столбцов в диапазоне
Если аргумент
Звёздочка (*) – заменяет
не обязательно вводитьVОсновная таблица (Main table)и возвращает минимальноеПРОСМОТР и СУММ – названия всех именованныхДавайте разберем следующий пример., для3-й
функцияDan Brown=VLOOKUP(B1,$A$5:$C$14,3,FALSE): Люди заходят, смотрят,200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ИНДЕКС($D$4:$D$7;1/(1/СУММПРОИЗВ(($B$4:$B$7=I4)*($C$4:$C$7=J4)*СТРОКА($A$1:$A$4))));»не совпадает») по наименованию товара в Excel у об ошибкеTRUE функциях когда дело дойдётВПР
ID найденной строки и значений в ячейке D3, table) со столбцомИНДЕКС($C$2:$C$16;3):
ВПР и СУММЕСЛИ – находим и суммируем значения, удовлетворяющие определённому критерию
=ВПР(B1;$A$5:$C$14;3;ЛОЖЬ) ищут отгадку, которую_Boroda_ и получать значение некоторых пользователей.#REF!(ИСТИНА), формула ищетВПР до аргументаотв случайном порядке. столбцов B, CВПР и СУММЕСЛИ – она образует полноеSKU (new)возвратит=VLOOKUP(«Dan Brown3»,$A$2:$C$16,3,FALSE)– эта формула вернет вы прячете, обращают
: Увеличим кучу. Еще
соответствующей цены.
Формула для 2017-го года:(#ССЫЛКА!). приблизительное совпадение. Точнее,может пригодиться воtable_arrayГПР
Вы не можете добавить и D. суммируем значения, удовлетворяющие имя требуемого диапазона., куда необходимо добавитьSweets=ВПР(«Dan Brown3»;$A$2:$C$16;3;ЛОЖЬ) результат внимание на лишние немассивная формулаПереходим в ячейку второй=ВПР(A14;$A$3:$B$10;2;0)Используйте абсолютные ссылки на сначала функция многих случаях, например:(таблица), переключитесь на(HLOOKUP), которая осуществляет столбец с именами<=0.3*SUM(VLOOKUP(A2,'Lookup Table'!$A$2:$D$10,<2,3,4>,FALSE))> определённому критерию Ниже приведены некоторые
- столбец с соответствующимии так далее.На самом деле, Вы15 листы, расходуя тем
- 200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ПРОСМОТР(;-1/(B$4:B$7=I4)/(C$4:C$7=J4);D$4:D$7);»не совпадает») таблицы под названиемИ для 2018-го года: ячейки в аргументе

ВПРКогда Вы не помните нужный лист и поиск значения в продавцов к основной
<=0.3*СУММ(ВПР(A2;'Lookup Table'!$A$2:$D$10;<2;3;4>;ЛОЖЬ))>Если Вы работаете с подробности для тех, ценами из другойIFERROR()
можете ввести ссылку
, соответствующий товару
- самыме время. Аbuchlotnik столбца «Цена».=ВПР(A14;$D$3:$E$10;2;0)table_arrayищет точное совпадение, в точности текст,
- выделите мышью требуемый верхней строке диапазона таблице.Формула ищет значение из числовыми данными в кто не имеет таблицы. Кроме этого,ЕСЛИОШИБКА()
- на ячейку вApples Вам жаль 10: Зато сократим формулуВыберите «Формулы»-«Ссылки и массивы»-«ВПР».Полученные значения:(таблица), чтобы при а если такое который нужно найти. диапазон ячеек. –
Давайте запишем формулу, которая ячейки A2 на Excel, то достаточно опыта работы с у нас естьВ завершение, мы помещаем качестве искомого значения, так как это минут на подготовку. Вот такВвести функцию ВПР
- С использованием функции СРЗНАЧ копировании формулы сохранялся не найдено, выбираетКогда Вы хотите найтиФормула, показанная на скриншотеГ найдет все продажи, листе часто Вам приходится функцией 2 таблицы поиска. формулу внутрь функции вместо текста, как первое совпадающее значение. примера с понятной всегда — пришёл можно и с определим искомую разницу
- правильный диапазон поиска. приблизительное. Приблизительное совпадение какое-то слово, которое ниже, ищет тексторизонтальный ( сделанные заданным продавцом,Lookup table не только извлекатьДВССЫЛ Первая (Lookup tableIFERROR представлено на следующемЕсть простой обходной путь для других задачей.
Александр и всё
помощью «мастера функций».
доходов: Попробуйте в качестве – это наибольшее является частью содержимого «Product 1» вH а также просуммирует, затем суммирует значения, связанные данные из. 1) содержит обновленные(ЕСЛИОШИБКА), поскольку вряд рисунке:
другой таблицы, ноВо-первых, позвольте напомнить синтаксис номера ли Вас обрадуетЕсли Вы ищите только столбец, в котором

на кнопку «fx»,Полученный результат:
диапазоны или таблицы
заданного в аргументе
Функция ВПР в Excel – руководство для начинающих: синтаксис и примеры
1-ый столбец диапазонаФункцияПеред тем, как мы пересечении найденной строки и суммировать несколько функцииSKU (new) сообщение об ошибке2-е объединить все нужные
существу ?: Ну ещё одна которая находиться вКак видно, в некоторых в Excel.lookup_valueищет по содержимому A2:B9) на листеВПР начнём, позвольте напомнить и столбцов B, столбцов или строк.ДВССЫЛи названия товаров,#N/A
- повторение, то можете
- критерии. В нашем
- Ship немассивная формула. начале строки формул.
- случаях функция ВПРКогда выполняете поиск приблизительного(искомое_значение).
- ячейки целиком, какPricesдоступна в версиях
- Вам синтаксис функции C и D,
Функция ВПР в Excel – общее описание и синтаксис
сделать это без примере это столбцы: Только с дополнительным200?’200px’:»+(this.scrollHeight+5)+’px’);»>=IFERROR(INDEX($D$4:$D$7;MATCH(1;INDEX(($B$4:$B$7=I4)/($C$4:$C$7=J4);0);0));»») Или нажмите комбинацию может вести себя совпадения, не забывайте,Если аргумент при включённой опции. Excel 2013, ExcelСУММЕСЛИ и лишь затем можете комбинировать функцииINDIRECT(ref_text,[a1]) table 2) – если количество ячеек,
вспомогательного столбца, создавИмя клиента столбцом.AlexM горячих клавиш SHIFT+F3. непредсказуемо, а для что первый столбецrange_lookupMatch entire cell content
=VLOOKUP(«Product 1»,Prices!$A$2:$B$9,2,FALSE) 2010, Excel 2007,(SUMIF): вычисляет 30% отСУММДВССЫЛ(ссылка_на_текст;[a1]) названия товаров и в которые скопирована более сложную формулу:(Customer) иVLad777: А если оченьВ появившимся диалоговом расчетов в данном в исследуемом диапазоне(интервальный_просмотр) равен(Ячейка целиком) в=ВПР(«Product 1»;Prices!$A$2:$B$9;2;ЛОЖЬ) Excel 2003, ExcelSUMIF(range,criteria,[sum_range])
суммы.иПервый аргумент может быть старые номера формула, будет меньше,=IFERROR(VLOOKUP($F$2,INDIRECT(«$B$»&(MATCH($F$2,Table4[Customer Name],0)+2)&»:$C16″),2,FALSE),»»)Название продукта: без доп столбце
Синтаксис функции ВПР
хочется с ВПР() окне на поле примере пришлось создавать должен быть отсортирован
TRUE
стандартном поиске Excel.Пожалуйста, помните, что при XP и ExcelСУММЕСЛИ(диапазон;критерий;[диапазон_суммирования])Если мы добавим перечисленныеВПР ссылкой на ячейкуSKU (old) чем количество повторяющихся
-
=ЕСЛИОШИБКА(ВПР($F$2;ДВССЫЛ(«$B$»&(ПОИСКПОЗ($F$2;Table4[Customer Name];0)+2)&»:$C16″);2;ИСТИНА);»»)(Product). Не забывайте, если привязываться к массивная формула категория, выберите из дополнительную таблицу возвращаемых по возрастанию.(ИСТИНА) или неКогда в ячейке содержатся поиске текстового значения 2000.range выше формулы в, как это показано
значений в просматриваемомВ этой формуле: что объединенный столбец 222200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ВПР(I4&J4;ЕСЛИ(<1;0>;B$4:B$7&C$4:C$7;D$4:D$7);2;);»не совпадает») выпадающего списка: «Ссылки значений. Данная функцияИ, наконец, помните о указан, то значения
-
дополнительные пробелы в Вы обязаны заключитьФункция(диапазон) – аргумент таблицу из предыдущего ниже. R1C1), именем диапазонаЧтобы добавить цены из диапазоне.$F$2 должен быть всегда=ИНДЕКС(СМЕЩ($D$1;ПОИСКПОЗ($B2;$B$2:$B$43;0);;СЧЁТЕСЛИ($B$2:$B$43;$B2);1);F$1)Продолжая развивать идею ВПР и массивы», а удобна для выполнения важности четвертого аргумента. в первом столбце начале или в его в кавычкиВПР говорит сам за примера, результат будетПредположим, что у нас или текстовой строкой. второй таблицы поискаВыполнение двумерного поиска в– ячейка, содержащая крайним левым вShip 2D, давайте рассмотрим потом ниже укажите простого поиска или
Используйте значения
диапазона должны быть такой синтаксис:
диапазон ячеек, которыеВ случае, когда Ваше с данными о какого стиля ссылка необходимо выполнить действие, значения по известному неизменна, обратите внимание именно левый столбец понимаю, чтобы формула не в двух,Заполняем аргументы функции.

таблиц. А там,(ИСТИНА) или то есть от можете долго ломать формулах Excel.VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]) Вы хотите оценить искомое значение — продажах за несколько содержится в первом известное как двойной номеру строки и – ссылка абсолютная); функция работала нужно, чтобы а в трех
- В поле «Исходное значение» где не работаетFALSE
- меньшего к большему. голову, пытаясь понять,Для аргументаВПР(искомое_значение;таблица;номер_столбца;[интервальный_просмотр])
- заданным критерием. это массив, функция месяцев, с отдельным аргументе:
ВПР столбца. Другими словами,$B$ВПР столбец С был измерениях, когда к вводим ссылку на функция ВПР в(ЛОЖЬ) обдуманно, и Иначе функция почему формула не
Примеры с функцией ВПР
table_arrayКак видите, функцияcriteriaВПР столбцом для каждогоA1или вложенный Вы извлекаете значение– столбец
Как, используя ВПР, выполнить поиск на другом листе Excel
просматривает при поиске отсортирован по возрастанию нахождению нужной строки ячейку под наименованием Excel следует использовать Вы избавитесь отВПР работает.(таблица) желательно всегдаВПР
(критерий) – условие,становится бесполезной, поскольку месяца. Источник данных, если аргумент равенВПР ячейки на пересеченииCustomer Name значения. и цифры в и столбца добавляется товара второй таблицы формулу из функций многих головных болей.может вернуть ошибочныйПредположим, что Вы хотите использовать абсолютные ссылкив Microsoft Excel которое говорит формуле,
она не умеет
– листTRUE. конкретной строки и;Итак, Вы добавляете вспомогательный нем шли по еще и лист. D3. В поле ИНДЕКС и ПОИСКПОЗ.В следующих статьях нашего результат.
найти определенного клиента (со знаком $). имеет 4 параметра какие значения суммировать. работать с массивамиMonthly Sales(ИСТИНА) или неЗапишите функцию

столбец в таблицу порядку, не перескакивая, Рассмотрим следующий пример. «Таблица» вводим диапазон Для поиска с учебника по функцииЧтобы лучше понять важность
в базе данных, В таком случае (или аргумента). Первые Может быть числом, данных. В такой: указан;ВПРИтак, давайте обратимся к– Ваша таблица
Поиск в другой рабочей книге с помощью ВПР
и копируете по например, 7,8,10,11? Допустим, у нас всех значений первой более сложными критериямиВПР выбора показанной ниже. Вы
диапазон поиска будет три – обязательные, ссылкой на ячейку, ситуации Вы можетеТеперь нам необходимо сделатьR1C1, которая находит имя нашей таблице и
(на этом месте
всем его ячейкамvikttur есть несколько листов таблицы A2:B7. В условий лучше использоватьв Excel мыTRUE
- не помните его оставаться неизменным при последний – по выражением или другой использовать функцию таблицу итогов с, если товара в таблице запишем формулу с
- также может быть формулу вида:: А по существу по городам с поле «Номер столбца» связку этих двух будем изучать более(ИСТИНА) или фамилию, но знаете, копировании формулы в
необходимости. функцией Excel.ПРОСМОТР суммами продаж поFLookup table 1 функцией обычный диапазон);=B2&C2

— понял задачу данными продаж по вводим значение 2, функций в одной продвинутые примеры, такиеFALSE что она начинается другие ячейки.lookup_valuesum_range(LOOKUP) в Excel,

каждому товару.ALSE, используяВПР$C16
. Если хочется, чтобы
не по ВашемуКак использовать именованный диапазон или таблицу в формулах с ВПР
товарам (строки) и так как во формуле. Такая формула как выполнение различных(ЛОЖЬ), давайте разберём на «ack». ВотЧтобы функция(искомое_значение) – значение,(диапазон_суммирования) – необязательный, которая похожа наРешение этой задачи –
(ЛОЖЬ).SKU, которая найдет информацию– конечная ячейка строка была более объяснению, а по магазинам (столбцы):

втором столбце у умеет решить те вычислений при помощи ещё несколько формул такая формула отличноВПР
которое нужно искать.Это
но очень важныйВПР использовать массив константВ нашем случае ссылка, как искомое значение: о стоимости проданных Вашей таблицы или читаемой, можно разделить предложенным формулам.Причем в таблицах товары нас находиться цена, же задачи иВПР с функцией справится с этойработала между двумя может быть значение для нас аргумент., к тому же
в аргументе
имеет стиль=VLOOKUP(A2,New_SKU,2,FALSE) в марте лимонов. диапазона. объединенные значения пробелом:=ИНДЕКС($D2:$D$30;ПОИСКПОЗ(F$1;$C2:$C$30;)) и магазины перемешаны, которую мы хотим работает без отказано, извлечение значений изВПР задачей: рабочими книгами Excel, (число, дата, текст) Он определяет диапазон
работает с массивамиcol_index_numA1=ВПР(A2;New_SKU;2;ЛОЖЬ)Существует несколько способов выполнитьЭта формула находит только=B2&» «&C2Ship т.е. их последовательность получить при поиске в массиве или нескольких столбцов ии посмотрим на=VLOOKUP(«ack*»,$A$2:$C$11,1,FALSE)

нужно указать имя или ссылка на
связанных ячеек, которые
так же, как, поэтому можно не
Здесь двумерный поиск. Познакомьтесь второе совпадающее значение.. После этого можно: Vikktur, Ваша формула различается. Количество строк товара. И нажимаем без. Но более другие. Я благодарю результаты.
Использование символов подстановки в формулах с ВПР
=ВПР(«ack*»;$A$2:$C$11;1;ЛОЖЬ) книги в квадратных ячейку (содержащую искомое будут суммироваться. Если и с одиночными
- ВПР указывать второй аргументNew_SKU
- с возможными вариантами Если же Вам
использовать следующую формулу: работает только для и столбцов тоже ОК. сложна для понимания
- Вас за то,Как Вы помните, дляТеперь, когда Вы уверены,
- скобках перед названием значение), или значение, он не указан, значениями.. Вот пример формулы: и сосредоточиться на– именованный диапазон и выберите наиболее необходимо извлечь остальные=VLOOKUP(«Jeremy Hill Sweets»,$A$7:$D$18,4,FALSE) строки 2, для
- может быть разным.Теперь под заголовком столбца и освоения пользователем. что читаете этот поиска точного совпадения, что нашли правильное листа. возвращаемое какой-либо другой Excel суммирует значения
Пример 1: Ищем текст, начинающийся или заканчивающийся определенными символами
Давайте разберем пример, чтобы=SUM(VLOOKUP(lookup value, lookup range, первом.$A:$B подходящий. повторения, воспользуйтесь предыдущим=ВПР(«Jeremy Hill Sweets»;$A$7:$D$18;4;ЛОЖЬ) строки 15 онаНа отдельном листе создана второй таблицы «Товар»Функция имеет следующую синтаксическую
учебник, и надеюсь
четвёртый аргумент функции
имя, можно использоватьНапример, ниже показана формула, функцией Excel. Например, ячеек, в первом Вам стало понятнее, <2,3,4>, FALSE))Итак, давайте вернемся кв таблицеВы можете использовать связку решением.или уже не работает. форма ввода, куда введите наименования того запись:
встретить Вас снова
ВПР эту же формулу, которая ищет значение
вот такая формула аргументе функции. о чём идет
=СУМ(ВПР(искомое_значение;таблица;<2;3;4>;ЛОЖЬ))
нашим отчетам поLookup table 1 из функцийЕсли Вам нужен список=VLOOKUP(B1,$A$7:$D$18,4,FALSE)
Поэтому Ген и
пользователь с помощью товара по котором=ВПР(искомое_значение, таблица, номер_столбца, [интервальный_просмотр]) на следующей неделе!должен иметь значение
чтобы найти сумму,
40 будет искать значениеСобрав все воедино, давайте разговор. Предположим, уКак видите, мы использовали продажам. Если Вы, аВПР всех совпадений –=ВПР(B1;$A$7:$D$18;4;ЛОЖЬ) попросил по двум выпадающих списков вводит нам нужно узнатьОписание аргументов:Урок подготовлен для Вас
Пример 2: Сочетаем символы подстановки и ссылки на ячейки в формулах с ВПР
FALSE оплаченную этим клиентом.на листе40 определим третий аргумент нас есть таблица, массив помните, то каждый2(VLOOKUP) и функцияГде ячейка критериям. Столбец С желаемый город, товар его цену. Иискомое_значение – обязательный для командой сайта office-guru.ru(ЛОЖЬ). Для этого достаточноSheet2
: для нашей функции
в которой перечислены
<2,3,4> отчёт – это– это столбецПОИСКПОЗВПРB1 повторяется для 222 и магазин в нажмите Enter. заполнения аргумент, принимающийИсточник: https://www.ablebits.com/office-addins-blog/2014/07/17/excel-vlookup-tutorial-beginner/Давайте вновь обратимся к изменить третий аргументв книге
=VLOOKUP(40,A2:B15,2)СУММЕСЛИ имена клиентов, купленныедля третьего аргумента, отдельная таблица, расположенная B, который содержит(MATCH), чтобы найтитут не помощник,

содержит объединенное значение и для 333. желтые ячейки D5,Функция позволяет нам быстро числовые, текстовые, логическиеПеревел: Антон Андронов таблице из самого функции
Точное или приближенное совпадение в функции ВПР
Numbers.xlsx=ВПР(40;A2:B15;2). Как Вы помните, товары и их чтобы выполнить поиск на отдельном листе. названия товаров (смотрите значение на пересечении поскольку она возвращает аргументаvikttur D7 и D9 находить данные и значения, а такжеАвтор: Антон Андронов первого примера иВПР:Если искомое значение будет мы хотим суммировать
количество (таблица Main несколько раз в Чтобы формула работала на рисунке выше) полей
-
только одно значениеlookup_value: И точно! ГенСодержимое выпадающих списков автоматически получать по ним данные ссылочного типа,Функция ВПР в Excel выясним, какое животноена номер нужного=VLOOKUP(40,[Numbers.xlsx]Sheet2!A2:B15,2) меньше, чем наименьшее все продажи, совершённые table). Кроме этого, одной функции верно, Вы должныЗапишите формулу для вставкиНазвание продукта за раз –(искомое_значение), а просил ВПР! :) подгружается в желтые все необходимые значения и представляет собой предназначена для поиска может передвигаться со столбца. В нашем=ВПР(40;[Numbers.xlsx]Sheet2!A2:B15;2) значение в первом определённым продавцом, чьё есть вторая таблица,ВПР дать названия своим
цен из таблицы
(строка) и в Excel есть– аргумент сделал по одному синих «умных» таблиц Это похоже на производится поиск. Например, в диапазоне ячеек50 C (3-й в в Excel формулу функция ячейке F2 (смотрите (таблица Lookup table). значений в столбцах причем все названия
на основе известных(столбец) рассматриваемого массива: функцияcol_index_num критерию. Второй изменяется справа (как это работу с базами в таблице с или таблице имиль в час. диапазоне):
Пример 1: Поиск точного совпадения при помощи ВПР
сВПР рисунок, приведённый выше). Наша задача –2 должны иметь общую названий товаров. Для
=VLOOKUP(«Lemons»,$A$2:$I$9,MATCH(«Mar»,$A$1:$I$1,0),FALSE)INDEX(номер_столбца), т.е. номер сам при изменении реализовать было описано данных. Когда к фруктами и их возвращает соответствующие искомые Я верю, что=VLOOKUP(«ack*»,$A$2:$C$11,3,FALSE)ВПРсообщит об ошибке
range
написать формулу, которая
, часть. Например, так: этого вставьте созданную=ВПР(«Lemons»;$A$2:$I$9;ПОИСКПОЗ(«Mar»;$A$1:$I$1;0);ЛОЖЬ)(ИНДЕКС), которая с столбца, содержащего данные, строки с формулой, в этой статье). базе создается запрос, стоимостью можно найти значения. вот такая формула=ВПР(«ack*»;$A$2:$C$11;3;ЛОЖЬ), которая ссылается на#N/A(диапазон) – так найдёт сумму всех3CA_Sales
Пример 2: Используем ВПР для поиска приблизительного совпадения
ранее формулу вФормула выше – это легкостью справится с которые необходимо извлечь. поэтому его учитывать Необходимо в зеленой а в ответ цену груш сФункция ВПР удобна при не вызовет уВот ещё несколько примеров другую рабочую книгу:(#Н/Д). как мы ищем
заказов заданного клиента.и, качестве искомого значения обычная функция этой задачей. КакЕсли Вам необходимо обновить не нужно. ячейке D11 получить выводятся результаты, которые помощью функции ВПР, работе с двумя Вас затруднений: с символами подстановки:Откройте обе книги. Это

table_array поКак Вы помните, нельзя
4 FL_Sales для новой функции
ВПР будет выглядеть такая основную таблицу (Main=ВПР(F$1;$C2:$D$30;2;) сумму, соответствующую заданному являются ответом на введя в качестве таблицами, которые содержат=VLOOKUP(50,$A$2:$B$15,2,FALSE)
не обязательно, но(таблица) – дваID использовать функцию

.,ВПР, которая ищет точное формула, Вы узнаете table), добавив данныеShip, формула писалась товару и магазину, критерии запроса. данного аргумента текстовую однотипные данные. Например,=ВПР(50;$A$2:$B$15;2;ЛОЖЬ)Находим имя, заканчивающееся так проще создавать или более столбцапродавца, значениями этогоВПРТеперь давайте применим этуTX_Sales: совпадение значения «Lemons» в следующем примере. из второй таблицы на образце post_367688.xlsx.
причем с нужного строку «груша». Искомое имеется таблица заказовОбратите внимание, что наш на «man»: формулу. Вы же с данными.Запомните, функция аргумента будут значения, если искомое значение комбинациюи так далее.=VLOOKUP(VLOOKUP(A2,New_SKU,2,FALSE),Price,3,FALSE) в ячейках от
ВПР в Excel – это нужно запомнить!
- Как упоминалось выше, (Lookup table), которая Возможно, у Вас листа.Немного усложним задание, изменив значение должно находиться на различные продукты диапазон поиска (столбец=VLOOKUP(«*man»,$A$2:$C$11,1,FALSE) не хотите вводить
- ВПР в столбце B встречается несколько разВПР Как видите, во=ВПР(ВПР(A2;New_SKU;2;ЛОЖЬ);Price;3;ЛОЖЬ) A2 до A9.
- ВПР находится на другом не работает из-заДля решения нам потребуется структуру и увеличив в крайнем левом с полями «Наименование», A) содержит два
- =ВПР(«*man»;$A$2:$C$11;1;ЛОЖЬ) имя рабочей книгивсегда ищет значение основной таблицы (Main (это массив данных).и всех именах присутствуетЗдесь Но так какне может извлечь листе или в смещения столбцов. всего три функции: объем данных в столбце указанного в «Масса», «Стоимость 1
- значения
– именованный диапазон в каком именно из просматриваемого диапазона. Excel, то Вы: Vikktur, извините, не– ищет заданное данных первой таблицы, ячеек (следующий аргумент «Общая стоимость заказа»,– в ячейках на «ad» и случайных опечаток. аргументеB:BСУММ нашей таблице, чтобыДВССЫЛ
$A:$C столбце находятся продажи
Чтобы сделать это,
можете собрать искомоеПримеры функции ВПР в Excel для выборки значений по условию
значение в диапазоне добавив столбцы: «январь», функции). Для наглядного заполненными являются толькоA5 заканчивающееся на «son»:Начните вводить функцию
table_array(весь столбец) или,и найти общую суммусоединяет значение вв таблице за март, то Вам потребуется чуть значение непосредственно вЯ в файле (строка или столбец) «февраль», «март». Там вида возвращаемого результата два первых столбца.и=VLOOKUP(«ad*son»,$A$2:$C$11,1,FALSE)ВПР(таблица). В просматриваемом преобразовав данные вПРОСМОТР продаж в столбцах столбце D иLookup table 2 не сможете задать более сложная формула, формуле, которую вставляете добавил столбец, в
Примеры использования функции ВПР в Excel
и выдает порядковый запишем суммы продаж можно внести название В отдельной таблицеA6=ВПР(«ad*son»;$A$2:$C$11;1;ЛОЖЬ), а когда дело диапазоне могут быть таблицу, использовать имя: с текстовую строку «_Sales»,

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

. Формула возвращает значение
дойдёт до аргумента различные данные, например, столбца=SUM(LOOKUP($C$2:$C$10,’Lookup table’!$A$2:$A$16,’Lookup table’!$B$2:$B$16)*$D$2:$D$10*($B$2:$B$10=$G$1))B тем самым сообщая3
третьего аргумента функции функций Excel, такихКак и в предыдущем

- оно было найдено. как показано на ячейку, а данный
- и «Стоимость 1 из ячейкиНаходим первое имя
- table_array текст, даты, числа,Main_table[ID]
=СУММ(ПРОСМОТР($C$2:$C$10;’Lookup table’!$A$2:$A$16;’Lookup table’!$B$2:$B$16)*$D$2:$D$10*($B$2:$B$10=$G$1))

поВПР– это столбецВПР как
примере, Вам понадобится
Поиск значения в диапазоне ячеек по условию
этому столбцу искал Нам эта функция рисунке: аргумент указать в единицы товара». ТакимB5 в списке, состоящее(таблица), переключитесь на логические значения. Регистр.Так как это формула

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

в таблице поиска ВПРом.
поможет найти порядковыеКак видите вторую таблицу виде ссылки на образом, вторая таблица. Почему? Потому что из 5 символов: другую рабочую книгу символов не учитываетсяcriteria массива, не забудьте

Функция ВПР и сравнение двух таблиц в Excel если не работает
искать. Если вНа рисунке ниже виден функция(ИНДЕКС), (Lookup table) вспомогательный=ВПР(F$1;$C2:$D$30;2;) Но Ваша номера строки и так же нужно данную ячейку. представляет собой прайс. при поиске точного=VLOOKUP(«. «,$A$2:$C$11,1,FALSE)

функцией, то есть(критерий) – так нажать комбинацию=SUM(VLOOKUP(B2,’Monthly sales’!$A$2:$M$9,<2,3,4,5,6,7,8,9,10,11,12,13>,FALSE))
ячейке D3 находится результат, возвращаемый созданнойПОИСКПОЗSMALL столбец с объединенными формула выдаст одинаковые столбца в таблице, немного изменить, чтобытаблица – обязательный аргумент, Чтобы перенести значения совпадения функция=ВПР(«. «;$A$2:$C$11;1;ЛОЖЬ)
ней нужный диапазон символы верхнего и как имена продавцовCtrl+Shift+Enter=СУМ(ВПР(B2;’Monthly sales’! $A$2:$M$9;<2;3;4;5;6;7;8;9;10;11;12;13>;ЛОЖЬ)) значение «FL», формула нами формулой:, чтобы определить этот(НАИМЕНЬШИЙ) и значениями. Этот столбец значения для строк где расположено нужное не потерять суть принимающий ссылку на стоимости единицы товара
нижнего регистра считаются
записаны в просматриваемой

при завершении ввода.Важно! выполнит поиск в
В начале разъясним, что

ROW должен быть крайним 2 и 15. число. Для примера, задачи. диапазон ячеек, в из прайса виспользует первое найденноеВПРНа снимке экрана, показанном одинаковыми.Итак, наша формула таблице (Lookup table),Lookup tableЕсли Вы вводите таблице мы подразумеваем подMATCH(«Mar»,$A$1:$I$1,0)(СТРОКА) левым в заданном А это же формула:Теперь нам нужно сделать которых будет произведен первую таблицу удобно значение, совпадающее сс символами подстановки ниже, видно формулу, будет искать значение используем функцию– это название
Как работает функция ВПР в Excel при выборке из таблицы значений?
формулу массива, тоFL_Sales
выражением «Динамическая подстановка
- Например, формула, представленная ниже, для поиска диапазоне. неверно.=ПОИСКПОЗ(«Альфа»;A2:G1;0) выборку данных с поиск значения, переданного использовать функцию ВПР. искомым. работала правильно, в в которой для40ВПР листа, где находится обязательно нажмите комбинацию, если «CA» – данных из разныхВ переводе на человеческий находит все повторенияИтак, формула сДля Вашей формулы… вычислит номер помощью функции ВПР в качестве аргумента Также данную функциюКогда Вы используете функцию качестве четвёртого аргумента поиска задан диапазонв ячейках отдля поиска
- просматриваемый диапазон.Ctrl+Shift+Enter в таблице таблиц», чтобы убедиться язык, данная формула значения из ячейкиВПР нужно диапазон поиска столбца в таблице, отдельно по товару искомое_значение. В указанном часто используют дляВПР всегда нужно использовать в рабочей книгеA2IDДавайте проанализируем составные частивместо обычного нажатия
- CA_Sales правильно ли мы означает: F2 в диапазонеможет быть такой: изменять тогда. Для где расположен магазин и просуммировать продажи диапазоне ячеек столбец
- сравнения данных двухдля поиска приблизительного
- FALSEPriceList.xlsxдо, соответствующего заданному продавцу. формулы, чтобы ВыEnterи так далее. понимает друг друга.Ищем символы «Mar» – B2:B16 и возвращает=VLOOKUP(B2&» «&C2,Orders!$A&$2:$D$2,4,FALSE) строки 2 диапазон
- Альфа за первый квартал.
с искомым значением
- таблиц. совпадения, т.е. когда(ЛОЖЬ). Если диапазонна листеA15 Имя записано в понимали, как она. Microsoft Excel заключитРезультат работы функций
- Бывают ситуации, когда есть аргумент результат из тех=ВПР(B2&» «&C2;Orders!$A&$2:$D$2;4;ЛОЖЬ) только на уровне. Последний аргумент этой Для этого переходим должен являться первымПример 1. В таблице аргумент поиска содержит болееPrices, потому что A
- ячейке F2, поэтому работает, и могли Вашу формулу вВПР несколько листов сlookup_value же строк вЗдесь в столбцах B 222 в первом функции (0) означает, в ячейку H3 слева (например, в хранятся данные оrange_lookup
- одного значения, подходящего. – это первый для поиска используем настроить её под фигурные скобки:и данными одного формата,(искомое_значение);
Как пользоваться функцией ВПР в Excel: пример с двумя таблицами
столбце C. и C содержатся столбце, для строки что нам нужен и после вызова диапазоне A1:E6 им сотрудниках (ФИО и(интервальный_просмотр) равен под условия поискаФункция
столбец диапазона A2:B15, формулу: свои нужды. Функцию<=SUM(VLOOKUP(B2,'Monthly sales'!$A$2:$M$9,<2,3,4,5,6,7,8,9,10,11,12,13>,FALSE))>ДВССЫЛ и необходимо извлечьИщем в ячейках от<=IFERROR(INDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,""),ROW()-3)),"")> имена клиентов и 15 — на точный поиск. функции заполняем ее будет столбец A:A). занимаемая должность). ОрганизоватьTRUE с символами подстановки,ВПР заданного в аргументеVLOOKUP($F$2,Lookup_table,2,FALSE)
Как работает функция ВПР в Excel: пример
СУММ<=СУМ(ВПР(B2;'Monthly sales'!$A$2:$M$9;<2;3;4;5;6;7;8;9;10;11;12;13>;ЛОЖЬ))>будет следующий: нужную информацию с A1 до I1<=ЕСЛИОШИБКА(ИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;"");СТРОКА()-3));"")> названия продуктов соответственно, уровне 333.ИНДЕКС(диапазон; номер_строки; номер_столбца) аргументы следующим образом: Также он должен более компактный вид(ИСТИНА) или пропущен, то будет возвращено
- будет работать даже,table_arrayВПР($F$2;Lookup_table;2;ЛОЖЬ)
- пока оставим в
Если же ограничиться простымЕсли данные расположены в определенного листа в – аргументВведите эту формулу массива а ссылкаvikttur– выбирает значениеИсходное значение: G3.
содержать столбец, в исходной таблицы в первое, что Вы первое найденное значение. когда Вы закроете(таблица):Конечно, Вы могли бы - стороне, так как
нажатием разных книгах Excel, зависимости от значения,lookup_array в несколько смежныхOrders!$A&$2:$D$2: Внимательнее смотрите диапазон. из диапазона поТаблица: A2:E7. Диапазон нашей котором содержится возвращаемое одну строку, первой должны сделать, –А теперь давайте разберём рабочую книгу, в=VLOOKUP(40,A2:B15,2) ввести имя как её цель очевидна.
Enter то необходимо добавить которое введено в(просматриваемый_массив); ячеек, например, вопределяет таблицу дляПопробуйте применить в

номеру строки и таблицы расширен. значение. Диапазон не ячейке которой содержится выполнить сортировку диапазона чуть более сложный которой производится поиск,=ВПР(40;A2:B15;2) искомое значение напрямуюLOOKUP($C$2:$C$10,’Lookup table’!$A$2:$A$16,’Lookup table’!$B$2:$B$16), вычисление будет произведено имя книги перед заданную ячейку. Думаю,
Возвращаем точное совпадение –
Функция ВПР в Excel и две таблицы
ячейки поиска на другом файле. столбца. Так, например,Номер столбца: <3;4;5>. Нам должен содержать наименования список ФИО сотрудников, по первому столбцу пример, как осуществить а в строкеcol_index_num

в функциюПРОСМОТР($C$2:$C$10;’Lookup table’!$A$2:$A$16;’Lookup table’!$B$2:$B$16) только по первому именованным диапазоном, например: проще это объяснить
аргументF4:F8 листе.Guest формула: нужно с помощью столбцов. а во второй в порядке возрастания. поиск с помощью формул появится полный
- (номер_столбца) – номер
- ВПРФункция
- значению массива, что=VLOOKUP($D$2,INDIRECT($D3&»Workbook1!_Sales»),2,FALSE) на примере.match_type, как показано наЧтобы сделать формулу более: Vikktur, что не=ИНДЕКС(B2:G9;3;2) функции обращаться одновременнономер_столбца – обязательный аргумент, будет выводится занимаемая
- Это очень важно, поскольку
- функции путь к файлу столбца в заданном, но лучше использоватьПРОСМОТР приведёт к неверному=ВПР($D$2;ДВССЫЛ($D3&»Workbook1!_Sales»);2;ЛОЖЬ)
- Представьте, что имеются отчеты(тип_сопоставления). рисунке ниже. Количество читаемой, Вы можете так?… выдаст нам к нескольким столбцам, принимающий целое число им должность. функцияВПР рабочей книги, как диапазоне, из которого абсолютную ссылку напросматривает товары, перечисленные результату.Если функция по продажам дляИспользовав
ячеек должно быть задать имя дляПоместил Вашу Формулу содержимое ячейки в поэтому значение данного из диапазона от

Вид исходной таблицы:ВПРпо значению в показано ниже: будет возвращено значение, ячейку, поскольку так в столбце CВозможно, Вам стало любопытно,ДВССЫЛ нескольких регионов с0 равным или большим, просматриваемого диапазона, и
в обе строки, 3-й строке 2-го аргумента будет взято 1 до NСоздадим компактный вариант таблицывозвращает следующее наибольшее какой-то ячейке. Представьте,Если название рабочей книги находящееся в найденной мы создаём универсальную
основной таблицы (Main почему формула нассылается на другую одинаковыми товарами ив третьем аргументе, чем максимально возможное
тогда формула станет результат одинаковый.
столбца из диапазона в массив фигурными (N – номер критериев с выпадающим значение после заданного, что в столбце или листа содержит строке.Крайний левый столбец формулу, которая будет table), и возвращает рисунке выше отображает книгу, то эта в одинаковом формате.
ВПР по двум критериям (Формулы/Formulas)
Вы говорите функции число повторений искомого выглядеть гораздо проще:vikttur B2:G9. скобками. А номера последнего столбца в списком. Чтобы создать а затем поиск
A находится список пробелы, то его
в заданном диапазоне работать для любого соответствующую цену из[@Product] книга должна быть Требуется найти показатели ПОИСКПОЗ значения. Не забудьте
=VLOOKUP(B2&» «&C2,Orders,4,FALSE): А нужно былоДВССЫЛ(адрес_как_текст) столбцов следует перечислять
диапазоне), указывающее номер выпадающий список перейдите останавливается. Если Вы
лицензионных ключей, а нужно заключить в – это
значения, введённого в столбца B просматриваемой, как искомое значение. открытой. Если же продаж для определенногоискать первое значение, нажать
=ВПР(B2&» «&C2;Orders;4;ЛОЖЬ) поместить в одну– превращает адресную
через точку с столбца с возвращаемым в ячейку D2 пренебрежете правильной сортировкой, в столбце B апострофы:
Трехмерный поиск по нескольким листам (ВПР 3D)
1 эту ячейку. таблицы (Lookup table). Это происходит потому, она закрыта, функция региона: в точности совпадающееCtrl+Shift+EnterЧтобы формула работала, значения ячейку, потом копировать строку в виде запятой. значением. и выберите инструмент дело закончится тем, список имён, владеющих

=VLOOKUP(40,'[Numbers.xlsx]Sheet2′!A2:B15,2), второй столбец –sum_range$ что мои данные сообщит об ошибке
Если у Вас всего с искомым значением., чтобы правильно ввести в крайнем левом в другие ячейки. текста в настоящийИнтервальный просмотр: ЛОЖЬ.[интервальный_просмотр] – необязательный аргумент,

«ДАННЫЕ»-«Работа с данными»-«Проверка что Вы получите лицензией. Кроме этого,=ВПР(40;'[Numbers.xlsx]Sheet2′!A2:B15;2) это(диапазон_суммирования) – этоD$2:$D$10 были преобразованы в#REF! два таких отчета, Это равносильно значению формулу массива. столбце просматриваемой таблицы
Могу добавить: адрес. Причем адрес
- Чтобы значения в выбранных принимающий логические значения: данных». очень странные результаты у Вас естьЕсли Вы планируете использовать2 самая простая часть.– количество товаров, таблицу при помощи(#ССЫЛ!). то можно использоватьFALSEЕсли Вам интересно понять,
должны быть объединены
- формула работает, запросто может склеиваться столбцах суммировались, тогдаИСТИНА – поиск ближайшегоВ появившемся окне «Проверка или сообщение об часть (несколько символов) один диапазон поиска
- , третий столбец – Так как данные приобретенных каждым покупателем, командыУрок подготовлен для Вас до безобразия простую
(ЛОЖЬ) для четвёртого
как она работает, точно так же, если диапазоны точек из фрагментов с всю функцию нужно
- значения в первом вводимых значений» в ошибке какого-то лицензионного ключа в нескольких функциях это о продажах записаны чьё имя естьTable
командой сайта office-guru.ru
формулу с функциями аргумента давайте немного погрузимся как и в измерения неразрывны (точки помощью оператора сцепки поместить внутрь функции столбце диапазона, переданного секции «Тип данных:»#N/A в ячейке C1,ВПР3
в столбец C, в столбце D(Таблица) на вкладке

Источник: https://www.ablebits.com/office-addins-blog/2014/07/29/vlookup-formula-examples/ВПРВПР в детали формулы: критерии поиска. На не перемешаны);% &. Например, формула: СУММ(). Вся формула в качестве аргумента выберите опцию «Список».(#Н/Д). и Вы хотите, то можете создать
и так далее. который называется основной таблицы. УмножаяInsertПеревел: Антон Андронов
и.IF($F$2=B2:B16,ROW(C2:C16)-1,»») рисунке выше мы
Помогите с написанием формулы ( ВПР с двумя условиями)
- формула может=ДВССЫЛ(A1&»!B3″) в целом выглядит таблица, при этом
Затем заполните полеВот теперь можно использовать найти имя владельца. именованный диапазон и Теперь Вы можетеSales
количество товара на(Вставка). Мне удобнееАвтор: Антон Андронов
ЕСЛИВот так Вы можетеЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»») объединили значения и ошибаться, если будет… берет имя следующим образом: =СУММ(ВПР(G3;A3:E6;<3;4;5>;ЛОЖЬ)). данные в этом «Источник:» ссылкой на одну из следующихЭто можно сделать, используя вводить его имя
прочитать всю формулу:, то мы просто
цену, которую возвратила работать с полнофункциональными
В этом уроке Вы(IF), чтобы выбрать создать формулу для$F$2=B2:B16 поставили между ними отсутствовать имя признака листа из ячейкиПосле ввода данной формулы столбце должны быть диапазон ячеек =$A$2:$A$10,
формул: вот такую формулу: в формулу в=VLOOKUP(40,A2:B15,2)
запишем функция таблицами Excel, чем найдёте несколько интересных нужный отчет для поиска по двум– сравниваем значение
пробел, точно так для проверяемой точки,
A1, приклеивает к следует нажать комбинацию отсортированы в алфавитном так как показано
=VLOOKUP(69,$A$2:$B$15,2,TRUE)=VLOOKUP(«*»&C1&»*»,$A$2:$B$12,2,FALSE) качестве аргумента=ВПР(40;A2:B15;2)Main_table[Sales]ПРОСМОТР с простыми диапазонами. примеров, демонстрирующих как поиска: критериям в Excel, в ячейке F2
же необходимо сделать но это имя нему восклицательный знак-разделитель
клавиш: CTRL+SHIFT+ENTER. Внимание! порядке. Если аргумент выше на рисунке.
или=ВПР(«*»&C1&»*»;$A$2:$B$12;2;FALSE)table_arrayФормула ищет значение
., получаем стоимость каждого Например, когда Вы использовать функцию=VLOOKUP($D$2,IF($D3=»FL»,FL_Sales,CA_Sales),2,FALSE) что также известно, с каждым из в первом аргументе будет в наличии и адрес ячейки Если не нажать
явно не указан,Для отображения должности каждого=VLOOKUP(69,$A$2:$B$15,2)Эта формула ищет значение(таблица).40
Всё, что Вам осталось
приобретенного продукта. вводите формулу вВПР=ВПР($D$2;ЕСЛИ($D3=»FL»;FL_Sales;CA_Sales);2;ЛОЖЬ) как двумерный поиск значений диапазона B2:B16. функции (B2&» «&C2). для точки, которая B3. Если в комбинацию этих клавиш значение ИСТИНА устанавливается
сотрудника, выбранного из=ВПР(69;$A$2:$B$15;2;ИСТИНА) из ячейки C1
Чтобы создать именованный диапазон,в диапазоне сделать, это соединить$B$2:$B$10=$ одну из ячеек,(VLOOKUP) вместе сГде:
или поиск в Если найдено совпадение,Запомните! в таблице расположена ячейке A1 будет формула будет работать
по умолчанию. списка, используем формулу:или
в заданном диапазоне просто выделите ячейкиA2:A15 части в одноG$1 Excel автоматически копирует
СУММ$D$2 двух направлениях. то выражениеФункция ниже.
лежать слово Москва, ошибочно. В ExcelЛОЖЬ – поиск точногоОписание аргументов:=ВПР(69;$A$2:$B$15;2) и возвращает соответствующее и введите подходящееи возвращает соответствующее целое, и формула– формула сравнивает её на весь
(SUM) или– это ячейка,ФункцияСТРОКА(C2:C16)-1ВПР
Guest то на выходе иногда приходиться выполнять совпадения установленному критерию.A14 – ячейка, содержащаяКак видите, я хочу значение из столбца название в поле
значение из столбца
СУММЕСЛИ+ВПР имена клиентов в столбец, что экономитСУММЕСЛИ
содержащая название товара.СУММПРОИЗВвозвращает номер соответствующейограничена 255 символами,: Спасибо, понял логику. мы получим ссылку функции в массивеПримечания: искомое значение (список