Как преобразовать массив в столбец

Как преобразовать массив в столбец

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

Если необходимо преобразовать массив в столбец или строку (рис. 1), можно воспользоваться функцией Индекс.

Для удобства изучения примера откройте файл
Excel. Пример. Преобразование массива в столбец или строку

Рис. 1. Массив преобразован в столбец

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

Рис. 2. Пример «работы» функции ИНДЕКС

где A1:G16 – область массива

3 – номер строки массива

5 – номер столбца массива

то есть, индекс задал ячейку Е3

Чтобы легче понять формулу ИНДЕКС, преобразующую массив в столбец, выполним последовательные шаги (см. также лист «Рис. 3» Excel-файла):

Функция СТРОКА() возвращает номер строки той ячейки, в которой она забита (рис. 3); столбец I; Функция ЧИСЛСТОЛБ($A$1:$G$16) возвращает число столбцов в массиве; Функция ОКРВВЕРХ(СТРОКА()/ЧИСЛСТОЛБ($A$1:$G$16);1) возвращает номер столбца, ячейки, значение который мы хотим получить, столбец J; дает значение 1 для первых 7 значений (в общем случае, для первых N значений, где N – число столбцов в массиве); Функция ОСТАТ(СТРОКА();ЧИСЛСТОЛБ($A$1:$G$16)+0,0001) возвращает номер от 1 до 7 (в общем случае, от 1 до N, где N – число столбцов в массиве); получается, что идет перебор индексов: сначала первый индекс равен 1 (строка), а второй изменяется от 1 до 7 (столбец); далее строка = 2, а столбец перебирается от 1 до 7 и т. д., пока не пройдемся по всем строкам массива; +0,0001 – это маленькая хитрость; без этой добавочки при делении 7/7 будет получаться 0 в остатке, а нам нужно получить 7; эта формула расположена в столбце K; Функция ИНДЕКС($A$1:$G$16;ОКРВВЕРХ(СТРОКА()/ЧИСЛСТОЛБ($A$1:$G$16);1); ОКРВВЕРХ(ОСТАТ(СТРОКА();ЧИСЛСТОЛБ($A$1:$G$16)+0,0001);1)) возвращает значение из ячейки; см. столбец L Массив, где ищется значение, выделен желтым Номер строки внутри массива – зеленым Номер столбца внутри массива – серым

В Excel-файле представлено преобразование массива в столбец и строку. При этом приведено два варианта преобразования:

Читайте также:  Команды для донт старв

Комментарии

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

Кстати, как вариант, вместо
ColumnsCount = UBound(Split(tmpArr1(0), ColumnsSeparator$)) + 1

прописать
For i = LBound(tmpArr1) To UBound(tmpArr1)
ColumnsCount = IIf(UBound(Split(tmpArr1(i), ColumnsSeparator)) + 1 > ColumnsCount, UBound(Split(tmpArr1(i), ColumnsSeparator)) + 1, ColumnsCount)
Next i

тогда в случае следующей строки

123 123
321 321 321

кол-во столбцов будет = 3, а не 2, как в предыдущем случае, что вроде как правильней

А зачем строка
If txt Like "*" & RowsSeparator$ Then txt = Left(txt, Len(txt) — Len(RowsSeparator$))

Вам помогут следующие функции и макросы:

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

Из приведённой вами текстовой строки, функция возвращает одномерный массив из 4 элементов:

0 = 4356|Болт обработанный||2080
1 = 7652|Болт крашенный||20100
2 = 6743|Болт конический||20120
3 = 98711|Болт скошенный||30150

Учусь! Никакого проекта нет, все только в планах. Думаю с какой стороны подойти.
На данный момент интересует вот чно.
В ячейке (B1. Bn+1) строка типа "Болт (обработанный 2080 4356, крашенный 20100 7652, конический 20120 6743, скошенный 30150 98711)"
Надо разбить в разные ячейки:
4356|Болт обработанный||2080
7652|Болт крашенный||20100
и т.д.

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

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

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

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

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

Читайте также:  Что означают цвета в логотипе майкрософт

Виды массивов функций Excel

Массив – данные, объединенные в группу. В данном случае группой является массив функций в Excel. Любую таблицу, которую мы составим и заполним в Excel, можно назвать массивом. Пример:

В зависимости от расположения элементов различают массивы:

  • одномерные (данные находятся в ОДНОЙ строке или в ОДНОМ столбце);
  • двумерные (НЕСКОЛЬКО строк и столбцов, матрица).

