Работа с массивами в Excel - IT Новости из мира ПК
Oc-windows.ru

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

Работа с массивами

Работа с массивами

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

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

Создание формулы массива

При вводе формулы массива Microsoft Excel автоматически заключает ее в фигурные скобки (<>).

Порядок ввода формулы массива следующий:

  • 1. Выделить ячейку (если формула массива рассчитывает одно значение) или диапазон ячеек (если формула массива рассчитывает несколько значений).
  • 2. Набрать формулу
  • 3. Нажать комбинацию клавиш CTRL+SHIFT+ENTER.

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

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

Функция ЕСЛИ используется при проверке условий для значений и формул. Эта функция рассчитывает одно значение, если заданное условие при вычислении дает значение ИСТИНА, и другое значение, если ЛОЖЬ.

Функция СРЗНАЧ рассчитывает среднее арифметическое своих аргументов.

Решение задачи показано на рис. 1.14.

Ячейка С16 содержит формулу массива <=СРЗНАЧ(ЕСЛИ(С5:С 14=»EBpona»;D5:D14))>, которая отбирает из диапазона С5:С14

Аппаратура: итог

Акустические

Акустические: итог

Студийное оборудование

Студийное оборудование: итог

Рис. 1.14. Решение задачи по определению среднего дохода ячейки, содержащие текст «Европа», а затем вычисляет среднее значение по соответствующим ячейкам диапазона D5:D14 — 106566,7.

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

Рассмотрим пример, в котором по заданному ряду из трех значений продаж (в строке 5) и ряду из трех месяцев (в строке 3) (рис. 1.15) необходимо определить продолжение линейного ряда объемов продаж. Для решения данной задачи можно использовать функцию ТЕНДЕНЦИЯ. Данная функция рассчитывает значения в соответствии с линейным трендом, используя аппроксимацию по методу наименьших квадратов.

=ТЕНДЕНЦИЯ(С5: Е5;; СЗ: ЕЗ)

Рис. 1.15. Решение задачи по определению продолжения линейного ряда объемов продаж

Для отображения всех вычисляемых значений формула введена в три ячейки строки 6 (С6:Е6).

Формула =ТЕНДЕНЦИЯ(С5:Е5;;СЗ:ЕЗ), введенная как формула массива, определяет три значения, вычисленные по трем объемам продаж за три месяца: 22 196, 17 079, 11 962.

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

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

Для прогнозирования четвертого и пятого значений в ежемесячной последовательности на основе первых трех значений исполь зуется формула =ТЕНДЕНЦИЯ(С5:Е5;;<4;5>), которая дает следующие результаты: 6845, 1728.

Константы в формулах массива

Обычно формула при обработке одного или нескольких аргументов возвращает (рассчитывает) одно значение; в качестве аргумента формулы может при этом выступать либо ссылка на ячейку, содержащую значение, либо само значение. В формуле массива, которая обычно используется для ссылки на диапазон ячеек, можно ввести массив значений в одну ячейку. Этот массив значений называется массивом констант; удобен он тем, что при этом не требуется заносить по одному значению в ячейку на листе. Чтобы создать массив констант, надо выполнить следующие действия:

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

Например, вместо ввода четырех чисел (10, 20, 30, 40) в отдельные ячейки их можно ввести в массив, в одну ячейку в фигурных скобках: <10, 20, 30, 40>. Такой массив констант является матрицей размерности 1 на 4 и соответствует ссылке на 1 строку и 4 столбца. Чтобы представить значения 10, 20, 30, 40 и 50, 60, 70, 80, находящиеся в расположенных друг под другом ячейках, можно создать массив констант размерностью 2 на 4, причем строки будут отделены друг от друга точкой с запятой, а значения в столбцах — запятыми: <10, 20, 30,40; 50,60, 70, 80>.

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

Массив констант может состоять из элементов разного типа, например <1, 3, 4; ИСТИНА, ЛОЖЬ, ИСТИНА>. Элементы массива должны быть константами, но не формулами.

Массив констант не может содержать $ (знак доллара), скобки или % (знак процента), ссылки на ячейки, столбцы или строки разной длины.

Статические и динамические массивы в VBA

