Как массив преобразовать в строку excel

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

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

Скачать статью в формате Word, примеры в формате Excel

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

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

=ИНДЕКС(A1:G16;3;5)

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

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

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

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

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

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

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

  • Сначала по строкам, затем по столбцам массива
  • Сначала по столбцам, затем по строкам массив

Желаю всем здравствовать.
Можно ли преобразовать выбранный диапазон (массив) значений в одну строку? То есть чтобы строки выстраивались одна за другой?
Вообще, идеальным вариантом была бы возможность иметь на выходе ОДНУ ячейку (видимо, текстовую), в которой собраны все значения из массива, разделенные только пробелами… Причем количество заполненных ячеек в массиве — не постоянное. Такие дела.

В файле условная таблица, просто заполненная числовыми значениями, которые на деле рассчитываются формулой в каждой ячейке, причем при невыполнении некоторого условия ячейка выглядит пустой, так что размер массива не постоянен. Максимальный размер, который может занять таблица 500 строк на 200 столбцов.
[p.s.]
Пока приходится обходить эту недостижимую функцию за три версты (вручную выделяются заполненные ячейки, копируются в текстовый редактор как текст, поиском-заменой заменяются символы переноса и табуляции на пробелы, после чего получается искомая строка с последовательностью значений) pray [/p.s.]

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

Иногда требуется изменить направление, в котором располагаются ячейки. Это можно сделать путем копирования и вставки и применения команды «Транспонировать». Но в этом случае образуются повторяющиеся данные. Чтобы такого не происходило, можно вместо этого ввести формулу с функцией ТРАНСП. Например, на следующем изображении показано, как расположить горизонтально ячейки с A1 по B4 с помощью формулы =ТРАНСП(A1:B4).

Исходные ячейки находятся выше, ячейки с функцией ТРАНСП — ниже

Примечание: Если у вас есть текущая версия Microsoft 365, вы можете ввести формулу в левую верхнюю ячейку диапазона вывода, а затем нажать ввод, чтобы подтвердить формулу как формулу динамического массива. Иначе формулу необходимо вводить с использованием прежней версии массива, выбрав диапазон вывода, введя формулу в левой верхней ячейке диапазона и нажав клавиши CTRL+SHIFT+ВВОД для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.

Шаг 1. Выделите пустые ячейки

Сначала выделите пустые ячейки. Их число должно совпадать с числом исходных ячеек, но располагаться они должны в другом направлении. Например, имеется 8 ячеек, расположенных по вертикали:

Ячейки в диапазоне A1:B4

Нам нужно выделить 8 ячеек по горизонтали:

Выделены ячейки A6:D7

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

