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

Как подтянуть данные из одной таблицы в другую в excel по нескольким признакам

  • автор:

Функция ВПР в Excel

ВПР (англ. вариант – VLOOKUP) – очень удобная и полезная функция особенно для работы с большим объемом данных, поскольку позволяет автоматически сопоставить диапазоны с десятками тысяч наименований. Является разновидностью поиска, но только вертикального (сверху вниз) – извлекает информацию из таблицы или определенного диапазона по строкам. Работает во всех версиях Excel и даже Google Sheets.

Синтаксис

Элемент – может быть числовым (адрес ячейки) или текстовым («текст»).

Адрес таблицы – диапазон ячеек, где примерно находится значение.

Номер столбца – принимает целое число из диапазона от 1 до n, из него будет извлечен результат.

Интервальный просмотр – приблизительное (ближайшее) соответствие критерию обозначается как 1 (истина), а точное соответствие – 0 (ложь). Данный логический аргумент указывать необязательно, если таблица отсортирована от минимального к максимальному значению. Если таблица не отсортирована и аргумент опущен, это равносильно истине.

В русифицированной версии Excel аргументы вводятся через знак «;», в англоязычной – через запятую.

Как работает функция?

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

С одним условием

Рассмотрим функцию на простом примере поиска сотрудника по присвоенному ему коду. Таблицу нужно отсортировать в порядке возрастания.

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

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

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

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

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

С несколькими условиями

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

Из таблицы нужно найти показатель выручки по конкретному менеджеру в определенный день:

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

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

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

Поиск по нескольким столбцам

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

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

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

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

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

Сравнение двух таблиц

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

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

  1. В таблице с зарплатой за март добавить еще один столбец.

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

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

По желанию теперь можно найти численную и процентную разницу.

Поиск в выпадающем списке

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

Для создания раскрывающегося списка:

  1. Поставить курсор в ячейку, где он будет располагаться.
  2. Перейти в раздел книги «Данные» – «Проверка данных».

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

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

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

Меняется фамилия в списке – меняется и зарплата.

Перенос данных

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

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

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

Ошибки

Когда пользователь ошибается при вводе данных или выборе диапазона, вместо результата отображаются различные ошибки: #Н/Д, #ЗНАЧ, #ССЫЛКА.

Ошибка #Н/Д появляется, если:

  1. Указанный диапазон не содержит искомый элемент.
  2. Искомый элемент меньше, чем минимальный в массиве.
  3. Задан точный поиск (аргумент «ЛОЖЬ» или 0), а искомого нет в диапазоне.
  4. Задан приблизительный поиск (аргумент «ИСТИНА» или 1), но данные не отсортированы по возрастанию.
  5. Разный формат (числовой и текстовый) у ячейки, откуда берется искомое, и ячейки с данными первого столбца.
  6. В коде есть пробелы или невидимые непечатаемые знаки.
  7. Используются значения времени или большие десятичные числа.

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

Ошибка #ЗНАЧ появляется, если:

  1. В качестве номера столбца указано число 0.
  2. Длина первого аргумента превышает 255 знаков.

Ошибка #ССЫЛКА появляется, если третий аргумент больше количества столбцов в таблице.

Вместо заключения

В Excel есть улучшенная версия ВПР – функция ПРОСМОТРХ. Считается более простой и удобной в использовании, работает в любом направлении и возвращает точные совпадения по умолчанию.

При необходимости задействовать горизонтальный поиск элемента стоит воспользоваться функцией ГПР.

В программах OpenOffice и LibreOffice используется VLOOKUP, ее синтаксис =VLOOKUP(lookupvalue; datatable; columnindex; mode), а работает функция точно так же, как описано выше.

Базы данных в Excel. Или ВПР по неограниченному количеству условий ⁠ ⁠

Довольно часто я встречаю решения выполнения поиска в таблице по двум/трём условиям с применением ВПР/ГПР. Подчас решения очень интересные. Однако что ВПР, что ГПР выдают только одно значение, и решения не масштабируемы. А что делать если необходимо из массива выбрать всю строку, которая будет подчиняться набору критериев?

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

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

Ход поиска однотипен:

1. Столбцы исходной таблицы имеют уникальные заголовки.

2. Для выборки из данной таблицы создаём таблицу условий. При этом заголовок таблицы условий должен совпадать с названием столбца из исходной таблицы, по которому будет проходить выборка. Если выборка по одному столбцу, но по нескольким условиям, то можно написать всё в один столбец (см.скрин ниже). Если условия по нескольким столбцам — по одному условию на столбец, наименования столбцов могут повторяться.

3. Затем переходим в вкладку «Данные» — «Сортировка и фильтр» — «Дополнительно». В открывшемся окне

3.1. отмечаем «скопировать результат в новое место». В этом случае исходная таблица не изменится.

3.2. Исходный диапазон — таблица исходная, вместе с шапкой

3.3. Диапазон условий — таблица условий, вместе с шапкой

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

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

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

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

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, Уникальный)

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

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

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

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

B6:G21 — Диапазон исходной таблицы, включая заголовок;

F6 — по какому столбцу буду суммировать;

B2:D3 — при каких условиях суммировать.

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

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

Насколько способ с использованием баз нагляднее, не так ли?

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

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

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

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

Рассмотрим ещё один метод поиска значения по 2-м, 3-м и более критериям без применение ВПР.

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

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

Базы данных в Excel. Или ВПР по неограниченному количеству условий Microsoft Excel, Vba, Плюшка, Длиннопост

В ячейке 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. Мне надо чтоб сохранял заранее заданный диапазон. Сердцем чую, что ответ довольно прост, но мозгом пока не допер. Вся надежда на ваши светлые умы.

Помощь с макросом Windows, Компьютерная помощь, Microsoft Excel, Vba, Программирование

Помогите поправить надстройку Exel⁠ ⁠

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

Помогите поправить надстройку Exel Microsoft Excel, Макрос, Vba, Без рейтинга

Весёлые маркеры графиков⁠ ⁠

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

Весёлые маркеры графиков Microsoft Excel, Vba, Прост, Длиннопост

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

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

Весёлые маркеры графиков Microsoft Excel, Vba, Прост, Длиннопост

Заменить маркеры на рисунки, в данном случае они представлены смайлами, можно при помощи не сложного макроса

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 — пути к рисункам.

Аналогично производится заполнение рисунками нескольких графиков на диаграмме

Весёлые маркеры графиков Microsoft Excel, Vba, Прост, Длиннопост

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»

Аналогично разным графикам одной диаграммы можно присвоить уникальные маркеры

Весёлые маркеры графиков Microsoft Excel, Vba, Прост, Длиннопост

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»

Ну или просто разными штатными маркерами разные графики. Но в автоматическом режиме — очень сокращает время подготовки документации. Полезно при подготовке к печати в чёрно-белом варианте.