Массив это набор элементов одинакового типа, которые имеют общее имя. А обращение к этим элементам происходит по их индексу. Проще говоря, это множество переменных собранных в одну группу по определенному типу. Для более ясного понимания возьмем, например, жемчужные бусы, одни черного цвета, другие белого. Так вот, бусы черного и белого цвета это массивы жемчужин, сгруппированные по цвету, черный и белый, а жемчужины являются элементами этих массивов.
Массивы бывают одномерными (линейными), те же вышеупомянутые бусы и многомерными — двумерные(матрицы, 2D), трехмерные и т.д. Статические — кол-во элементов массива объявляется на этапе разработки и не изменяется в процессе выполнения программы, и динамические — число элементов и размерность изменяется в процессе работы программы.

Читать еще:  Драйвера для Brother MFC-7860DWR

Объявление статических массивов в VBA

Массив в VB объявляется как обычная переменная, после ключевого слова Dim или Public, с той лишь разницей, что после имени переменной (перед ключевым словом «As«) должны быть скобки.
Dim Mas () as integer

Статические массивы объявляются с указанием верхней и нижней границы:
Dim Mas (2 to 50) as integer

Объявить массив также можно указав только кол-во элементов:
Dim Mas (50) as integer

В этом случае нижняя граница будет установлена по умолчанию 0. Если Вы хотите что бы первым индексом во всех массивах была 1, то Вам необходимо в начале модуля (перед первой процедурой) указать следующее:
Option Base 1

Для объявления многомерных массивов используется запись следующего вида:
Dim Matrix (1 to 10, 1 to 10) as integer
Dim V3D (10, 10,10) as integer ‘трехмерный массив
Dim V4D (10, 10, 25, 5) as integer ‘четырехмерный массив
и т.д.

Объявление динамических массивов в VBA

Динамический массив — не имеет предопределенного кол-ва элементов и определяется без указания в скобках границ:
Dim MyDynMas () as integer

Но динамический массив можно будет использовать только после программного определения границ, после ключевого слова ReDim:
Dim MyDynMas () as integer
‘некоторый код или расчет границ
i=4
Redim MyDynMas (i)

x = i +13
Redim MyDynMas (x)

после переопределения кол-ва элементов массива, все элементы обнуляются. Для того чтобы сохранить значения элементов массива, после ReDim необходимо добавить ключевое слово Preserve:

Redim Preserve MyDynMas (x)

Так же возможно переопределить размерность массивов, например с одномерного на двух-трех-мерный:
Dim MyDynMas () as integer
‘некоторый код или расчет границ
i=4
Redim MyDynMas (i)

x = i +13
Redim MyDynMas (i, x)

но учтите, что при переопределении размерности массива, использование ключевого слова Preserve для сохранения значений элементов — невозможно!

Рассмотрим примеры по работе со статическими и динамическими массивами.

Пример 1:
Дан одномерный массив с тремя элементами и матрица 3х4 (3 строки, 4 столбца). Необходимо умножить каждый элемент одномерного массива со всеми элементами строки матрицы, т.е. 1-й элемент умножаем со всеми элементами первой строки матрицы, 2-й со второй строкой и т.д. Результат вывести в виде матрицы в сообщении.

Option Explicit
Option Base 1

Sub StatMas()
Dim Mas(3) As Integer
Dim Matr(3, 4) As Integer
Dim Msg As String
Dim i, j As Integer

‘заполняем масивы
Mas(1) = 2: Mas(2) = 4: Mas(3) = 6

Matr(1, 1) = 4: Matr(1, 2) = 5: Matr(1, 3) = 1: Matr(1, 4) = 7
Matr(2, 1) = 12: Matr(2, 2) = 10: Matr(2, 3) = 2: Matr(2, 4) = 9
Matr(3, 1) = 24: Matr(3, 2) = 11: Matr(3, 3) = 6: Matr(3, 4) = 3

Msg = «Результат:» & Chr(13)
For i = 1 To 3
For j = 1 To 4
Matr(i, j) = Matr(i, j) * Mas(i)
‘добавляем результат в строку сообщения, резделитель TAB (chr(9))
Msg = Msg & CStr(Matr(i, j)) & Chr(9)
Next j
‘добавляем перенос на новую строку chr(13)
Msg = Msg & Chr(13)
Next i
MsgBox Msg
End Sub

Пример 2:
Двухмерный массив не известной длины заполняется следующим образом Mas(i,j) = i * j. Размеры массива вводятся пользователем с помощью формы InputBox. Результат вывести в сообщении.