Шаг 2. Введите =ТРАНСП(

Не снимая выделение с пустых ячеек, введите =ТРАНСП(

Лист Excel будет выглядеть так:

=ТРАНСП(

Обратите внимание на то, что восемь ячеек по-прежнему выделены даже несмотря на то, что мы начали вводить формулу.

Шаг 3. Введите исходный диапазон ячеек

Теперь введите диапазон ячеек, которые нужно транспоннять. В этом примере мы хотим транспоннять ячейки с A1 по B4. Поэтому формула для этого примера будет такой: =ТРАНСП(A1:B4) — но не нажимайте ввод! Просто остановите ввод и перейдите к следующему шагу.

Лист Excel будет выглядеть так:

=ТРАНСП(A1:B4)

Шаг 4. Нажмите клавиши CTRL+SHIFT+ВВОД

Теперь нажмите клавиши CTRL+SHIFT+ВВОД. Зачем это нужно? Дело в том, что функция ТРАНСП используется только в формулах массивов, которые завершаются именно так. Если говорить кратко, формула массива — это формула, которая применяется сразу к нескольким ячейкам. Так как в шаге 1 вы выделили более одной ячейки, формула будет применена к нескольким ячейкам. Результат после нажатия клавиш CTRL+SHIFT+ВВОД будет выглядеть так:

Результат формулы с ячейками A1:B4, транспонированными в ячейки A6:D7

Советы

  • Вводить диапазон вручную не обязательно. Введя =ТРАНСП(, вы можете выделить диапазон с помощью мыши. Простой щелкните первую ячейку диапазона и перетащите указатель к последней. Но не забывайте: по завершении нужно нажать клавиши CTRL+SHIFT+ВВОД, а не просто клавишу ВВОД.

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

  • Вы можете узнать больше о формулах массивов. Создайте формулу массива или ознакомьтесь с подробными рекомендациями и примерами.

Технические подробности

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

Синтаксис

ТРАНСП(массив)

Аргументы функции ТРАНСП описаны ниже.

  • Массив.    Обязательный аргумент. Массив (диапазон ячеек) на листе, который нужно транспонировать. Транспонирование массива заключается в том, что первая строка массива становится первым столбцом нового массива, вторая — вторым столбцом и т. д. Если вы не знаете, как ввести формулу массива, см. статью «Создание формулы массива».

См. также

Транспонирование (поворот) данных из строк в столбцы и наоборот

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

Поворот и выравнивание данных в ячейке

Использование формул массива: рекомендации и примеры

Нужна дополнительная помощь?

Для подобных случаев я использую UDF — «СцепитьМассив»

Код
Function JoinArr(arr, Optional del As String = ", ") As String 'объединить массив в единую строку
    Dim x
    For Each x In arr
        If x <> "" Then JoinArr = JoinArr & IIf(JoinArr = "", "", del) & x
    Next x
End Function

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

Код
=JoinArr({1:2:3:4:5:6:7:8:9:10:11};"")

или вариант использования вместо «СцепитьЕсли»

Код
=JoinArr(ЕСЛИ(A1:A32<>"";B1:B32;""))

На чтение 23 мин. Просмотров 18.6k.

VBA String Functions

Содержание

  1. Краткое руководство по текстовым функциям
  2. Введение
  3. Прочитайте это в первую очередь!
  4. Добавление строк
  5. Извлечение части строки
  6. Поиск в строке
  7. Удаление пробелов
  8. Длина строки
  9. Перевернуть текст
  10. Сравнение
  11. Сравнение строк с использованием сопоставления с шаблоном
  12. Заменить часть строки
  13. Преобразовать типы в строку (базовый)
  14. Преобразовать строку в число — CLng, CDbl, Val и т.д.
  15. Генерация строки элементов — функция строки
  16. Преобразовать регистр / юникод — StrConv, UCase, LCase
  17. Использование строк с массивами
  18. Форматирование строки
  19. Заключение

Краткое руководство по текстовым функциям

Текстовые операции Функции
Добавить две или более строки Format or «&»
Построить текст из массива Join
Сравнить StrComp or «=»
Сравнить — шаблон Like
Преобразовать в текст CStr, Str
Конвертировать текст в дату Просто: CDate 
Дополнительно: Format
Преобразовать текст в число Просто: CLng, CInt, CDbl, Val
Дополнительно: Format
Конвертировать в юникод, широкий, узкий StrConv
Преобразовать в верхний / нижний регистр StrConv, UCase, LCase
Извлечь часть текста Left, Right, Mid
Форматировать текст Format
Найти символы в тексте InStr, InStrRev
Генерация текста String
Получить длину строки Len
Удалить пробелы LTrim, RTrim, Trim
Заменить часть строки Replace
Перевернуть строку StrReverse
Разобрать строку в массив Split

Введение

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

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

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

Эта статья содержит подробное руководство по использованию строки в VBA. Он объясняет строки в простых терминах с понятными примерами кода. Изложение в статье поможет легко использовать ее в качестве краткого справочного руководства.

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

Прочитайте это в первую очередь!

Следующие два пункта очень важны при работе со строковыми функциями VBA.

Исходная строка не изменяется

Важно помнить, что строковые функции VBA не изменяют исходную строку. Они возвращают новую строку с изменениями, внесенными функцией. Если вы хотите изменить исходную строку, вы просто назначаете результат исходной строке. См. Раздел «Извлечение части строки» для примеров.

Как использовать Compare

Некоторые строковые функции, такие как StrComp (), Instr () и т.д. имеют необязательный параметр Compare. Он работает следующим образом:

vbTextCompare: верхний и нижний регистры считаются одинаковыми

vbBinaryCompare: верхний и нижний регистр считаются разными

Следующий код использует функцию сравнения строк StrComp () для демонстрации параметра Compare.

Sub Comp1()

    ' Печатает 0  : Строки совпадают
    Debug.Print StrComp("АБВ", "абв", vbTextCompare)
    ' Печатает -1 : Строки не совпадают
    Debug.Print StrComp("АБВ", "абв", vbBinaryCompare)

End Sub

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

  • Oпция Compare Text: делает vbTextCompare аргументом сравнения по умолчанию
Option Compare Text

Sub Comp2()
    ' Соответствие строк - использует vbCompareText в качестве 'аргумента сравнения
    Debug.Print StrComp("АБВ", "абв")
    Debug.Print StrComp("ГДЕ", "где")
End Sub
  • Опция Compare Binary: делает vbBinaryCompare аргументом сравнения по умолчанию.
Option Compare Binary

Sub Comp2()
    ' Строки не совпадают - использует vbCompareBinary в качестве 'аргумента сравнения
    Debug.Print StrComp("АБВ", "абв")
    Debug.Print StrComp("ГДЕ", "где")
End Sub

Если Option Compare не используется, то по умолчанию используется Option Compare Binary.

Теперь, когда вы понимаете эти два важных момента о строке, мы можем продолжить и посмотреть на строковые функции индивидуально.

Добавление строк

VBA String Functions - Smaller

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

Sub Dobavlenie()

    Debug.Print "АБВ" & "ГДЕ"
    Debug.Print "Иван" & " " & "Петров"
    Debug.Print "Длинный " & 22
    Debug.Print "Двойной " & 14.99
    Debug.Print "Дата " & #12/12/2015#

End Sub

В примере вы можете видеть, что различные типы, такие как даты и числа, автоматически преобразуются в строки. Вы можете увидеть оператор +, используемый для добавления строк. Разница в том, что этот оператор будет работать только со строковыми типами. Если вы попытаетесь использовать его с другим типом, вы получите ошибку.

 Это даст сообщение об ошибке: «Несоответствие типов»
    Debug.Print "Длинный " + 22

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

Извлечение части строки

Функции, обсуждаемые в этом разделе, полезны при базовом извлечении из строки. Для чего-то более сложного можете посмотреть раздел, как легко извлечь любую строку без использования VBA InStr.

Функция Параметры Описание Пример
Left строка, длина Вернуть
символы с
левой стороны
Left(«Иван
Петров»,4)
Right строка, длина Вернуть
символы с
правой
стороны
Right(«Иван
Петров»,5)
Mid строка, начало, длина Вернуть
символы из
середины
Mid(«Иван
Петров»,3,2)

Функции Left, Right и Mid используются для извлечения частей строки. Это очень простые в использовании функции. Left читает символы слева, Right справа и Mid от указанной вами начальной точки.

Sub IspLeftRightMid()

    Dim sCustomer As String
    sCustomer = "Иван Васильевич Петров"

    Debug.Print Left(sCustomer, 4)  '  Печатает: Иван
    Debug.Print Right(sCustomer, 6) '  Печатает: Петров

    Debug.Print Left(sCustomer, 15)  '  Печатает: Иван Васильевич
    Debug.Print Right(sCustomer, 17)  '  Печатает: Васильевич Петров

    Debug.Print Mid(sCustomer, 1, 4) ' Печатает: Иван
    Debug.Print Mid(sCustomer, 6, 10) ' Печатает: Васильевич
    Debug.Print Mid(sCustomer, 17, 6) ' Печатает: Петров

End Sub

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

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

Sub PrimerIspolzovaniyaLeft()

    Dim Fullname As String
    Fullname = "Иван Петров"

    Debug.Print "Имя: "; Left(Fullname, 4)
    ' Исходная строка не изменилась
    Debug.Print "Полное имя: "; Fullname

 End Sub

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

Sub IzmenenieStroki()

    Dim name As String
    name = "Иван Петров"

    ' Присвойте возвращаемую строку переменной имени
    name = Left(name, 4)

    Debug.Print "Имя: "; name

 End Sub

Поиск в строке

Функция Параметры Описание Пример
InStr Текст1,
текст2
Находит
положение
текста
InStr(«Иван
Петров»,»в»)
InStrRev Проверка
текста,
соответствие
текста
Находит
позицию
текста с конца
InStrRev(«Иван Петров»,»в»)

InStr и InStrRev — это функции VBA, используемые для поиска текста в тексте. Если текст поиска найден, возвращается позиция (с начала строки проверки) текста поиска. Когда текст поиска не найден, возвращается ноль. Если какой-либо текст имеет значение null, возвращается значение null.

InStr Описание параметров

InStr() Start[Необязат], String1, String2, Compare[Необязат]

  • Start [Необязательно — по умолчанию 1]: это число, указывающее начальную позицию поиска слева
  • String1: текст, в котором будем искать
  • String2: текст, который будем искать
  • Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.

Использование InStr и примеры

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

Sub PoiskTeksta()

    Dim name As String
    name = "Иван Петров"

    ' Возвращает 3 - позицию от первой 
    Debug.Print InStr(name, "а")
    ' Возвращает 10 - позиция первого "а", начиная с позиции 4
    Debug.Print InStr(4, name, "а")
    ' Возвращает 8
    Debug.Print InStr(name, "тр")
    ' Возвращает 6
    Debug.Print InStr(name, "Петров")
    ' Возвращает 0 - текст "ССС" не найдет
    Debug.Print InStr(name, "ССС")

End Sub

InStrRev Описание параметров

InStrRev() StringCheck, StringMatch, Start[Необязат], Compare[Необязат]

  • StringCheck: текст, в котором будем искать
  • StringMatch: Текст, который будем искать
  • Start [Необязательно — по умолчанию -1]: это число, указывающее начальную позицию поиска справа
  • Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.

Использование InStrRev и примеры

Функция InStrRev такая же, как InStr, за исключением того, что она ищет с конца строки. Важно отметить, что возвращаемая позиция является позицией с самого начала. Поэтому, если существует только один экземпляр элемента поиска, InStr () и InStrRev () будут возвращать одно и то же значение.

В следующем коде показаны некоторые примеры использования InStrRev.

Sub IspInstrRev()

    Dim name As String
    name = "Иван Петров"

    ' Обе возвращают 1 - позицию, только И
    Debug.Print InStr(name, "И")
    Debug.Print InStrRev(name, "И")

    ' Возвращает 11 - вторую в
    Debug.Print InStrRev(name, "в")
    ' Возвращает 3 - первую в с позиции 9
    Debug.Print InStrRev(name, "в", 9)

    ' Returns 1
    Debug.Print InStrRev(name, "Иван")

End Sub

Функции InStr и InStrRev полезны при работе с базовым поиском текста. Однако, если вы собираетесь использовать их для извлечения текста из строки, они могут усложнить задачу. Я написал о гораздо лучшем способе сделать это в своей статье Как легко извлечь любой текст без использования VBA InStr.

Удаление пробелов

Функция Параметры Описание Пример
LTrim Текст Убирает
пробелы слева
LTrim(» Иван «)
RTrim Текст Убирает
пробелы
справа
RTrim(» Иван «)
Trim Текст Убирает
пробелы слева и справа
Trim(» Иван «)

Функции Trim — это простые функции, которые удаляют пробелы в начале или конце строки.

Функции и примеры использования триммера Trim

  • LTrim удаляет пробелы слева от строки
  • RTrim удаляет пробелы справа от строки
  • Trim удаляет пробелы слева и справа от строки
Sub TrimStr()

    Dim name As String
    name = "  Иван Петров  "

    ' Печатает "Иван Петров  "
    Debug.Print LTrim(name)
    ' Печатает "  Иван Петров"
    Debug.Print RTrim(name)
    ' Печатает "Иван Петров"
    Debug.Print Trim(name)

End Sub

Длина строки

Функция Параметры Описание Пример
Len Текст Возвращает
длину строки
Len («Иван Петров»)

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

Sub IspLen()

    Dim name As String
    name = "Иван Петров"

    ' Печатает 11
    Debug.Print Len("Иван Петров")
    ' Печатает 3
    Debug.Print Len("АБВ")

    ' Печатает 4 с Long - это размер 4 байта
    Dim total As Long
    Debug.Print Len(total)

End Sub

Перевернуть текст

Функция Параметры Описание Пример
StrReverse Текст Перевернуть
текст
StrReverse
(«Иван
Петров»)

StrReverse — еще одна простая в использовании функция. Он просто возвращает данную строку с обратными символами.

Sub RevStr()

    Dim s As String
    s = "Иван Петров"
    ' Печатает: вортеП навИ
    Debug.Print StrReverse(s)

End Sub

Сравнение

Функция Параметры Описание Пример
StrComp Текст1, текст2 Сравнивает 2
текста
StrComp
(«Иван»,
«Иван»)

Функция StrComp используется для сравнения двух строк. Следующие подразделы описывают, как используется.

Описание параметров

StrComp()  String1, String2, Compare[Необязат]

  • String1: первая строка для сравнения
  • String2: вторая строка для сравнения
  • Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.

StrComp Возвращаемые значения

Возвращаемое значение Описание
0 Совпадение строк
-1 строка1 меньше строки2
1 строка1 больше строки2
Null если какая-либо строка равна нулю

Использование и примеры

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

Sub IspStrComp()

   ' Возвращает  0
   Debug.Print StrComp("АБВ", "АБВ", vbTextCompare)
   ' Возвращает 1
   Debug.Print StrComp("АБВГ", "АБВ", vbTextCompare)
   ' Возвращает -1
   Debug.Print StrComp("АБВ", "АБВГ", vbTextCompare)
   ' Returns Null
   Debug.Print StrComp(Null, "АБВГ", vbTextCompare)

End Sub

Сравнение строк с использованием операторов

Вы также можете использовать знак равенства для сравнения строк. Разница между сравнением equals и функцией StrComp:

  1. Знак равенства возвращает только true или false.
  2. Вы не можете указать параметр Compare, используя знак равенства — он использует настройку «Option Compare».  

Ниже приведены некоторые примеры использования equals для сравнения строк.

Option Compare Text

Sub CompareIspEquals()

    ' Возвращает true
    Debug.Print "АБВ" = "АБВ"
    ' Возвращает true, потому что «Сравнить текст» установлен выше
    Debug.Print "АБВ" = "абв"
    ' Возвращает false
    Debug.Print "АБВГ" = "АБВ"
    ' Возвращает false
    Debug.Print "АБВ" = "АБВГ"
    ' Возвращает null
    Debug.Print Null = "АБВГ"

End Sub

Сравнение строк с использованием сопоставления с шаблоном

Функция Параметры Описание Пример
Like Текст, шаблон проверяет, имеет
ли строка
заданный
шаблон
«abX» Like «??X»
«54abc5» Like «*abc#»
Знак Значение
? Любой одиночный символ
# Любая однозначная цифра (0-9)
* Ноль или более символов
[charlist] Любой символ в списке
[!charlist] Любой символ не в списке символов

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

Если строка соответствует шаблону, возвращаемое значение равно true, в противном случае — false.

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

Давайте посмотрим на базовый пример с использованием знаков. Возьмите следующую строку шаблона.

[abc][!def]?#X*

 Давайте посмотрим, как работает эта строка

[abc] — символ, который является или a, b или c
[! def] — символ, который не является d, e или f
? любой символ
# — любая цифра
X — символ X
* следуют ноль или более символов

 Поэтому следующая строка действительна
apY6X

а — один из символов a,b,c
p — не один из символов d, e или f
Y — любой символ
6 — это цифра
Х — это буква Х

В следующих примерах кода показаны результаты различных строк с этим шаблоном.

Sub Shabloni()

    ' ИСТИНА
    Debug.Print 1; "apY6X" Like "[abc][!def]?#X*"
    ' ИСТИНА - любая комбинация символов после x действительна
    Debug.Print 2; "apY6Xsf34FAD" Like "[abc][!def]?#X*"
    ' ЛОЖЬ - символ не из[abc]
    Debug.Print 3; "dpY6X" Like "[abc][!def]?#X*"
    ' ЛОЖЬ - 2-й символ e находится в [def]
    Debug.Print 4; "aeY6X" Like "[abc][!def]?#X*"
    ' ЛОЖЬ - A в позиции 4 не является цифрой
    Debug.Print 5; "apYAX" Like "[abc][!def]?#X*"
    ' ЛОЖЬ - символ в позиции 5 должен быть X
    Debug.Print 1; "apY6Z" Like "[abc][!def]?#X*"

End Sub

Реальный пример сопоставления с образцом

Чтобы увидеть реальный пример использования сопоставления с образцом, ознакомьтесь с Примером 3: Проверьте, допустимо ли имя файла.

Важное примечание о сопоставлении с образцом VBA

Оператор Like использует двоичное или текстовое сравнение на основе параметра Option Compare. Пожалуйста, смотрите раздел Сравнение для более подробной информации.

Заменить часть строки

Функция Параметры Описание Пример
Replace строка, найти, заменить,
начать,
считать,
сравнивать
Заменяет текст Replace
(«Ива»,»а»,»ан»)

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

Replace описание параметров

Replace()  Expression, Find, Replace, Start[Необязат], Count[Необязат], Compare[Необязат]

  • Expression: текст, в котором нужна замена символов
  • Find: текст для замены в строке выражения
  • Replace: строка для поиска замены текста поиска
  • Start [Необязательно — по умолчанию 1]: начальная позиция в строке
  • Count [Необязательно — по умолчанию -1]: количество замен. По умолчанию -1 означает все.
  • Compare как vbCompareMethod: см. Раздел «Сравнить» для получения более подробной информации.

Использование и примеры

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

Sub PrimeriReplace()

    ' Заменяет все знаки вопроса (?) на точку с запятой (;)
    Debug.Print Replace("A?B?C?D?E", "?", ";")
    ' Заменить Петров на Иванов
    Debug.Print Replace("Евгений Петров,Артем Петров", "Петров", "Иванов")
    ' Заменить AX на AB
    Debug.Print Replace("ACD AXC BAX", "AX", "AB")

End Sub

На выходе:

A;B;C;D;E
Евгений Иванов,Артем Иванов
ACD ABC BAB

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

Sub ReplaceCount()

    ' Заменяет только первый знак вопроса
    Debug.Print Replace("A?B?C?D?E", "?", ";", Count:=1)
    ' Заменяет первые три знака вопроса
    Debug.Print Replace("A?B?C?D?E", "?", ";", Count:=3)

End Sub

На выходе:

A;B?C?D?E
A;B;C;D?E

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

Sub ReplacePartial()

    ' Использовать оригинальную строку из позиции 4
    Debug.Print Replace("A?B?C?D?E", "?", ";", Start:=4)
    ' Используйте оригинальную строку из позиции 8
    Debug.Print Replace("AA?B?C?D?E", "?", ";", Start:=8)
    ' Элемент не заменен, но по-прежнему возвращаются только последние '2 символа
    Debug.Print Replace("ABCD", "X", "Y", Start:=3)

End Sub

На выходе:

;C;D;E
;E
CD

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

Sub ReplaceCase()

    ' Заменить только заглавные А
    Debug.Print Replace("AaAa", "A", "X", Compare:=vbBinaryCompare)
    ' Заменить все А
    Debug.Print Replace("AaAa", "A", "X", Compare:=vbTextCompare)

End Sub

На выходе:

XaXa
XXXX

Многократные замены

Если вы хотите заменить несколько значений в строке, вы можете вкладывать вызовы. В следующем коде мы хотим заменить X и Y на A и B соответственно.

Sub ReplaceMulti()

    Dim newString As String

    ' Заменить А на Х
    newString = Replace("ABCD ABDN", "A", "X")
    ' Теперь замените B на Y в новой строке
    newString = Replace(newString, "B", "Y")

    Debug.Print newString

End Sub

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

Sub ReplaceMultiNested()

    Dim newString As String

    ' Заменить A на X, а B на Y
    newString = Replace(Replace("ABCD ABDN", "A", "X"), "B", "Y")

    Debug.Print newString

End Sub

Результатом обоих этих Subs является:
XYCD XYDN

Преобразовать типы в строку (базовый)

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

Sub AutoConverts()

    Dim s As String
    ' Автоматически преобразует число в строку
    s = 12.99
    Debug.Print s

    ' Автоматически преобразует несколько чисел в строку
    s = "ABC" & 6 & 12.99
    Debug.Print s

    ' Автоматически преобразует двойную переменную в строку
    Dim d As Double, l As Long
    d = 19.99
    l = 55
    s = "Значения: " & d & " " & l
    Debug.Print s

End Sub

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

Явное преобразование

Функция Параметры Описание Пример
CStr выражение Преобразует
числовую
переменную
в строку
CStr («45.78»)
Str число Преобразует
числовую
переменную
в строку
Str («45.78»)

В некоторых случаях вы можете захотеть преобразовать элемент в строку без необходимости сначала помещать его в строковую переменную. В этом случае вы можете использовать функции Str или CStr. Оба принимают выражение как функцию, и это может быть любой тип, например long, double, data или boolean.

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

Sub IspStr()

    Dim coll As New Collection
    Dim c As Range

    ' Считать значения ячеек в коллекцию
    For Each c In Range("A1:A10")
        ' Используйте Str для преобразования значения ячейки в строку
        coll.Add Str(c)
    Next

    ' Распечатайте значения и тип коллекции
    Dim i As Variant
    For Each i In coll
        Debug.Print i, TypeName(i)
    Next

End Sub

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

Multi Region

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

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

Преобразовать строку в число — CLng, CDbl, Val и т.д.

Функция Возвращает Пример
CBool Boolean CBool(«True»), CBool(«0»)
CCur Currency CCur(«245.567»)
CDate Date CDate(«1/1/2019»)
CDbl Double CDbl(«245.567»)
CDec Decimal CDec(«245.567»)
CInt Integer CInt(«45»)
CLng Long Integer CLng(«45.78»)
CVar Variant CVar(«»)

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

Sub StrToNumeric()

    Dim l As Long, d As Double, c As Currency
    Dim s As String
    s = "45.923239"

    l = s
    d = s
    c = s

    Debug.Print "Long is "; l
    Debug.Print "Double is "; d
    Debug.Print "Currency is "; c

End Sub

Использование типов преобразования дает большую гибкость. Это означает, что вы можете определить тип во время выполнения. В следующем коде мы устанавливаем тип на основе аргумента sType, передаваемого в функцию PrintValue. Поскольку этот тип может быть прочитан из внешнего источника, такого как ячейка, мы можем установить тип во время выполнения. Если мы объявим переменную как Long, то при выполнении кода она всегда будет длинной.

Sub Test()
    ' Печатает  46
    PrintValue "45.56", "Long"
    ' Печатает 45.56
    PrintValue "45.56", ""
End Sub

Sub PrintValue(ByVal s As String, ByVal sType As String)

    Dim value

    ' Установите тип данных на основе строки типа
    If sType = "Long" Then
        value = CLng(s)
    Else
        value = CDbl(s)
    End If
    Debug.Print "Type is "; TypeName(value); value

End Sub

Если строка не является допустимым числом (т.е. Содержит символы, другие цифры), вы получаете ошибку «Несоответствие типов».

Sub InvalidNumber()

    Dim l As Long

    ' Даст ошибку несоответствия типов
    l = CLng("45A")

End Sub

Функция Val

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

Val преобразует первые встреченные числа. Как только он встречает буквы в строке, он останавливается. Если есть только буквы, то в качестве значения возвращается ноль. Следующий код показывает некоторые примеры использования Val

Sub IspVal()

    ' Печатает 45
    Debug.Print Val("45 Новая улица")

    ' Печатает 45
    Debug.Print Val("    45 Новая улица")

    ' Печатает 0
    Debug.Print Val("Новая улица 45")

    ' Печатает 12
    Debug.Print Val("12 f 34")

End Sub

Val имеет два недостатка

  1. Не мультирегиональный — Val не распознает международные версии чисел, такие как запятые вместо десятичных. Поэтому вы должны использовать вышеуказанные функции преобразования, когда ваше приложение будет использоваться в нескольких регионах.
  2. Преобразует недопустимые строки в ноль — в некоторых случаях это может быть нормально, но в большинстве случаев лучше, если неверная строка вызывает ошибку. Затем приложение осознает наличие проблемы и может действовать соответствующим образом. Функции преобразования, такие как CLng, вызовут ошибку, если строка содержит нечисловые символы.

Генерация строки элементов — функция строки

Функция Параметры Описание Пример
String число, символ Преобразует
числовую
переменную
в строку
String (5,»*»)

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

Sub IspString()

    ' Печатает: AAAAA
    Debug.Print String(5, "A")
    ' Печатает: >>>>>
    Debug.Print String(5, 62)
    ' Печатает: (((ABC)))
    Debug.Print String(3, "(") & "ABC" & String(3, ")")

End Sub

Преобразовать регистр / юникод — StrConv, UCase, LCase

Функция Параметры Описание Пример
StrConv строка,
преобразование, LCID
Преобразует
строку
StrConv(«abc»,vbUpperCase)

Если вы хотите преобразовать регистр строки в верхний или нижний регистр, вы можете использовать функции UCase и LCase для верхнего и нижнего соответственно. Вы также можете использовать функцию StrConv с аргументом vbUpperCase или vbLowerCase. В следующем коде показан пример использования этих трех функций.

Sub ConvCase()

    Dim s As String
    s = "У Мэри был маленький ягненок"

    ' верхний
    Debug.Print UCase(s)
    Debug.Print StrConv(s, vbUpperCase)

    ' нижний
    Debug.Print LCase(s)
    Debug.Print StrConv(s, vbLowerCase)

    ' Устанавливает первую букву каждого слова в верхний регистр
    Debug.Print StrConv(s, vbProperCase)

End Sub

На выходе: 

У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК
У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК
у мэри был маленький ягненок
у мэри был маленький ягненок
У Мэри Был Маленький Ягненок

Другие преобразования

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

Постоянные Преобразует Значение
vbUpperCase 1 в верхний регистр
vbLowerCase 2 в нижнем регистре
vbProperCase 3 первая буква
каждого слова в
верхнем регистре
vbWide* 4 от узкого к
широкому
vbNarrow* 8 от широкого к
узкому
vbKatakana** 16 из Хираганы в
Катакану
vbHiragana 32 из Катаканы в
Хирагану
vbUnicode 64 в юникод
vbFromUnicode 128 из юникода

Использование строк с массивами

Функция Параметры Описание Пример
Split выражение,
разделитель,
ограничить,
сравнить
Разбирает
разделенную
строку в
массив
arr = Split(«A;B;C»,»;»)
Join исходный
массив,
разделитель
Преобразует
одномерный
массив в
строку
s = Join(Arr, «;»)

Строка в массив с использованием Split

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

Sub StrToArr()

    Dim arr() As String
    ' Разобрать строку в массив
    arr = Split("Иван,Анна,Павел,София", ",")

    Dim name As Variant
    For Each name In arr
        Debug.Print name
    Next

End Sub

На выходе:

Иван
Анна
Павел
София

Если вы хотите увидеть некоторые реальные примеры использования Split, вы найдете их в статье Как легко извлечь любую строку без использования VBA InStr.

Массив в строку, используя Join

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

Sub ArrToStr()

    Dim Arr(0 To 3) As String
    Arr(0) = "Иван"
    Arr(1) = "Анна"
    Arr(2) = "Павел"
    Arr(3) = "София"

    ' Построить строку из массива
    Dim sNames As String
    sNames = Join(Arr, ",")

    Debug.Print sNames

End Sub

На выходе:

Иван, Анна, Павел, София

Форматирование строки

Функция Параметры Описание Пример
Format выражение,
формат,
firstdayofweek,
firstweekofyear
Форматирует
строку
Format(0.5, «0.00%»)

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

Sub FormatDate()

    Dim s As String
    s = "31/12/2019 10:15:45"

    ' Печатает: 31 12 19
    Debug.Print Format(s, "DD MM YY")
    ' Печатает: Thu 31 Dec 2019
    Debug.Print Format(s, "DDD DD MMM YYYY")
    ' Печатает: Thursday 31 December 2019
    Debug.Print Format(s, "DDDD DD MMMM YYYY")
    ' Печатает: 10:15
    Debug.Print Format(s, "HH:MM")
    ' Печатает: 10:15:45 AM
    Debug.Print Format(s, "HH:MM:SS AM/PM")

End Sub

В следующих примерах представлены некоторые распространенные способы форматирования чисел.

Sub FormatNumbers()

    ' Печатает: 50.00%
    Debug.Print Format(0.5, "0.00%")
    ' Печатает: 023.45
    Debug.Print Format(23.45, "00#.00")
    ' Печатает: 23,000
    Debug.Print Format(23000, "##,000")
    ' Печатает: 023,000
    Debug.Print Format(23000, "0##,000")
    ' Печатает: $23.99
    Debug.Print Format(23.99, "$#0.00")

End Sub

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

Полезный совет по использованию формата

Быстрый способ выяснить используемое форматирование — использовать форматирование ячеек на листе Excel. Например, добавьте число в ячейку. Затем щелкните правой кнопкой мыши и отформатируйте ячейку так, как вам нужно. Если вы довольны форматом, выберите «Пользовательский» в списке категорий слева. При выборе этого вы можете увидеть строку формата в текстовом поле типа. Это формат строки, который вы можете использовать в VBA.

VBA Format Function

Заключение

Практически в любом типе программирования вы потратите много времени на манипулирование строками. В этой статье рассматриваются различные способы использования строк в VBA.

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

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

Наблюдения и советы этой статьи мы подготовили на основании опыта команды МАССИВТОТЕКСТ Функция преобразует массив или диапазон в текстовую строку.

arraytotext-функция 1


Синтаксис

=ARRAYTOTEXT(array,[format])


аргументы

  • массив (обязательно): массив, возвращаемый в виде текстовой строки.
  • Формат (необязательно): формат возвращаемой текстовой строки. Это либо 0 (по умолчанию), либо 1.
    Если это 0 or опущен, формат результата будет кратким и легко читаемым. Возвращаемый текст будет таким же, как текст, отображаемый в ячейке, к которой применено общее форматирование.
    Если это 1, формат результата будет строгим, включая управляющие символы и разделители строк. Текстовая строка будет возвращена в фигурных скобках, которые можно использовать непосредственно в строке формул Excel. Текстовые значения будут заключены в двойные кавычки («»), а логические значения, числа и значения ошибок — нет. Строки разделяются точкой с запятой (;), а столбцы — запятыми (,).

Возвращаемое значение

Функция МАССИВТОТЕКСТ возвращает текстовая строка.


Примечания к функциям

  1. Функция МАССИВТОТЕКСТ впервые появилась в Excel и доступна только в Excel для Microsoft 365 и Excel в Интернете.
  2. Функция МАССИВТОТЕКСТ удалит числовое форматирование, примененное ко всем ячейкам, содержащим числовые значения.
  3. Наблюдения и советы этой статьи мы подготовили на основании опыта команды #СТОИМОСТЬ! значение ошибки возникает, если формат не равен 0 или 1.

Пример

Как показано на снимке экрана ниже, в списке есть ряд текстов. Чтобы преобразовать их в текстовую строку, сделайте следующее.

1. Чтобы получить текстовую строку в лаконичный формат, пожалуйста, скопируйте приведенную ниже формулу в ячейку E5, затем нажмите кнопку Enter ключ для получения результата.

=МАССИВТОТЕКСТ(B5: C7)

arraytotext-функция 2

2. Чтобы получить текстовую строку в строгий формат, пожалуйста, скопируйте приведенную ниже формулу в ячейку E6, затем нажмите Enter ключ для получения результата.

arraytotext-функция 3

Примечание:Аргумент формата в первой приведенной выше формуле опущен. Мы также можем ввести формат, как показано в приведенной ниже формуле:

=МАССИВТОТЕКСТ(B5: C7,0)

Относительные функции:

  • Excel EVEN Функция
    Функция EVEN округляет числа от нуля до ближайшего четного целого числа.

  • Excel EXP Функция
    Функция EXP возвращает результат возведения константы e в энную степень.

Комментарии (0)


Оценок пока нет. Оцените первым!

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

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

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

Скачать статью в формате Word, примеры в формате Excel

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

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

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

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

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

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

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

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

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

  • Сначала по строкам, затем по столбцам массива
  • Сначала по столбцам, затем по строкам массив

Как преобразовать в excel столбец в строку?

17.10.2013 Григорий Цапко Полезные советы

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

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

Первый способ – использование специальной вставки.

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

Данные из столбца в excel будут преобразованы (транспонированы) в строку.

Второй способ – использование функции ТРАНСП.

Функция ТРАНСП преобразует вертикальный диапазон ячеек (столбец) в горизонтальный (строку).

Функция ТРАНСП имеет очень простой синтаксис:

=ТРАНСП(массив), где массив – преобразуемый из столбца в строку массив данных.

Чтобы транспонировать данные в excel из столбца в строку, при помощи этой функции необходимо:

1) Выделить горизонтальный диапазон: внимание! – с количеством ячеек соответствующий количеству ячеек в вертикальном диапазоне.

2) В первую ячейку горизонтального диапазона ввести формулу =ТРАНСП(массив), где массив – это вертикальный диапазон ячеек.

3) Нажать комбинацию клавиш Ctrl + Shift + Enter. Формула будет введена как формула массива в фигурных скобках

Какой способ выбрать при преобразовании в excel столбца в строку?

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

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

Как вы правильно догадались, чтобы преобразовать данные в excel из строки в столбец нужно проделать аналогичные операции, что и при преобразовании столбца в строку. Можно воспользоваться как специальной вставкой, так и функцией ТРАНСП.

Транспонирование данных из строк в столбцы и наоборот

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

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

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

Примечание: Если данные хранятся в таблице Excel, функция Транспонирование будет недоступна. Можно сначала преобразовать таблицу в диапазон или воспользоваться функцией ТРАНСП, чтобы повернуть строки и столбцы.

Вот как это сделать:

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

Примечание: Убедитесь, что вы хотите скопировать данные для этого, так как при использовании команды Вырезать или CTRL + X не работает.

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

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

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

Советы по транспонированию данных

Если данные содержат формулы, Excel автоматически обновит их в соответствии с новым расположением. Проверка использования абсолютных ссылок в формулах (в противном случае можно переключаться между относительными, абсолютными и смешанными ссылками перед поворотом данных.

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

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

Вот как можно транспонировать содержимое ячейки:

Копирование диапазона ячеек.

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

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Превращение строк в столбцы и обратно

Постановка задачи

Хотим, упрощенно говоря, повернуть таблицу на бок, т.е. то, что располагалось в строке — пустить по столбцу и наоборот:

Способ 1. Специальная вставка

Выделяем и копируем исходную таблицу (правой кнопкой мыши — Копировать). Затем щелкаем правой по пустой ячейке, куда хотим поместить повернутую таблицу и выбираем из контекстного меню команду Специальная вставка (Paste Special) . В открывшемся диалоговом окне ставим галочку Транспонировать (Transpose) и жмем ОК.

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

Плюсы : в транспонированной таблице сохраняется исходное форматирование ячеек.

Способ 2. Функция ТРАНСП

Выделяем нужное количество пустых ячеек (т.е. если, например, исходная таблица была из 3 строк и 5 столбцов, то выделить обязательно нужно диапазон из 5 строк и 3 столбцов) и вводим в первую ячейку функцию ТРАНСП (TRANSPOSE) из категории Ссылки и массивы (Lookup and Reference):

После ввода функции необходимо нажать не Enter, а Ctrl+Shift+Enter, чтобы ввести ее сразу во все выделенные ячейки как формулу массива . Если раньше не сталкивались с формулами массивов, то советую почитать тут — это весьма экзотический, но очень мощный инструмент в Excel.

Плюсы : между таблицами сохраняется связь, т.е. изменения в первой таблице тут же отражаются во второй.

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

Способ 3. Формируем адрес сами

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

  • Функция АДРЕС(номер_строки; номер_столбца) — выдает адрес ячейки по номеру строки и столбца на листе, т.е. АДРЕС(2;3) выдаст, например, ссылку на ячейку C2.
  • Функция ДВССЫЛ(ссылка_в_виде_текста) — преобразует текстовую строку, например, «F3» в настоящую ссылку на ячейку F3.
  • Функции СТРОКА(ячейка) и СТОЛБЕЦ(ячейка) — выдают номер строки и столбца для заданной ячейки, например =СТРОКА(F1) выдаст 1, а =СТОЛБЕЦ(А3) выдаст 3.

Теперь соединяем эти функции, чтобы получить нужную нам ссылку, т.е. вводим в любую свободную ячейку вот такую формулу:

в английской версии Excel это будет =INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))

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

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

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