Весёлые маркеры графиков Microsoft Excel, Vba, Прост, Длиннопост

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) ‘ Установка заливки маркера

Можно ли это сделать без макросов? Несомненно. Долго и нудно кликать кнопочки.

Весёлые маркеры графиков Microsoft Excel, Vba, Прост, Длиннопост

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

Excel триальный⁠ ⁠

Немного отвлечённый пост о защите своей работы.

Итак, общеизвестны способы закрытия информации в Excel, а именно:

1. Защита листа/книги

Excel триальный Microsoft Excel, Vba, Прост, Длиннопост

Выбираем разрешения/допуски, вводим пароль, сохраняем файл.

Дополнительно для каждой ячейки можно указать защищается ли она или нет. По умолчанию — защищается.

2. Защита кода

Excel триальный Microsoft Excel, Vba, Прост, Длиннопост

Точно так же вводим пароль (с повторением), ок, сохраняем.

Но все эти способы не более чем игрушки, и вскрываются совершенно не сложно при наличии некоторых минимальных навыков и особенно при сохранении в *.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» – правильный пароль

Excel триальный Microsoft Excel, Vba, Прост, Длиннопост

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

Excel триальный Microsoft Excel, Vba, Прост, Длиннопост

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

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

Формат отображения чисел⁠ ⁠

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

Для начала напомню в кратце о чём речь:

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

Формат отображения чисел Microsoft Excel, График, Плюшка, Длиннопост

Пользовательский формат может состоять из 4 фрагментов-масок, разделенных точкой с запятой*, где каждый фрагмент применяется в определенном случае:

<ПОЛОЖИТЕЛЬНЫЕ>; <ОТРИЦАТЕЛЬНЫЕ>; <НУЛЕВЫЕ>; <ТЕКСТ>

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

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

Excel использует несколько спецсимволов в масках форматов:

• 0 (ноль) — одно обязательное знакоместо (разряд), т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого знакоместа нет числа, то будет выведен ноль. Например, если к числу 12 применить маску 0000, то получится 0012, а если к числу 1,3456 применить маску 0,00 — получится 1,35.

• # (решетка) — одно необязательное знакоместо — примерно то же самое, что и ноль, но если для знакоместа нет числа, то ничего не выводится

• (пробел) — используется как разделитель групп разрядов по три между тысячами, миллионами, миллиардами и т.д.

• [ ] — в квадратных скобках перед маской формата можно указать цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.

Любой пользовательский текст (кг, чел, шт и тому подобные) или символы (в том числе и пробелы) — надо обязательно заключать в кавычки.

Формат отображения чисел Microsoft Excel, График, Плюшка, Длиннопост

Естественно вариаций масок гораздо больше, но данный пост не об этом -пользовательский формат общеизвестен.

Примечание: *пользовательские форматы в русской и английской версии офиса не совпадают. Внезапно. Всё мной написанное относится к русской версии.

Данный пост о том, как построить диаграмму вот с такими осями (например):

Формат отображения чисел Microsoft Excel, График, Плюшка, Длиннопост

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

Формат отображения чисел Microsoft Excel, График, Плюшка, Длиннопост

Код формата левой (основной) оси — [>=4] 0 ;;;

Код формата правой (вспомогательной) оси — [<=2000] 0 ;;;

Возможно данный способ кому-то пригодится. Ну а с масками формата — экспериментируйте 🙂

УПД. Благодарю Yacl за наблюдательность

Построение графиков⁠ ⁠

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

Построение графиков Microsoft Excel, Vba, Плюшка, Длиннопост

Любой, кто решал эту задачку — действовал следующим способом:

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)

В итоге получим вот такую диаграмму:

Построение графиков Microsoft Excel, Vba, Плюшка, Длиннопост

В дальнейшем можно обработать её как обычную — задать цвета, толщины и т.д. Но можно это сразу поручить нашему макросу:

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

По итогу диаграмма будет выглядеть так:

Построение графиков Microsoft Excel, Vba, Плюшка, Длиннопост

Как не трудно понять, данных, по которым построена диаграмма, на листе нет. И после удаления макроса останется только итоговый результат.

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

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

Ну и всегда есть вариант удивить преподавателя (0_о).

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения⁠ ⁠

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

Итак, по сути потребуется решить два вопроса:

1. Построить ход поиска с помощью стрелки/стрелок.

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

Т.е. получить что то похожее на вот это:

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Часть 1. Построение поиска решения.

Итак, у нас есть заданные аргументы (G2, t1в) и результат расчёта Р2. На графике сие будет выглядеть как одна точка с координатами X = G2 = 200 (в нашем примере) и Y = Р2 = 0,065

Существуют минимум три метода построения стрелки поиска:

Вариант 1. Для вертикальной и горизонтальной части строим независимые линии.

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Для вертикальной линии второй точкой указывается точка с равным значением по Х и минимумом по бумажному графику Y.

Для горизонтальной линии второй точкой указывается точка с равным значением по Y и минимумом по бумажному графику X.

Минимумы и максимумы диаграммы выставляются равными минимумам и максимумам бумажного рисунка.

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

Вариант 2. Единая линия поиска.

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

— величина погрешности «пользовательская».

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

Если есть желание получить стрелку направленную к оси Y, а ось Х начинается не с 0 (в нашем случае с 2-ти), то потребуется сделать ячейку рассчитывающую смещение относительно 0.

В нашем примере сделаем такое и для X и Y:

ось Х сдвинута на 20. Соответственно имеем ячейку Хзаданное — Хсмещения = 200 — 20

ось Y сдвинута на 0,02 Соответственно имеем ячейку Yзаданное — Yсмещения

Это значения не статичны, т.е. они пересчитаются при изменении исходных данных.

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

Аналогично первым вариантам указываются свойства линий.

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

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

Однако можно сделать выноску для той самой, единственной точки.

Результаты всех трёх способов не сильно отличаются:

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

Часть 2. Совмещение построенного графика с изначальным рисунком.

И опять есть минимум три варианта.

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

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

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

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

Отдельно стоят диаграммы состоящие из расположенных рядом двух и более диаграмм.

Их оформление, опять же, может быть реализовано тремя способами.

Способ 1 — применение третьего варианта наложения диаграмм на рисунок (описано выше). Т.е. строим два независимых графика для левой и правой части, делаем их прозрачными и накладываем на рисунок.

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

Способ 3. — пригоден только для расположенных рядом двух диаграмм. Данный способ позволяет избавится от стыка, неизбежно возникающего при первых двух способах. Основано как правило на применении второго варианта описанного выше, а именно использовании рисунка как подложки под диаграммой.

Рассмотрим один из вариантов построения стрелки на диаграмме, состоящей из двух диаграмм, при этом ширина клеток и величина шага для правого и левого графика разная.

