Макросы и программы для Excel в категории «Массивы»
Универсальные функции VBA для обработки одномерных и двумерных массивов, сравнения массивов и поиска в них
-
В данной статье показаны 2 способа быстрого поиска значений в двумерных массивах. Поскольку искомое значение может встретиться в нескольких строках обрабатываемого двумерного массива, оба способа получают на выходе отфильтрованный двумерный массив. Способы формирования отфильтрованных массивов - разные: первый способ использует функцию ArrAutofilterEx второй способ - функцию ...
-
Сортировка двумерного массива по нулевому столбцу Public Function CoolSort(SourceArr As Variant) As Variant ' сортировка двумерного массива по нулевому столбцу Dim Check As Boolean, iCount As Integer, jCount As Integer, nCount As Integer ReDim tmpArr(UBound(SourceArr, 2)) As Variant Do Until Check Check = True For iCount = LBound(SourceArr, 1) To UBound(SourceArr,...
-
К примеру, есть у вас несколько десятков (или сотен) текстовых файлов с подобным содержимым: (количество файлов, и количество строк данных в каждом файле не ограничено) 1c04;1J0-698-151-G;1 комплект тормозных накладок;1J0698151G;1J0698151G;5;1 1c04;1H0698151A;Тормозные колодки;1H0698151A;1H0698151A;1;1 1c04;1K0-698-151-B;Тормозные колодки;1K0698151B;1K0698151B;2;1 А надо из всего этого...
-
Надстройка предназначена для облегчения импорта данных в Excel из текстовых файлов с разделителями (например, из CSV) Пока во вложении - обычный файл Excel с нужными макросами, надстройку выложу позже В надстройке применена функция получения ссылки на заданную пользователем ячейку. Основой для надстройки послужила функция загрузки CSV файла в двумерный массив Использовать функции...
-
Надстройка с несколькими пользовательскими функциями вычислительной математики. Надстройка предназначена для тех пользователей, кто хочет: интерполировать табличные данные; находить корни уравнения; вычислять производные; численно интегрировать; аппроксимировать экспериментальные данные Внимание: 21 марта 2020 года выложена новая версия надстройки. Во вложении к статье - надстройка...
-
Функция TextFile2Array предназначена для преобразования файла CSV в двумерный массив Очень часто при работе с текстовыми файлами (и, в частности, с файлами CSV) приходится их загружать на лист Excel, предварительно производя фильтрацию данных в этом файле. Чтобы упростить весь процесс - от выбора файла CSV в диалоговом окне, до разбиения загруженного из файла текста в двумерный массив, и была...
-
Функция Array2XML формирует из исходной таблицы объект типа DOMDocument, который можно выгрузить в XML-файл одной строкой кода (метод Save) Sub XMLExport() Dim Заголовок As Range, Данные As Range Set Заголовок = Range("a1:f1") Set Данные = Range([A2], Range("A" & Rows.Count).End(xlUp)).Resize(, Заголовок.Columns.Count) arrHeaders = Application....
-
Если у вас есть таблица Excel, в которой, в определённом столбце, через запятую перечислены значения (или диапазоны значений), а вы хотите получить аналогичную таблицу, но чтобы в каждой строке было только одно значение, - то вам на помощь придёт функция ExtendArray. (пример работы функции можно увидеть на прикреплённом изображении) В своей работе ExtendArray использует функцию...
-
Функция предназначена для получения двумерного массива данных из видимых строк листа Excel. Например, нас интересует массив, начиная со второй строки, шириной 5 столбцов. Если все строки на листе - видимые, то все делается просто, одной строкой кода: arr = Range(Range("a2"), Range("a" & Rows.Count).End(xlUp)).Resize(, 5).Value А если на листе включен...
-
Sub ПримерИспользования() ' задаём полный путь к обрабатываемому файлу ПутьКФайлу$ = ThisWorkbook.Path & "\" & "Contract.XLS" Application.ScreenUpdating = False ' отключаем обновление экрана arr = LoadArrayFromWorkbook(ПутьКФайлу$, "a2", 30) ' загружаем данные ' выводим результаты в окно Immediate Debug.Print "...
-
Функция RandomRowsFromArray предназначена для выборки из двумерного массива случайных строк. К примеру, исходный массив (таблица) имеет размер 1000*20 (1000 строк, и 20 столбцов) Нам требуется выбрать из этой таблицы, случайным образом, 50 строк (получив, таким образом, таблицу размерами 50*20) Кроме того, необходимо, чтобы при каждом новом запуске макроса, в выборку попадали новые строки....
-
Функция принимает в качестве параметра arr двумерный массив, и разбивает его на несколько массивов, группируя строки по значению столбца SplitColumn& Сколько есть уникальных значений в столбце SplitColumn&, удовлетворяющих маске Mask$, - столько двумерных массивов будет возвращено функцией в виде коллекции Например, если есть исходный массив размерами 100*5, в котором во втором столбце...
-
Программа служит для преобразования тиковых значений котировок в свечи необходимого периода Исходный файл в формате .csv получается в результате выгрузки (экспорта) котировок с сайта www.finam.ru (Фьючерсы ФОРТС), и содержит большое количество строк (записей) - около 1 миллиона за 1 день. В исходном файле CSV имеется таблица со следующими столбцами: <TICKER> <PER> <DATE...
-
Программа предназначена для анализа ожидаемой доходности различных портфелей (рассматриваются всевозможные комбинации проектов) При помощи формул типа =СЛЧИС() на листах с характеристиками проектов генерируются различные комбинации исходных значений, на основании которых формулами рассчитывается доходность проекта. Методом Монте-Карло формируются массивы значений (по одному массиву для...
-
Программа предназначена для еженедельного формирования плана проверок торговых точек. Функции программы: выборка из базы данных заданного числа случайных торговых точек, в соответствии с настройками для каждой группы формирование таблицы (файл Excel) со списком выбранных объектов по шаблону рассылка созданного файла (в архиве ZIP) по заданному списку адресов электронной...
-
Функция предназначена для сохранения двумерного массива в файл формата XLS Sub SaveArray(ByVal Arr, ByVal ColumnNames, ByVal DocName$) ' Получает двумерный массив Arr с данными, и массив заголовков столбцов ColumnNames. ' Создаёт новый файл в подпапке СФОРМИРОВАННЫЕ ДОКУМЕНТЫ с именем DocName$ On Error Resume Next ' создаём подпапку (там же, где текущий файл Excel)...