Минусы : форматирование не сохраняется, но его можно легко воспроизвести Специальной вставкой (вставить только Формат с флажком Транспонировать

Excel: перенос данных из столбцов в строки и наоборот

Решение одним словом: транспонирование (transpose). Дальше ищущий может гуглить и найти данную статью.

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

  1. Специальная вставка

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

Ставим галочку транспонировать. При использовании такого транспонирования «слетают» все формулы, все связи между таблицами. Поэтому, скорее всего нам также понадобится перенести только значения (или значения и форматы) чисел.

Из спорных преимуществ: сохранится все оформление ячеек, что требуется не всегда. Но главный недостаток способа – довольно трудоемкий процесс. Если строк и столбцов больше 100? Сто раз переносить данные построчно?

  1. Используем формулу

Гораздо более изящное решение.

Функция АДРЕС(номер_строки; номер_столбца) отдает ссылку (адрес) ячейки по 2 числам, где первое — номер строки, второе — номер столбца. Т.е. запись =АДРЕС(1;1) вернет нам ссылку на ячейку А1.

С помощью функций СТРОКА(ячейка) и СТОЛБЕЦ(ячейка) меняем порядок выдачи у функции АДРЕС — не (строка, столбец), а (столбец, строка).

В текущем виде формула =АДРЕС(СТОЛБЕЦ(A1);СТРОКА(A1)) вернет текст $A$1, надо преобразовать результат в ссылку, обернув все выражение в функцию ДВССЫЛ(ссылка_в_виде_текста).

В английском Excel:

Применив формулу для ячейки А9 (в примере на картинке), растягиваем ее на остальные. Результат:

И сразу можно увидеть 2 небольших минуса этого способа:

  • Пустые ячейки заполняются нулями, правим вручную;
  • Формат ячеек – числовой, так Даты тоже нужно будет преобразовывать вручную.

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

  1. Сводная таблица

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

Самое рациональное решение – сводная таблица. Нам понадобиться поправить исходные данные, у каждого столбца должен быть заголовок!

Выделяем таблицу, выбираем в меню Вставка – Сводная таблица. Указываем, куда вставить новую таблицу (можно на новый лист или куда-нибудь на текущий), график – да/нет. Ок. В настройках меняем местами блоки названия строк и названия столбцов. Результат:

Excel: перенос данных из столбцов в строки и наоборот: 2 комментария

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

Можно сводной таблицей, см. пример в тексте

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Встречали такое, чтобы надо было столбцы сделать строками? К примеру, у вас есть 4 заголовка столбцов, нужно из них сделать 4 строки с этими же данными, как это показано на картинке. Это на самом деле несложно!

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

Как столбцы сделать строками? 1-й способ. Специальная вставка — транспонирование

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

Копируем диапазон. Выбираем куда вставить — например одну ячейку (вставиться же нужный диапазон). Нажимаем правую кнопку мыши. Выбираем «Специальная вставка«. В правом нижнем углу ставим галочку Транспонировать. ОК.

Вуаля! Строки вставились столбцами и/или наоборот.

Как столбцы сделать строками? 2-й способ. Функция ТРАНСП()

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

Выберите (выделите) диапазон, в который нужно вставить перевернутую таблицу, т.е. с по А3:А6 на картинке. В строке формул, запишите формулу =ТРАНСП(A1:D1) как показано на картинке или скопируйте и подстройте под свой диапазон.

После чего обязательно нажмите комбинацию клавиш ctrl + shift + enter, чтобы включить формулу массива (что это такое читайте здесь) — специальную возможность для работы с диапазонами (функция будет отображаться в фигурных скобках).

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

Пример транспонирования формулами.

Поделитесь нашей статьей в ваших соцсетях:

(Visited 4 464 times, 8 visits today)

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

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

Рассмотрим пример: у нас есть две строки, которые по каким-то причинам мы хотим развернуть в Excel:

как столбик сделать строкой excel

Данные для преобразования

Скопируем диапазон данных A1:L2 для преобразования. Кликнем правой кнопкой мыши на свободную ячейку ниже и в открывшемся меню выберем «Специальная вставка»:

как столбик сделать строкой excel

Контекстное меню- специальная вставка

В открывшемся окне поставим галочку «Транспонировать»:

как столбик сделать строкой excel

Транспонировать

Если дополнительно мы отметим точкой «Значения», то будут вставлены только значения (принтскрин ниже, слева), если «Все» то вставка осуществится вместе с форматом  (принтскрин ниже, справа):

как столбик сделать строкой excel

Результат перевода строк в столбцы

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

Если есть вопросы — задавайте!

Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок расположенных ниже.

Спасибо за внимание.

17.10.2013 Григорий Цапко Полезные советы

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

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

Первый способ – использование специальной вставки.

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

Данные из столбца в excel будут преобразованы (транспонированы) в строку.

как столбик сделать строкой excel

Второй способ – использование функции ТРАНСП.

Функция ТРАНСП преобразует вертикальный диапазон ячеек (столбец) в горизонтальный (строку).

Функция ТРАНСП имеет очень простой синтаксис:

=ТРАНСП(массив), где массив – преобразуемый из столбца в строку массив данных.

Чтобы транспонировать данные в excel из столбца в строку, при помощи этой функции необходимо:

1)      Выделить горизонтальный диапазон: внимание! – с количеством ячеек соответствующий количеству ячеек в вертикальном диапазоне.