Excel. Долгая дорога оцифровки. Часть 9. Оформление графиков, или отображение поиска решения Microsoft Excel, Vba, Плюшка, Длиннопост

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

Шаг 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. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

Описание вводимых данных аналогично ранее изложенному.

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

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Основное нововведение — определение количества графиков. Если вспомните ещё в 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

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

Давайте так, чтобы не утомлять читателя выкопировкой текстовок макросов — выкладываю сие для свободной скачки/использования/модернизации

Если возникнут вопросы как сие работает, распишу. Если у кого то что то не заработает — обращайтесь, посмотрю.

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

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Например диаграмма с несколькими независимыми графиками типа такой. Можно либо сделать 3 независимых макроса, либо один с выбором графика.

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

Позволит получить (текстовка от графика отличного от представленного выше рисунка)

‘ ТЭХ ПТ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»).

Ну и гораздо более сложноподчинённые, например что реализовано у меня:

Создание макроса для варианта когда критерий зависит от своего критерия

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Из того на что стоит обратить внимание, или маленькие лайфхаки:

1. Не всегда есть разметка осей. Например на диаграмме на последнем скрине вертикальная ось не размечена. Но она в данном случае не нужно. Важно иметь одинаковое значение для левого и правого графиков. Как правило я принимаю в качестве минимального значения оси — 0, в качестве максимального — число клеток (например 12-ть).

2. Внимание! Ось Х не обязательно горизонтальная при «снятии точек»! Например на диаграмме на последнем скрине для правого графика удобно взять в качестве оси Х вертикальную ось а в качестве Y — горизонтальную. Тогда результат обработки левой номограммы будет сразу выступать в качестве аргумента для правой номограммы.

3. Есть варианты оцифровки, когда лучше привязываться не к значениям осей, а к клеточкам 🙂 Да, звучит дико, но иногда проще внести пересчёт внутри макроса, чем реализовать оцифровку по данным осей. Например диаграмма ниже — обратите внимание, что вертикальная ось не обозначена, зато горизонтальная в левой диаграмме разбита на 3 участка с разным масштабом.

Excel. Долгая дорога оцифровки. Часть 7. Автоматическое создание макроса функции с использованием кусочной интерполяции Microsoft Excel, Vba, Плюшка, Длиннопост

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

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция⁠ ⁠

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

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция Microsoft Excel, Vba, Плюшка, Длиннопост

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

Отчасти кусочную интерполяцию показывал в прошлом посте серии ( Excel. Долгая дорога оцифровки. Часть 5. Создание пользовательской функции для двух аргументов. Ручной вариант ) при поиске решения между заданных критериев.

Как простые варианты рассмотрим кусочную интерполяцию по двум и по четырём точкам для заданных ниже данных.

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция Microsoft Excel, Vba, Плюшка, Длиннопост

Допустим нужно определить значение Y при X = 2.5.

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

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция Microsoft Excel, Vba, Плюшка, Длиннопост

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

Это справедливо для данных за 2-й и перед предпоследней известной точкой. Для данных отрезков и для экстраполяции использую линейную интерполяцию (по 2-м точкам).

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция Microsoft Excel, Vba, Плюшка, Длиннопост

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

Вообще правило такое, в зависимости от вида графика:

Excel. Долгая дорога оцифровки. Часть 6. Кусочная интерполяция Microsoft Excel, Vba, Плюшка, Длиннопост

Ну и собственно с помощью чего сие выполняется:

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

‘ Интерполяция по 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. Долгая дорога оцифровки. Часть 4. Макрос по созданию макросов апроксимации простых графиков полиномом Microsoft Excel, Vba, Прост, Длиннопост

Ну а теперь пройдём все шаги вместе.

В прошлом посте я говорил про макрос расчёта на основании построения тренда.

‘ Апроксимация полиномом для всего массива исходных данных

‘ В подпрограмму передаются все заданные точки и апроксимация ведётся по всем точкам!

‘ Данные из листа 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);»,»;».»)

Excel. Долгая дорога оцифровки. Часть 4. Макрос по созданию макросов апроксимации простых графиков полиномом Microsoft Excel, Vba, Прост, Длиннопост

Как заполнены дополнительные столбцы А, D и ячейки Е4 и т.д. видно на скрине.

Столбец А — контроль верности снятия данных (по возрастанию Х).

Столбец D — подсчёт снятых точек.

В итоге выполнение/изготовление макроса для меня сводится в вставке исходных данных начиная с ячейки В3, и затем жёлтых полей ввода описания, ввода названия новой функции и аргумента, выбора степени. Т.е. занимает не более минуты.

Для наблюдательных — присутствующие в макросе Dim Nna4 As Long ‘Номер начала диапазона.

Dim Nkon As Long ‘Номер конца диапазона.

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

Для продвинутых — да, можно обойтись без доп.столбцов А и D, да и E4 лишнее. И то и другое можно реализовать в макросе, но. но данный лист был так сформирован на основании удобства для меня — могу оперативно проверить правильность и полноту вставки исходных данных, отсутствие сбоев «снятия» точек с картинки при массовой оцифровке. И вообще — «работает? Стабильно? Без сбоев? Не трожь!» (с)Анекдот. Вам ничто не мешает сделать иначе.

Теория вкратце [ Часть 1. ]

Забираем данные с листа. [ Часть 2. ]

Апроксимация простых графиков полиномом средствами Excel [ Часть 3.]

Макрос по созданию макросов апроксимации простых графиков полиномом [ Часть 4.] Этот пост

Апроксимация графиков двух аргументов полиномом [ Часть 5.]

Кусочная интерполяция простых графиков [ Часть 6.]

Прореживание маркеров⁠ ⁠

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

Прореживание маркеров Microsoft Excel, Vba, Плюшка, Длиннопост

Для этого можно воспользоваться макросом:

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

Прореживание маркеров Microsoft Excel, Vba, Плюшка, Длиннопост

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

Заливка маркеров по цвету ячеек⁠ ⁠

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

Заливка маркеров по цвету ячеек Microsoft Excel, Vba, Оформление, Плюшка

Для того чтобы добиться такого результата требуется:
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​

Руководство по функции ВПР в 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, если​​ о выполнении формулы​​ код ошибки #Н/Д.​Теперь при выборе любой​:​

Руководство по функции ВПР в 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

​ изящное и не​ амбициозных задач 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, Вам может​Здесь функция​

​ но в таком​
​ эта функция. Если​

Руководство по функции ВПР в Excel

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

    ​table_array​​table_array​​(таблица), функция вернет​​ наиболее сложных и​​ – это формула​

​ массиве делает отдельный​
​ связанные значения с​

​, например, должна выглядеть​
​ в Excel функцией​

​ корректных результатов необходимо​ за сутки. Определить,​Гепард​(таблица) на скриншоте​(таблица), даже если​ ошибку​ наименее понятных.​

Руководство по функции ВПР в Excel