Sub DynMasTest()
Dim Msg As String
Dim i, j, col, row As Integer
Dim DynMas() As Long

Msg = «Результат:» & Chr(13)

col = InputBox(«Введите кол-во столбцов массива», _
«Пример создания динамического массива», 2)
row = InputBox(«Введите кол-во строк массива», _
«Пример создания динамического массива», 2)

ReDim Preserve DynMas(col, row)

For i = 1 To col
For j = 1 To row
DynMas(i, j) = i * j
Msg = Msg & CStr(DynMas(i, j)) & Chr(9)
Next j
Msg = Msg & Chr(13)
Next i
MsgBox Msg
End Sub

И напоследок, для того чтобы узнать (получить) длину массива воспользуйтесь функцией UBound(). Запись типа UBound(Mas) вернет кол-во элементов одномерного массива. Если же необходимо узнать длину многомерного массива, то функция примет вид UBound(Matr, 2) – вернет кол-во элементов второго измерения, UBound(Matr, 3) – третьего и т.д. Запись же UBound(Matr, 1) равносильна UBound(Mas).

Sub GetLengthMas()
Dim Matr(3, 4, 5) As Integer

MsgBox «Размер массива: » & UBound(Matr, 1) & «x» & UBound(Matr, 2) & «x» & UBound(Matr, 3) _
& Chr(13) & «Всего элементов: » & UBound(Matr, 1) * UBound(Matr, 2) * UBound(Matr, 3)
End Sub

Урок 8 по VBA — Массивы

Всем привет, в этой статье мы рассмотрим массивы VBA языка. Но сначала немного теории… Как мы уже знаем, данные удобно хранить в переменных, но это не всегда эффективно, например: есть десять значений (номера телефонов), объявлять для каждого значения переменную довольно громоздко, да и объем кода увеличивается, более эффективно объявить одну структуру и сохранить в ней все данные, к которые можно будет обратиться по порядковому номеру (индексу). Такая структура и будет называться массивом.

VBA массивы

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

VBA одномерный массив

Одномерные VBA массивы представляют из себя список, который хранит данные заданного типа, например:

Тут мы объявили одномерный VBA массив, состоящий из трех элементов (нумерация элементов начинается с нуля) и задали целый тип данных. Можно и не задавать тип данных, например:

Для примера, создадим форму с темя текстовыми метками (объект Label) и одной кнопкой и попишем в редакторе кода:

Читать еще:  Порты, необходимые для входящих соединений Skype

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

В данном случае мы присвоили значения разных типов (строка, дата и вещественное число), при этом, сам тип данных для массива VBA мы не указывали, иначе, произошла бы ошибка Type mismatch (несоответствие типов).

VBA многомерный и двумерный массив

Помимо одномерных, можно объявлять и многомерные массивы до 60 измерений, например:

Строка Dim MyArr(0 To 1, 0 To 3) As Integer говорит, что мы объявили двумерный VBA массив размером два на четыре, при этом, мы сразу указали нумерацию, для сравнения:

Хотя можно прописать и так MyArr(2,3), в этом случае нумерация будет идти от нуля автоматически.

Динамические массивы VBA – довольно часто может возникнуть ситуация, когда точно количество элементов массива не известно, или же его размер надо изменить. При объявлении динамического массива его размер не указывается:

Для изменения размера используется ключевое слово ReDim:

ReDim автоматически удаляет все предыдущие значения, что бы они сохранились (например, предыдущий размер составлял 4 элемента и хранил данные, а теперь надо расширить размер до 6 элементов, сохранив предыдущие значения), используется ключевое слово Preserve:

Оператор Option Base 1 – данные оператор позволяет указать, что бы нумерация элементов начиналась не с нуля, а с единицы.

Некоторые функции – язык VBA предоставляет в распоряжение пользователя функции для работы с массивами, например:

Array() – данная функция VBA позволяет сразу задавать значения одномерного массива:

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

Erase – очищает содержимое:

Динамические VBA массивы

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

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

Спасибо за внимание. Автор блога Владимир Баталий

Работа с массивами в Excel

В данной статье рассмотрены некоторые функции по работе со ссылками и массивами:

  1. ВПР;
  2. ГПР;
  3. СТРОКА;
  4. СТОЛБЕЦ;
  5. АДРЕС;
  6. ДВССЫЛ;
  7. ЧСТРОК;
  8. ЧИСЛСТОЛБ;
  9. СМЕЩ;
  10. ПОИСКПОЗ.