2)      В первую ячейку горизонтального диапазона ввести формулу =ТРАНСП(массив), где массив – это вертикальный диапазон ячеек.

3)      Нажать комбинацию клавиш Ctrl + Shift + Enter. Формула будет введена как формула массива в фигурных скобках {=ТРАНСП(G5:G8)}

как столбик сделать строкой excel

Какой способ выбрать при преобразовании в excel столбца в строку?

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

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

Как вы правильно догадались, чтобы преобразовать данные в excel из строки в столбец нужно проделать аналогичные операции, что и при преобразовании столбца в строку. Можно воспользоваться как специальной вставкой, так и функцией ТРАНСП.

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

К счастью, это не так и данная задача решается намного проще. Сейчас мы расскажем, как сделать столбцы строками в Excel буквально за пару кликов мышкой. Материал будет актуален для всех современных версий Excel, включая Excel 2007, 2010, 2013 и 2016.

Способ № 1. Используем копирование и вставку с транспонированием.

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

Для того чтобы воспользоваться данным способом вам нужно выделить область листа Excel, строки которой нужно преобразовать в столбцы, и скопировать данную область с помощью комбинации клавиш Ctrl-C или с помощью команды «Копировать» в контекстном меню (как на скриншоте внизу).

как столбик сделать строкой excel

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