Одномерные массивы бывают:

  • горизонтальными (данные – в строке);
  • вертикальными (данные – в столбце).

Примечание. Двумерные массивы Excel могут занимать сразу несколько листов (это сотни и тысячи данных).

Формула массива – позволяет обработать данные из этого массива. Она может возвращать одно значение либо давать в результате массив (набор) значений.

С помощью формул массива реально:

  • подсчитать количество знаков в определенном диапазоне;
  • суммировать только те числа, которые соответствуют заданному условию;
  • суммировать все n-ные значения в определенном диапазоне.

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

Синтаксис формулы массива

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

  1. Выделяем диапазон Е3:Е8.
  2. В строку формул вводим следующую формулу: =C3:C8*D3:D8.
  3. Нажимаем одновременно клавиши: Ctrl + Shift + Enter. Промежуточные итоги посчитаны:

Формула после нажатия Ctrl + Shift + Enter оказалась в фигурных скобках. Она подставилась автоматически в каждую ячейку выделенного диапазона.

Если попытаться изменить данные в какой-либо ячейке столбца «К оплате» — ничего не выйдет. Формула в массиве защищает значения диапазона от изменений. На экране появляется соответствующая запись:

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

  1. Выделяем ячейку Е9 (напротив «Итого»).
  2. Вводим формулу вида: =СУММ(C3:C8*D3:D8).
  3. Нажимаем сочетание клавиш: Ctrl + Shift + Enter. Результат:
Читайте также:  Как включить тачпад на ноутбуке dell

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

Аргументы для функции – одномерные массивы. Формула просматривает каждый из них по отдельности, совершает заданные пользователем операции и генерирует единый результат.

Рассмотрим ее синтаксис:

Функции работы с массивами Excel

Предположим, в следующем месяце планируется увеличение коммунальных платежей на 10%. Если мы введем обычную формулу для итога =СУММ((C3:C8*D3:D8)+10%), то вряд ли получим ожидаемый результат. Нам нужно, чтобы каждый аргумент увеличился на 10%. Чтобы программа поняла это, мы используем функцию как массив.

  1. Посмотрим, как работает оператор «И» в функции массива . Нам нужно узнать, сколько мы платим за воду, горячую и холодную. Функция: . Итого – 346 руб.
  2. Функция «Сортировки» в формуле массива. Отсортируем суммы к оплате в порядке возрастания. Для списка отсортированных данных создадим диапазон. Выделим его. В строке формул вводим . Жмем сочетание Ctrl + Shift + Enter.
  3. Транспонированная матрица. Специальная функция Excel для работы с двумерными массивами. Функция «ТРАНСП» возвращает сразу несколько значений. Преобразует горизонтальную матрицу в вертикальную и наоборот. Выделяем диапазон ячеек, где количество строк = числу столбцов в таблице с исходными данными. А количество столбцов = числу строк в исходном массиве. Вводим формулу: . Получается «перевернутый» массив данных.
  4. Поиск среднего значения без учета нулей. Если мы воспользуемся стандартной функцией «СРЗНАЧ», то получим в результате «0». И это будет правильно. Поэтому вставляем в формулу дополнительное условие: 0;A1:A8))’ >. Получаем:

Распространенная ошибка при работе с массивами функций – НЕ нажатие кодового сочетания «Ctrl + Shift + Enter» (никогда не забывайте эту комбинацию клавиш). Это самое главное, что нужно запомнить при обработке больших объемов информации. Правильно введенная функция выполняет сложнейшие задачи.

Ссылка на основную публикацию
Как поставить паузу в финале
11) Команды быстрого набора Чтобы создать аккорд , поместите курсор на одной вертикали с нотой на высоте, где надо поставить...
Как полностью очистить флешку от данных
Как очистить флешку Как удалить следы от флешек Как очистить флешку от вирусов Зайдите в «Мой компьютер», затем на съемный...
Как поменять батарейку в водонепроницаемых часах
Забавно отметить, но до изобретения в 1969 году первых наручных кварцевых часов, которые работают исключительно от батарейки или аккумулятора, этот...
Как посчитать абсолютное и относительное отклонение
Абсолютное отклонение – это разность между фактической и базовой величиной показателя. Абсолютные отклонения могут быть рассчитаны для любых количественных и...
Adblock detector