​ массива, она повторяет​​ вызов функции​​ другого листа? Или,​es​ наглядный и запоминающийся​(СТРОКА) действует как​

​ более сложная формула​
​ будет интересно начать​

  • ​ ВПР и как​​ выполнить сортировку таблицы​ посещал ли сайт​(Cheetah), который бежит​ сверху содержит имя​
  • ​ формула и диапазон​​#REF!​​В этом учебнике по​​ описанные выше действия​
  • ​ВПР​​ может быть, перед​и​ способ:​ дополнительный счётчик. Так​
  • ​ с комбинацией функций​​ с первой части​=​ только определяется совпадение​

​ или в качестве​ пользователь с любым​ со скоростью​ таблицы (Table7) вместо​ поиска находятся на​(#ССЫЛКА!).​

Руководство по функции ВПР в Excel

​ВПР​ для каждого значения​. Получается, что чем​​ Вами встала ещё​​CA_Sales​Выделите таблицу, откройте вкладку​ как формула скопирована​INDEX​ этого учебника, в​’​ запрашиваемых данных, сразу​​ аргумента [интервальный_просмотр] указать​​ ником из списка.​70​ указания диапазона ячеек.​ разных листах книги.​range_lookup​я постараюсь изложить​

Извлекаем все повторения искомого значения

​ в массиве поиска.​​ больше значений в​​ более трудная задача,​– названия таблиц​Formulas​ в ячейки F4:F9,​(ИНДЕКС) и​ которой объясняются синтаксис​Нижний Новгород​ подставляется их значения​ значение ЛОЖЬ.​​ Если посещений не​​миль в час,​​ Так мы делали​​ Если же они​​(интервальный_просмотр) – определяет,​​ основы максимально простым​

​ В завершение, функция​ массиве, тем больше​ например, просмотреть таблицу​ (или именованных диапазонов),​(Формулы) и нажмите​ мы вычитаем число​MATCH​ и основное применение​

​’​
​ для суммирования функцией​

​Если форматы данных, хранимых​ было, отобразить соответствующее​ а 70 ближе​ в предыдущем примере.​​ находятся в разных​​ что нужно искать:​ языком, чтобы сделать​СУММ​ формул массива в​ всех счетов-фактур Вашей​ в которых содержаться​Create from Selection​3​​(ПОИСКПОЗ).​​ВПР​!A1​

Руководство по функции ВПР в Excel

​ СУММ. Весь процесс​ в ячейках первого​ сообщение. Иначе –​ к 69, чем​

Часть 1:

​И, наконец, давайте рассмотрим​
​ книгах, то перед​

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

​ быть равен​​ неискушённых пользователей максимально​​ получившихся в результате​ тем медленнее работает​ ​ них счета-фактуры определённого​

Часть 2:

​ продажах. Вы, конечно​
​Отметьте галочками​

​ чтобы получить значение​​ВПР​​ приступим.​ нужно добавить апострофы​ массиву функций о​ которой выполняется поиск​Вид исходной таблицы:​​ ли? Почему так​​ который указывается для​ указать название рабочей​​FALSE​​ понятным. Кроме этого,​​ умножения. Совсем не​​ Excel.​ продавца и просуммировать​​ же, можете использовать​​Top row​​1​​может возвратить только​Поиск в 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​​ просматриваемом массиве это​​Извлекаем все повторения искомого​ с двумя условиями)​ в строку формул​

Руководство по функции ВПР в Excel

​ число, а в​ формулу:​ значение, не превышающее​ упоминалось в начале​ понятнее, согласны? Кроме​

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

​Этот параметр не обязателен,​ВПР​​ столбец должен быть​​(ПОИСКПОЗ) вместо​​ по одному или​​ гораздо удобнее.​ имена диапазонам из​в ячейке​​ значение повторяется несколько​​ значения​​Пример и пояснения​​ то это не​

​ первом столбце таблицы​
​Функция ЕСЛИ выполняет проверку​

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

​Общее описание и синтаксис​
​ возрастания.​

​(ВПР) и​ Excel. Что это​ много, функция​

  • ​ строке и левом​(строка 5, вычитаем​​ хотите извлечь 2-е​​ строке и столбцу​
  • ​ пальцах долго объяснять)​ какому результату. Выполнить​ функция вернет код​​ значения. Если оно​​ немного света на​
  • ​ можете получить абсолютно​ хорошая альтернатива абсолютным​​ учебнике по​​Примеры с функцией ВПР​

​Функция​​SUM​​ за значения? Любые​ЕСЛИ​​ столбце Вашей таблицы.​​ 3) и так​ или 3-е из​Используем несколько ВПР в​VLad777​​ функцию циклическим массивом​​ ошибки #Н/Д.​ равно 0 (нуль),​​ работу с функцией​​ разные результаты в​

​ ссылкам, поскольку именованный​ВПР​Как, используя ВПР, выполнить​СУММЕСЛИ​(СУММ). Далее в​ числовые. Что это​– это не​ Теперь Вы можете​

Функция СУММПРОИЗВ

​ далее.​​ них? А что​​ одной формуле​: с вложением не​

​ можно только через​
​Для отображения сообщений о​

Функции ИНДЕКС и ПОИСКПОЗ

​ будет возвращена строка​ВПР​ одной и той​ диапазон не меняется​я покажу Вам​ поиск на другом​

​(SUMIF) в Excel​
​ этой статье Вы​

Именованные диапазоны и оператор пересечения

​ за критерии? Любые…​ лучшее решение. Вместо​ осуществлять поиск, используя​SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3))​ если все значения?​Динамическая подстановка данных из​ получилось.​

  1. ​ комбинацию горячих клавиш:​​ том, что какое-либо​​ «Не заходил», иначе​​в Excel, и​​ же формуле при​
  2. ​ при копировании формулы​​ несколько примеров, объясняющих​​ листе Excel​ похожа на​​ увидите несколько примеров​​ Начиная с числа​ нее можно использовать​ эти имена, напрямую,​НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))​ Задачка кажется замысловатой,​ разных таблиц​возможно файл велик.​ CTRL+SHIFT+ENTER.​ значение найти не​ – возвращен результат​Руководство по функции ВПР в Excel
  3. ​ Вы больше не​ его значении​​ в другие ячейки.​​ как правильно составлять​

​Поиск в другой рабочей​
​СУММ​
​ таких формул.​

​ или ссылки на​ функцию​ без создания формул.​Функция​ но решение существует!​Функция​

​Ген​Стоит отметить, что главным​ удалось, можно использовать​ конкатенации возвращаемого функцией​ смотрите на неё,​TRUE​

Руководство по функции ВПР в Excel

  1. ​ Значит, Вы можете​​ формулы для поиска​​ книге с помощью​

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

Руководство по функции ВПР в Excel

Используем несколько ВПР в одной формуле