как столбик сделать строкой excel

В результате в выбранном вами месте появится область с вашими данными. При этом ее строки будут преобразованы в столбцы и наоборот (как на скриншоте внизу). Нужно отметить, что вставить данные в том же месте не получится, но вы можете обойти это ограничение создав новый лист Excel.

как столбик сделать строкой excel

Также нужно отметить, что данный способ не будет работать если ваша область с данными оформлена как таблица Excel (кнопка «Таблица» на вкладке «Вставка»).

как столбик сделать строкой excel

Для того чтобы транспонировать таблицу Excel ее нужно сначала преобразовать в диапазон. Делается это при помощи кнопки «Преобразовать в диапазон» на вкладке «Робота с таблицами – Конструктор».

как столбик сделать строкой excel

Кроме этого, таблицу Excel можно транспонировать при помощи функции ТРАНСП, о которой мы расскажем ниже.

Способ № 1. Используем формулу «ТРАНСП».

Если ваши данные в таблице регулярно меняются и вам постоянно нужно преобразовывать столбцы в строки, то описанный выше способ будет очень неудобен. Вместо него лучше использовать формулу «ТРАНСП», которая делает все тоже самое, но автоматически.

Пользоваться формулой «ТРАНСП» достаточно просто, но есть некоторые важные моменты, которые связаны с тем, что формула работает с массивом. Чтобы процесс использования формулы был максимально понятен, мы рассмотрим все шаг за шагом.