Функция ВПР

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

Синтаксис: =ВПР(ключ; диапазон; номер_столбца; [интервальный_просмотр]), где

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

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

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

    Для цены необходимо использовать функцию ВПР с точным совпадением (интервальный просмотр ЛОЖЬ), так как данный параметр определен для всех товаров и не предусматривает использование цены другого товара, если вдруг она по случайности еще не определена.

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

    В принципе, данный подход устраивал бы, если для товаров, для которых отсутствует категория, не подтягивалось расположение. Обратите внимание на товар «Лук Подмосковье». Для него определено расположение «Стелаж №2», хотя в первой таблице нет категории «Лук». Это происходит все по тем же причинам, когда функцией не обнаруживается равенств, то она определяет для значения значение меньшего самого близкого по сортировке ключа, а для «Лук Подмосковье» это категория «Картофель».

    Он подобного эффекта можно избавиться путем определения категории из наименования товара используя текстовые функции ЛЕВСИМВ(C11;ПОИСК(» «;C11)-1), которые вернут все символы до первого пробела, а также изменить интервальный просмотр на точный.

    Помимо всего описанного, функция ВПР позволяет применять для текстовых значений подстановочные символы – * (звездочка – любое количество любых символов) и ? (один любой символ). Например, для искомого значения «*» & «иван» & «*» могут подойти строки Иван, Иванов, диван и т.д.

    Также данная функция может искать значения в массивах – =ВПР(1;<2;»Два»:1;»Один»>;2;ЛОЖЬ) – результат выполнения строка «Два».

    Функция ГПР

    Горизонтальное первое равенство. Ищет совпадение по ключу в первой строке определенного диапазона и возвращает значение из указанной строки этого диапазона в совпавшем с ключом столбце.

    Синтаксис: =ГПР(ключ; диапазон; номер_строки; [интервальный_просмотр]).

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

    Функция СТРОКА

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

    Синтаксис: =СТРОКА([ссылка]), где аргумент «ссылка» не является обязательным. Если он опущен, но возвращается номер текущей строки.

    =СТРОКА(D4) – результат 4.
    =СТРОКА() – функция вернет номер строки, в которой она расположена.

    Функция СТОЛБЕЦ

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

    Синтаксис: =СТОЛБЕЦ([ссылка]), где «ссылка» не обязательный аргумент. По умолчанию возвращается номер текущего столбца.

    =СТОЛБЕЦ(C4) – формула вернет значение 3.
    =СТОЛБЕЦ() – функция возвращает номер столбца, в котором расположена.

    Функция АДРЕС

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

    Синтаксис: =АДРЕС(строка; столбец; [тип_закрепления]; [стиль_ссылки]; [имя_листа]), где:

    • Строка – обязательный аргумент. Число, представляющая номер строки, для которой необходимо вернуть адрес;
    • Столбец – обязательный аргумент. Число, представляющее номер столбца целевой ячейки.
    • тип_закрепления – необязательный аргумент. Число от 1 до 4, обозначающее закрепление индексов ссылки:
      • 1 – значение по умолчанию, когда закреплены все индексы;
      • 2 – закрепление индекса строки;
      • 3 – закрепление индекса столбца;
      • 4 – адрес без закреплений.
      • ИСТИНА – формат ссылок «A1»;
      • ЛОЖЬ – формат ссылок «R1C1».

      =АДРЕС(1;1) – возвращает $A$1.
      =АДРЕС(1;1;4) – возвращает A1.
      =АДРЕС(1;1;4;ЛОЖЬ) – результат R[1]C[1].
      =АДРЕС(1;1;4;ЛОЖЬ;»Лист1″) – результат выполнения функции Лист1!R[1]C[1].

      Функция ДВССЫЛ

      Преобразует адрес ссылки, заданный текстовой строкой, в ссылку на данный адрес.

      Синтаксис: =ДВССЫЛ(адрес_ссылки; [стиль_ссылки]), где

      • адрес_ссылки – обязательный аргумент. Строка, представляющая адрес ссылки на ячейку или диапазон. Например, «C3», «R3C3» или «D8:D9».
      • стиль_ссылки – необязательный аргумент. Логическое значение, определяющее стиль ссылки:
        • ИСТИНА – стиль A1. Является значением по умолчанию;
        • ЛОЖЬ – стиль R1C1.

        =ДВССЫЛ(«a3») – возвращает ссылку на ячейку A3.
        =ДВССЫЛ(«r3c3») – вернет ошибку #ССЫЛКА!, так как текст для ссылки в формате R1C1, а второй аргумент имеет значение по умолчанию.
        =ДВССЫЛ(«r3c3»; ЛОЖЬ) – возвращает ссылку на ячейку C3.
        =ДВССЫЛ(АДРЕС(СТРОКА(C3);СТОЛБЕЦ(C3))) – функция вернет аналогичный предыдущему примеру результат.
        Вложение функции ДВССЫЛ со ссылкой на диапазон:

        Функция ЧСТРОК

        Возвращает число строк в указанном диапазоне или массиве.

        Синтаксис: =ЧСТРОК(ссылка), где «ссылка» обязательный аргумент, являющийся ссылкой на ячейку, диапазон либо массив.

        Пример использования:
        =ЧСТРОК(D1:D8) – функция возвращает результат 8.
        =ЧСТРОК(<1:2:3:4:5>) – функция определят, что в массиве 5 строк.

        Функция ЧИСЛСТОЛБ

        Возвращает число столбцов в указанном диапазоне или массиве.
        Синтаксис: =ЧИСЛСТОЛБ(ссылка), где «ссылка» обязательный аргумент, являющийся ссылкой на ячейку, диапазон либо массив.
        Пример использования:
        =ЧИСЛСТОЛБ(A5:D5) – результат функции 4.
        =ЧИСЛСТОЛБ(<1;2;3;4;5>) – функция определят, что в массиве 5 столбцов.

        Функция СМЕЩ

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

        Синтаксис: =СМЕЩ(ссылка; смещ_по_строкам; смещ_по_столбцам; [высота]; [ширина]), где

          ссылка – обязательный аргумент.

        Если в результате смещения диапазон стал выходить на пределы листа, то функция возвращает ошибку #ССЫЛКА!.

        Для примера будем использовать вложение функции СМЕЩ в функцию СУММ.
        Изначально ссылаемся на диапазон из 10 строк и 1 столбца, где все ячейки имеют значение 2. Таким образом получает результат выполнения формулы – 20.

        Теперь сместим диапазон на один столбец влево, т.е. на -1.

        Снова изменим ссылку, а именно расширим до 4 столбцов. После этого возвращаемая ссылка станет A3:D12. Результат на изображении.

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

        Возвращает позицию элемента, заданного по значению, в диапазоне либо массиве.

        Синтаксис: =ПОИСКПОЗ(искомое_значение; массив; [тип_сопоставления]), где:

        • искомое_значение – обязательный аргумент. Значение элемента, который необходимо найти в массиве.
        • Массив – обязательный аргумент. Одномерный диапазон либо массив для поиска элемента.
        • тип_сопоставления – необязательный аргумент. Число 1, 0 или -1, определяющее способ поиска элемента:
          • 1 – значение по умолчанию. Если совпадений не найдено, то возвращается позиция ближайшего меньшего по значению к искомому элементу. Массив или диапазон должен быть отсортирован от меньшего к большему или от А до Я.
          • 0 – функция ищет точное совпадение. Если не найдено, то возвращается ошибка #Н/Д.
          • -1 – Если совпадений не найдено, то возвращается позиция ближайшего большего по значению к искомому элементу. Массив или диапазон должен быть отсортирован по убыванию.

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

          При этом регистр не учитывается.
          =ПОИСКПОЗ(«е»; <«а»;»б»;»в»;»г»;»д»>; 1) – результат 5, т.к. элемента не найдено, поэтому возвращается ближайший меньший по значению элемент. Элементы массива записаны по возрастанию.
          =ПОИСКПОЗ(«е»; <«а»;»б»;»в»;»г»;»д»>; 0) – возвращается ошибка, т.к. элемент не найден, а тип сопоставления указан на точное совпадение.
          =ПОИСКПОЗ(«в»; <«д»;»г»;»в»;»б»;»а»>; -1) – результат 3.
          =ПОИСКПОЗ(«д»; <«а»;»б»;»в»;»г»;»д»>; -1) – элемент не найден, хотя присутствует в массиве. Функция возвращает неверный результат, так как последний аргумент принимает значение -1, а элементы НЕ расположены по убыванию.

          Для текстовых значений функция допускает использование подстановочных символов «*» и «?».

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