​Предположим, в одном столбце​ВПР​: файлик​ недостатком функции ВПР​ «обертки» логических функций​ ВПР значения и​ как на чужака.​​(ПРАВДА) или​​ быть уверены, что​ точного и приблизительного​ ВПР​ только что разбирали,​ пример, как можно​ значение, и заканчивая​(INDIRECT), чтобы возвратить​

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

Руководство по функции ВПР в Excel

​ выбрать несколько одинаковых​ ошибки #Н/Д) или​Примеры расчетов:​ кратко повторить ключевые​(ЛОЖЬ).​​ формуле всегда останется​​Я надеюсь, функция​​ или таблицу в​​ суммирует значения. Разница​

    ​ нескольких столбцов таблицы​​ результатами формул Excel.​​Как Вы, вероятно, знаете,​, например, так:​​наименьшее значение в​​ а в другом​​ инструмент для выполнения​​ — [​

​ исходных значений в​
​ ЕСЛИОШИБКА (для перехвата​

​Пример 3. В двух​​ моменты изученного нами​​Для начала давайте выясним,​​ корректным.​​ВПР​​ формулах с ВПР​​ лишь в том,​​ и вычислить их​​Итак, есть ли в​ функция​=Lemons Mar​ массиве данных. В​

​ что​
​ сумму. Таким же​

​ Microsoft Excel функционал,​​ДВССЫЛ​​… или наоборот:​​ нашем случае, какую​​ которые они купили.​​ в базе данных.​​]​​Скачать пример функции ВПР​​ВПР в Excel очень​ о доходах предприятия​

​ закрепить его в​ Excel понимается под​ в полноценную таблицу​

Руководство по функции ВПР в Excel

Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ

​ чуть-чуть понятнее. Теперь​ формулах с ВПР​СУММЕСЛИ​ образом Вы можете​ способный справиться с​используется для того,​=Mar Lemons​

​ по счёту позицию​ Попробуем найти 2-й,​ Однако, есть существенное​Ген​ с двумя таблицами​ удобный и часто​ за каждый месяц​ памяти.​ точным и приближенным​ Excel, воспользовавшись командой​ давайте рассмотрим несколько​

​Точное или приближенное совпадение​суммирует только те​ выполнить другие математические​ описанными задачами? Конечно​ чтобы вернуть ссылку,​Помните, что имена строки​ (от наименьшего) возвращать​ 3-й и 4-й​

Руководство по функции ВПР в Excel

​ ограничение – её​: Кратко, нужно вертикальную​Другими словами если в​ используемый инструмент для​ двух лет. Определить,​​Функция​​ совпадением.​​Table​​ примеров использования​ в функции ВПР​ значения, которые удовлетворяют​

​ операции с результатами,​
​ же, да! Решение​

​ заданную текстовой строкой,​

  • ​ и столбца нужно​​ – определено функцией​ товары, купленные заданным​ синтаксис позволяет искать​ табличку из 2х​ нашей таблице повторяются​ работы с таблицами​ насколько средний доход​ВПР​
  • ​Если аргумент​​(Таблица) на вкладке​ВПР​ВПР в Excel –​ заданному Вами критерию.​ которые возвращает функция​ кроется в комбинировании​ а это как​ разделить пробелом, который​ROW​
  • ​ клиентом.​​ только одно значение.​​ столбцов переложить в​​ значения «груши», «яблока»​​ как с базой​ за 3 весенних​в Excel не​range_lookup​Insert​в формулах с​ это нужно запомнить!​ Например, простейшая формула​ВПР​​ функций​​ раз то, что​ в данном случае​

Руководство по функции ВПР в Excel

​(СТРОКА) (смотри Часть​Простейший способ – добавить​​ Как же быть,​​ горизонтальную ( в​ мы не сможем​ данных и не​ месяца в 2018​​ может смотреть налево.​​(интервальный_просмотр) равен​(Вставка), то при​

​ реальными данными.​Итак, что же такое​​ с​​. Вот несколько примеров​ВПР​ нам сейчас нужно.​ работает как оператор​ 2). Так, для​ вспомогательный столбец перед​ если требуется выполнить​ однострочную) — значения​ просуммировать всех груш​ только. Данная функция​​ году превысил средний​​ Она всегда ищет​FALSE​​ выделении диапазона мышью,​​На практике формулы с​​ВПР​​СУММЕСЛИ​​ формул:​​(VLOOKUP) или​ Итак, смело заменяем​

  • ​ поиск по нескольким​​ вставить под «шапку»​ и яблок. Для​ проста в освоении​ доход за те​
  • ​ значение в крайнем​​(ЛОЖЬ), формула ищет​ Microsoft Excel автоматически​ функцией​? Ну, во-первых, это​​:​​<=AVERAGE(VLOOKUP(A2,'Lookup Table'!$A$2:$D$10,<2,3,4>,FALSE))>​
  • ​ПРОСМОТР​​ в представленной выше​При вводе имени, Microsoft​F4​Customer Name​ условиям? Решение Вы​Юрий М​ этого нужно использовать​ и очень функциональна​ же месяцы в​ левом столбце диапазона,​ точное совпадение, т.е.​ добавит в формулу​​ВПР​​ функция Excel. Что​
Как работают ДВССЫЛ и ВПР

​ Excel будет показывать​
​функция​

​и заполнить его​ найдёте далее.​: А проверить никак?​ функцию ПРОСМОТР(). Она​ при выполнении.​ предыдущем году.​ заданного аргументом​ точно такое же​ названия столбцов (или​

  • ​редко используются для​​ она делает? Она​​=СУММЕСЛИ(A2:A10;»>10″)​​Формула ищет значение из​СУММ​
  • ​ функцией​​ подсказку со списком​​НАИМЕНЬШИЙ(<массив>;1)​​ именами клиентов с​​Предположим, у нас есть​

​Ген​ очень похожа на​​Благодаря гармоничному сочетанию простоты​​Вид исходной таблицы:​table_array​ значение, что задано​ название таблицы, если​

​ поиска данных на​ ищет заданное Вами​– суммирует все значения​ ячейки A2 на​(SUM) или​ЕСЛИ​ подходящих имен, так​возвращает​ номером повторения каждого​ список заказов и​: от чего велик?​ ВПР но умеет​ и функциональности ВПР​Для нахождения искомого значения​​(таблица).​​ в аргументе​​ Вы выделите всю​​ том же листе.​​ значение и возвращает​​ ячеек в диапазоне​ листе​СУММЕСЛИ​на ссылку с​

​ же, как при​​1-й​​ имени, например,​ мы хотим найти​вот в .xlsx​ хорошо работать с​​ пользователи активно ее​​ можно было бы​В функции​lookup_value​ таблицу).​ Чаще всего Вы​ соответствующее значение из​​A2:A10​​Lookup table​(SUMIF). Примеры формул,​​ функцией​​ вводе формулы.​

​(наименьший) элемент массива,​​John Doe1​​Количество товара​​Юрий М​​ массивами в исходных​

Руководство по функции ВПР в Excel

​ используют в процессе​ использовать формулу в​ВПР​(искомое_значение). Если в​Готовая формула будет выглядеть​

​ будете искать и​
​ другого столбца. Говоря​

​, которые больше​​и вычисляет среднее​​ приведённые далее, помогут​ДВССЫЛ​Нажмите​ то есть​,​(Qty.), основываясь на​​: От того, что​​ значениях.​

​ работы с электронными​ массиве:​
​все значения используются​
​ первом столбце диапазона​

​ примерно вот так:​

Как использовать функцию ВПР вместе с СУММ или СУММЕСЛИ в Excel

​ извлекать соответствующие значения​ техническим языком,​10​ арифметическое значений, которые​​ Вам понять, как​​. Вот такая комбинация​​Enter​​1​​John 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)​ поиска будет одним​​ то есть​​ имена клиентов находятся​​ из покупателей заказывал​​ правила.​ могут быть другим​

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