Для начала вам нужно выделить область таблицы, в которую будут помещаться транспонированные данные. Область должна быть такой же, как и область с исходными данными, но количество столбцов и строк нужно поменять местами. Например, если ваша исходная область имела 30 столбцов и 1 строку, то область для транспонированных данных должна иметь 30 строк и 1 столбец.

как столбик сделать строкой excel

После выделения области нужного размера можно приступать к вводу формулы, которая сделает столбцы строками и наоборот. Для этого нажимаем Enter, вводим знак «=», вводим название формулы «ТРАНСП» и открываем круглую скобку.

как столбик сделать строкой excel

Дальше выделяем мышкой область с исходными данными либо вручную вводим адрес нужного массива данных.

как столбик сделать строкой excel

После ввода адреса массива с данными закрываем круглую скобку и нажимаем комбинацию Ctrl-Shift-Enter. Нажимать нужно именно Ctrl-Shift-Enter, а не просто Enter, так как эта формула работает с массивом.

как столбик сделать строкой excel

После нажатия на Ctrl-Shift-Enter вы получите новую область таблицы, в которой столбцы преобразованы в строки и наоборот.

как столбик сделать строкой excel

При этом, теперь все ячейки новой области связаны с исходными ячейками с помощью формулы «ТРАНСП». Это означает, что при изменении данных в исходной области, данные будут изменяться и в новой преобразованной области.

Содержание

  • Операции с массивами
    • Создание формулы
    • Изменение содержимого массива
  • Функции массивов
    • Оператор СУММ
    • Оператор ТРАНСП
    • Оператор МОБР
  • Вопросы и ответы

Массив в программе Microsoft Excel

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

Операции с массивами

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

Одномерный массив в Microsoft Excel

Во втором — в нескольких одновременно.

Двумерный массив в Microsoft Excel

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

Горизонатльные и вертикальные одномерные массивы в Microsoft Excel

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

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

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

=адрес_массива1*адрес_массива2

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

Координаты массива имеют вид адресов первой её ячейки и последней, разделенные двоеточием. Если диапазон двумерный, то первая и последняя ячейки расположены по диагонали друг от друга. Например, адрес одномерного массива может быть таким: A2:A7.

Адрес одномерного массива в Microsoft Excel

А пример адреса двумерного диапазона выглядит следующим образом: A2:D7.

Lumpics.ru

Адрес двумерного массива в Microsoft Excel

  1. Чтобы рассчитать подобную формулу, нужно выделить на листе область, в которую будет выводиться результат, и ввести в строку формул выражение для вычисления.
  2. Введение формулы массива в Microsoft Excel

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

Результат вычислений формулы массива в Microsoft Excel

Изменение содержимого массива

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

Нельзя изменять часть массива в Microsoft Excel

Если вы закроете, это сообщение, нажав на кнопку «OK», а потом попытаетесь переместить курсор с помощью мышки, или просто нажмете кнопку «Enter», то информационное сообщение появится опять. Не получится также закрыть окно программы или сохранить документ. Все время будет появляться это назойливое сообщение, которое блокирует любые действия. А выход из ситуации есть и он довольно прост

  1. Закройте информационное окно, нажав на кнопку «OK».
  2. Закрытие информационного окна в Microsoft Excel

  3. Затем нажмете на кнопку «Отмена», которая расположена в группе значков слева от строки формул, и представляет собой пиктограмму в виде крестика. Также можно нажать на кнопку Esc на клавиатуре. После любой из этих операций произойдет отмена действия, и вы сможете работать с листом так, как и прежде.

Отмена действия в Microsoft Excel

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

  1. Для изменения формулы выделите курсором, зажав левую кнопку мыши, весь диапазон на листе, куда выводится результат. Это очень важно, так как если вы выделите только одну ячейку массива, то ничего не получится. Затем в строке формул проведите необходимую корректировку.
  2. Внесение изменений в формулу массива в Microsoft Excel

  3. После того, как изменения внесены, набираем комбинацию Ctrl+Shift+Esc. Формула будет изменена.

Изменения в формулу массива внесены в Microsoft Excel

  1. Для удаления формулы массива нужно точно так же, как и в предыдущем случае, выделить курсором весь диапазон ячеек, в котором она находится. Затем нажать на кнопку Delete на клавиатуре.
  2. Удаление формулы массива в Microsoft Excel

  3. После этого формула будет удалена со всей области. Теперь в неё можно будет вводить любые данные.

Формула массива удалена в Microsoft Excel

Функции массивов

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

Переход к функциям в Microsoft Excel

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

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

Урок: Мастер функций в Excel

Оператор СУММ

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

=СУММ(массив1;массив2;…)

Функция СУММ в Microsoft Excel

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

Урок: Как посчитать сумму в Экселе

Оператор ТРАНСП

Функция ТРАНСП является типичным оператором массивов. Она позволяет переворачивать таблицы или матрицы, то есть, менять строки и столбцы местами. При этом она использует исключительно вывод результата в диапазон ячеек, поэтому после введения данного оператора обязательно нужно применять сочетание Ctrl+Shift+Enter. Также нужно отметить, что перед введением самого выражения нужно выделить на листе область, у которой количество ячеек в столбце будет равно числу ячеек в строке исходной таблицы (матрицы) и, наоборот, количество ячеек в строке должно равняться их числу в столбце исходника. Синтаксис оператора следующий:

=ТРАНСП(массив)

Функция ТРАНСП в Microsoft Excel

Урок: Транспонирование матриц в Excel

Урок: Как перевернуть таблицу в Экселе

Оператор МОБР

Функция МОБР позволяет производить вычисление обратной матрицы. Все правила ввода значений у этого оператора точно такие же, как и у предыдущего. Но важно знать, что вычисление обратной матрицы возможно исключительно в том случае, если она содержит равное количество строк и столбцов, и если её определитель не равен нулю. Если применять данную функцию к области с разным количеством строк и столбцов, то вместо корректного результата на выходе отобразится значение «#ЗНАЧ!». Синтаксис у этой формулы такой:

=МОБР(массив)

Функция МОБР в Microsoft Excel

Для того чтобы рассчитать определитель, применяется функция со следующим синтаксисом:

=МОПРЕД(массив)

Функция МОПРЕД в Microsoft Excel

Урок: Обратная матрица в Excel

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

Понравилась статья? Поделить с друзьями:
  • Как максимально сжать excel файл
  • Как менять значения в диаграмме excel
  • Как менять знаки в excel
  • Как менять запятую на точку в excel
  • Как менять диапазон в excel