Использование ВПР и СУММ в Excel

​=ВПР($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​​ Для начала на​​ месяцев (Март) и​​сообщит об ошибке​

​ не найдены, функция​
​ от того, куда​

​ листа с восклицательным​​ВПР​ID​Lookup table​​ВПР​​– это ячейка​​ поиска не имеют​​ИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))​После этого Вы можете​Обычная функция​

​ (не узрел).​
​: Здравствуйте.​

Использование ВПР и СУММ в Excel

​ готовом примере применения​ полученный результат будет​​#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:C16​2-й​ соответствующее заданному искомому​​ более понятно, чего​​: можно так​ таблицы 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>;ЛОЖЬ))>​ВПР и СУММ –​ нашем примере это​ не содержит интересующую​F4​Dan Brown​

​ Вы хотите узнать​Зачем еще два​формула массива​ Например, если таблица​ аргумент требует от​

Использование ВПР и СУММ в Excel

ПРОСМОТР и СУММ – поиск в массиве и сумма связанных значений

​сообщит об ошибке​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)​

Использование ВПР и СУММ в Excel

​ заменяет один любой​=ВПР(40;Sheet2!A2:B15;2)​​В​​ продавца. Здесь есть​ листе​Другие вычисления с ВПР​_Sales​ с основной таблицей​​возвратит​​=ВПР(«Dan Brown2»;$A$2:$C$16;3;ЛОЖЬ)​​, заказанное покупателем​​: на Лист2 и​

​ статью и за​
​ и «Цена». Рядом​

​ а не ближайшее​ он больше количества​=ВПР(4;A2:B15;2;ЛОЖЬ)​​ символ.​​Конечно же, имя листа​

​ертикальный (​​ 2 отягчающих обстоятельства:​Lookup table​ (СРЗНАЧ, МАКС, МИН)​

Использование ВПР и СУММ в Excel

​– общая часть​ и таблицей поиска.​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-го года:​ ячейки в аргументе​

Использование ВПР и СУММ в Excel

​ВПР​Когда Вы не помните​ нужный лист и​ поиск значения в​ продавцов к основной​

​<=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, то достаточно​​ опыта работы с​​ у нас есть​В завершение, мы помещаем​ качестве искомого значения​, так как это​ минут на подготовку​. Вот так​Ввести функцию ВПР​

  1. ​С использованием функции СРЗНАЧ​​ копировании формулы сохранялся​ не найдено, выбирает​Когда Вы хотите найти​​Формула, показанная на скриншоте​​Г​ найдет все продажи,​ листе​ часто Вам приходится​ функцией​ 2 таблицы поиска.​​ формулу внутрь функции​​ вместо текста, как​ первое совпадающее значение.​ примера с понятной​ всегда — пришёл​​ можно и с​​ определим искомую разницу​
  2. ​ правильный диапазон поиска.​​ приблизительное. Приблизительное совпадение​ какое-то слово, которое​ ниже, ищет текст​оризонтальный (​ сделанные заданным продавцом,​​Lookup table​​ не только извлекать​​ДВССЫЛ​​ Первая (Lookup table​IFERROR​ представлено на следующем​Есть простой обходной путь​ для других задачей.​

​ Александр и всё​
​ помощью «мастера функций».​

​ доходов:​ Попробуйте в качестве​ – это наибольшее​ является частью содержимого​​ «Product 1» в​​H​ а также просуммирует​, затем суммирует значения,​ связанные данные из​.​ 1) содержит обновленные​(ЕСЛИОШИБКА), поскольку вряд​ рисунке:​

​ другой таблицы, но​Во-первых, позвольте напомнить синтаксис​ номера​ ли Вас обрадует​​Если Вы ищите только​​ столбец, в котором​

Использование ВПР и СУММ в Excel

​ на кнопку «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_lookup​Match 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, Excel​​SUMIF(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​​ выше формулы в​​, как это показано​

    ​ значений в просматриваемом​В этой формуле:​ что объединенный столбец​ 222​200?’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

    ​ таблиц. А там,​​(ИСТИНА) или​​ то есть от​​ можете долго ломать​​ формулах 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​​(ИСТИНА) или не​​Запишите функцию​

      Руководство по функции ВПР в Excel

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

      ​ в базе данных,​​ В таком случае​​ (или аргумента). Первые​ Может быть числом,​ данных. В такой​:​ указан;​ВПР​Итак, давайте обратимся к​– Ваша таблица​

      Поиск в другой рабочей книге с помощью ВПР

      ​ и копируете по​​ например, 7,8,10,11?​​ Допустим, у нас​ всех значений первой​ более сложными критериями​ВПР​ выбора​ показанной ниже. Вы​

      ​ диапазон поиска будет​ три – обязательные,​​ ссылкой на ячейку,​​ ситуации Вы можете​​Теперь нам необходимо сделать​​R1C1​​, которая находит имя​​ нашей таблице и​

      ​ (на этом месте​
      ​ всем его ячейкам​

      ​vikttur​ есть несколько листов​ таблицы A2:B7. В​​ условий лучше использовать​​в Excel мы​TRUE​

      1. ​ не помните его​ оставаться неизменным при​ последний – по​ выражением или другой​ использовать функцию​ таблицу итогов с​, если​ товара в таблице​ запишем формулу с​
      2. ​ также может быть​​ формулу вида:​​: А по существу​ по городам с​​ поле «Номер столбца»​​ связку этих двух​ будем изучать более​(ИСТИНА) или​ фамилию, но знаете,​ копировании формулы в​

      ​ необходимости.​ функцией Excel.​ПРОСМОТР​ суммами продаж по​F​​Lookup table 1​​ функцией​​ обычный диапазон);​​=B2&C2​

      Руководство по функции ВПР в Excel

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

      Руководство по функции ВПР в Excel

      ​ каждому товару.​ALSE​, используя​ВПР​$C16​

      ​. Если хочется, чтобы​
      ​ не по Вашему​

      Как использовать именованный диапазон или таблицу в формулах с ВПР

      ​ товарам (строки) и​ так как во​ формуле. Такая формула​​ как выполнение различных​​(ЛОЖЬ), давайте разберём​ на «ack». Вот​Чтобы функция​(искомое_значение) – значение,​(диапазон_суммирования) – необязательный,​​ которая похожа на​​Решение этой задачи –​

      ​(ЛОЖЬ).​SKU​, которая найдет информацию​– конечная ячейка​​ строка была более​​ объяснению, а по​ магазинам (столбцы):​

      Руководство по функции ВПР в Excel

      ​ втором столбце у​ умеет решить те​ вычислений при помощи​ ещё несколько формул​​ такая формула отлично​​ВПР​

      ​ которое нужно искать.Это​
      ​ но очень важный​

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

      ​ в аргументе​
      ​ имеет стиль​

      ​=VLOOKUP(A2,New_SKU,2,FALSE)​ в марте лимонов.​ диапазона.​ объединенные значения пробелом:​=ИНДЕКС($D2:$D$30;ПОИСКПОЗ(F$1;$C2:$C$30;))​ и магазины перемешаны,​ которую мы хотим​ работает без отказано​, извлечение значений из​ВПР​ задачей:​ рабочими книгами Excel,​ (число, дата, текст)​ Он определяет диапазон​

      ​ работает с массивами​col_index_num​A1​​=ВПР(A2;New_SKU;2;ЛОЖЬ)​​Существует несколько способов выполнить​​Эта формула находит только​​=B2&» «&C2​Ship​ т.е. их последовательность​ получить при поиске​ в массиве или​ нескольких столбцов и​и посмотрим на​=VLOOKUP(«ack*»,$A$2:$C$11,1,FALSE)​

      Руководство по функции ВПР в Excel

      ​ нужно указать имя​ или ссылка на​

      ​ связанных ячеек, которые​
      ​ так же, как​

      ​, поэтому можно не​
      ​Здесь​

      ​ двумерный поиск. Познакомьтесь​ второе совпадающее значение.​. После этого можно​: 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

      ​ имя, можно использовать​Например, ниже показана формула,​ функцией 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), чтобы найти​тут не помощник,​

      Руководство по функции ВПР в Excel

      ​содержит объединенное значение​​ и для 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​
      ​ написать формулу, которая​

      Руководство по функции ВПР в Excel

      ​,​ часть. Например, так:​ этого вставьте созданную​=ВПР(«Lemons»;$A$2:$I$9;ПОИСКПОЗ(«Mar»;$A$1:$I$1;0);ЛОЖЬ)​​(ИНДЕКС), которая с​​ столбца, содержащего данные,​​ строки с формулой,​​ в этой статье).​​ базе создается запрос,​​ стоимостью можно найти​ значения.​​ вот такая формула​​=ВПР(«ack*»;$A$2:$C$11;3;ЛОЖЬ)​, которая ссылается на​#N/A​​(диапазон) – так​​ найдёт сумму всех​3​CA_Sales​

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

      ​ ранее формулу в​​Формула выше – это​​ легкостью справится с​ которые необходимо извлечь.​ поэтому его учитывать​​ Необходимо в зеленой​​ а в ответ​​ цену груш с​​Функция ВПР удобна при​ не вызовет у​Вот ещё несколько примеров​ другую рабочую книгу:​(#Н/Д).​ как мы ищем​

      ​ заказов заданного клиента.​и​​,​​ качестве искомого значения​ обычная функция​ этой задачей. Как​Если Вам необходимо обновить​ не нужно.​ ячейке D11 получить​ выводятся результаты, которые​ помощью функции ВПР,​ работе с двумя​ Вас затруднений:​​ с символами подстановки:​​Откройте обе книги. Это​

      Руководство по функции ВПР в Excel

      ​table_array​ по​Как Вы помните, нельзя​

      ​4​ ​FL_Sales​ ​ для новой функции​
      ​ВПР​ ​ будет выглядеть такая​ ​ основную таблицу (Main​

      ​=ВПР(F$1;$C2:$D$30;2;)​ сумму, соответствующую заданному​ являются ответом на​ введя в качестве​​ таблицами, которые содержат​​=VLOOKUP(50,$A$2:$B$15,2,FALSE)​

      ​ не обязательно, но​(таблица) – два​​ID​​ использовать функцию​

      Руководство по функции ВПР в Excel

      ​.​,​​ВПР​​, которая ищет точное​​ формула, Вы узнаете​​ 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 – это нужно запомнить!

      1. ​Как упоминалось выше,​​ (Lookup table), которая​​ Возможно, у Вас​ листа.​Немного усложним задание, изменив​ значение должно находиться​ на различные продукты​ диапазон поиска (столбец​​=VLOOKUP(«*man»,$A$2:$C$11,1,FALSE)​​ не хотите вводить​
      2. ​ВПР​​ в столбце B​​ встречается несколько раз​ВПР​ Как видите, во​=ВПР(ВПР(A2;New_SKU;2;ЛОЖЬ);Price;3;ЛОЖЬ)​ A2 до A9.​
      3. ​ВПР​ находится на другом​ не работает из-за​Для решения нам потребуется​​ структуру и увеличив​​ в крайнем левом​​ с полями «Наименование»,​​ A) содержит два​
      4. ​=ВПР(«*man»;$A$2:$C$11;1;ЛОЖЬ)​​ имя рабочей книги​​всегда ищет значение​​ основной таблицы (Main​​ (это массив данных).​​и​​ всех именах присутствует​​Здесь​​ Но так как​не может извлечь​ листе или в​​ смещения столбцов.​​ всего три функции:​ объем данных в​​ столбце указанного в​​ «Масса», «Стоимость 1​
      5. ​ значения​

      ​– именованный диапазон​ в каком именно​​ из просматриваемого диапазона.​​ 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»,​

      Пример 1.

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

      таблицы критериев с выпадающим списком.

      ​. Формула возвращает значение​

      ​ дойдёт до аргумента​ различные данные, например,​ столбца​=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​ в списке, состоящее​(таблица), переключитесь на​ логические значения. Регистр​.​Так как это формула​

      Пример 2.

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

      Вид таблицы с выпадающим списком.

      ​ в таблице поиска​ ВПРом.​

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

      Поиск значения в диапазоне по условию.

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

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

      Пример 3.

      ​ функцией, то есть​(критерий) – так​ нажать комбинацию​=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​ в таблице​ таблиц», чтобы убедиться​ язык, данная формула​ значения из ячейки​ВПР​ нужно диапазон поиска​ столбца в таблице,​ отдельно по товару​ искомое_значение. В указанном​ часто используют для​ВПР​ всегда нужно использовать​ в рабочей книге​A2​ID​Давайте проанализируем составные части​вместо обычного нажатия​
      • ​CA_Sales​ правильно ли мы​ означает:​ F2 в диапазоне​может быть такой:​ изменять тогда. Для​ где расположен магазин​ и просуммировать продажи​ диапазоне ячеек столбец​
      • ​ сравнения данных двух​для поиска приблизительного​
      1. ​FALSE​PriceList.xlsx​до​, соответствующего заданному продавцу.​ формулы, чтобы Вы​Enter​и так далее.​ понимает друг друга.​Ищем символы «Mar» –​ B2:B16 и возвращает​=VLOOKUP(B2&» «&C2,Orders!$A&$2:$D$2,4,FALSE)​ строки 2 диапазон​
      2. ​Альфа​ за первый квартал.​

      ​ с искомым значением​

      1. ​ таблиц.​ совпадения, т.е. когда​(ЛОЖЬ). Если диапазон​на листе​A15​ Имя записано в​ понимали, как она​. Microsoft Excel заключит​Результат работы функций​
      2. ​Бывают ситуации, когда есть​ аргумент​ результат из тех​=ВПР(B2&» «&C2;Orders!$A&$2:$D$2;4;ЛОЖЬ)​ только на уровне​. Последний аргумент этой​ Для этого переходим​ должен являться первым​Пример 1. В таблице​ аргумент​ поиска содержит более​Prices​, потому что A​
      3. ​ ячейке F2, поэтому​ работает, и могли​ Вашу формулу в​ВПР​ несколько листов с​lookup_value​ же строк в​Здесь в столбцах B​ 222 в первом​ функции (0) означает,​ в ячейку H3​ слева (например, в​ хранятся данные о​range_lookup​
      4. ​ одного значения, подходящего​.​ – это первый​ для поиска используем​ настроить её под​ фигурные скобки:​и​ данными одного формата,​(искомое_значение);​

      Как пользоваться функцией ВПР в 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.​ИНДЕКС(диапазон; номер_строки; номер_столбца)​ аргументы следующим образом:​ Также он должен​ более компактный вид​(ИСТИНА) или пропущен,​ то будет возвращено​

      1. ​будет работать даже,​table_array​ВПР($F$2;Lookup_table;2;ЛОЖЬ)​
      2. ​пока оставим в​Ссылки и массивы.​Если же ограничиться простым​Если данные расположены в​ определенного листа в​ – аргумент​Введите эту формулу массива​ а ссылка​vikttur​– выбирает значение​Исходное значение: G3.​Мастер фунций.​ содержать столбец, в​ исходной таблицы в​ первое, что Вы​ первое найденное значение.​ когда Вы закроете​(таблица):​Конечно, Вы могли бы​
      3. ​ стороне, так как​

      ​ нажатием​ разных книгах 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​ формула:​ нужно с помощью​ столбцов.​ а во второй​ в порядке возрастания.​ поиск с помощью​ формул появится полный​

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

      ​ ячеек должно быть​ задать имя для​Поместил Вашу Формулу​ содержимое ячейки в​ поэтому значение данного​ из диапазона от​

      Результат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​Чтобы формула работала, значения​ ячейку, потом копировать​ строку в виде​ запятой.​ значением.​ и выберите инструмент​ дело закончится тем,​ список имён, владеющих​

      Впр по двум условиям вȎxcel

      ​=VLOOKUP(40,'[Numbers.xlsx]Sheet2′!A2:B15,2)​, второй столбец –​sum_range​$​ что мои данные​ сообщит об ошибке​

      ​Если у Вас всего​ с искомым значением.​, чтобы правильно ввести​ в крайнем левом​ в другие ячейки.​ текста в настоящий​Интервальный просмотр: ЛОЖЬ.​[интервальный_просмотр] – необязательный аргумент,​

      Впр по двум условиям вȎxcel

      ​ «ДАННЫЕ»-«Работа с данными»-«Проверка​ что Вы получите​ лицензией. Кроме этого,​=ВПР(40;'[Numbers.xlsx]Sheet2′!A2:B15;2)​ это​(диапазон_суммирования) – это​D$2:$D$10​ были преобразованы в​#REF!​ два таких отчета,​ Это равносильно значению​ формулу массива.​ столбце просматриваемой таблицы​

      ​Могу добавить:​ адрес. Причем адрес​

      • ​Чтобы значения в выбранных​​ принимающий логические значения:​ данных».​ очень странные результаты​ у Вас есть​Если Вы планируете использовать​2​ самая простая часть.​– количество товаров,​ таблицу при помощи​(#ССЫЛ!).​ то можно использовать​FALSE​Если Вам интересно понять,​
        ​ должны быть объединены​
        ​- формула работает,​ запросто может склеиваться​ столбцах суммировались, тогда​​ИСТИНА – поиск ближайшего​​В появившемся окне «Проверка​ или сообщение об​ часть (несколько символов)​ один диапазон поиска​
      • ​, третий столбец –​​ Так как данные​ приобретенных каждым покупателем,​ команды​Урок подготовлен для Вас​ до безобразия простую​
        ​(ЛОЖЬ) для четвёртого​
        ​ как она работает,​ точно так же,​ если диапазоны точек​ из фрагментов с​ всю функцию нужно​
      • ​ значения в первом​​ вводимых значений» в​ ошибке​ какого-то лицензионного ключа​ в нескольких функциях​ это​ о продажах записаны​ чьё имя есть​Table​
        ​ командой сайта office-guru.ru​
        ​ формулу с функциями​ аргумента​ давайте немного погрузимся​ как и в​ измерения неразрывны (точки​ помощью оператора сцепки​ поместить внутрь функции​ столбце диапазона, переданного​ секции «Тип данных:»​#N/A​ в ячейке C1,​ВПР​3​

      ​ в столбец C,​ в столбце D​(Таблица) на вкладке​

      Впр по двум условиям вȎxcel

      ​Источник: https://www.ablebits.com/office-addins-blog/2014/07/29/vlookup-formula-examples/​ВПР​ВПР​ в детали формулы:​ критерии поиска. На​ не перемешаны);%​ &. Например, формула:​ СУММ(). Вся формула​ в качестве аргумента​ выберите опцию «Список».​​(#Н/Д).​​ и Вы хотите​, то можете создать​

      ​и так далее.​​ который называется​​ основной таблицы. Умножая​​Insert​​Перевел: Антон Андронов​

      ​и​.​IF($F$2=B2:B16,ROW(C2:C16)-1,»»)​ рисунке выше мы​

      Впр по двум условиям вȎxcel

      Помогите с написанием формулы ( ВПР с двумя условиями)

      ​- формула может​​=ДВССЫЛ(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 символами,​: Спасибо, понял логику.​ мы получим ссылку​ функции в массиве​Примечания:​ искомое значение (список​

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *