Оглавление
В целом TRANSPOSE Функция часто используется для преобразования строк в столбцы. Однако результаты, зависящие от определенных критериев, например, уникальные значения, не будут возвращены. В этом учебнике мы покажем вам, как транспонировать строки в столбцы на основе критериев в Excel.
Скачать Практическое пособие
Скачайте эту рабочую тетрадь для тренировок, чтобы заниматься во время чтения этой статьи.
Транспонирование строк в столбцы с помощью критериев.xlsm2 удобных подхода к транспонированию строк в столбцы на основе критериев в Excel
Мы включили набор данных из нескольких продуктов и их количества в рисунок ниже. строки будут транспонированы в столбцы. Мы транспонировать строки в столбцы в соответствии с заданными критериями уникальных значений, поскольку в отдельной ячейке есть несколько дублирующихся записей. Сначала мы воспользуемся функцией ИНДЕКС , МАТЧ , COUNTIF , ЕСЛИ и IFERROR функции для создания формул. Мы также выполним функцию VBA код для достижения той же цели.
1. применение формулы с функциями INDEX, MATCH и COUNTIF для транспонирования строк в столбцы на основе критериев в Excel
В начале мы будем применять формулы ИНДЕКС , МАТЧ , COUNTIF , ЕСЛИ и IFERROR функции с массивами.
Шаг 1: Вставка функций INDEX, MATCH и COUNTIF
- В камере E5 Введите следующую формулу, чтобы получить уникальные продукты.
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))
Шаг 2: Применение массива
- Чтобы применить формулу к массиву, нажмите Ctrl + Смена + Войти
- Таким образом, вы получите первый уникальный результат.
Шаг 3: Автозаполнение ячеек
- Чтобы получить все уникальные значения, используйте Автозаполнение Инструмент Handle Tool для автоматического заполнения колонки.
Шаг 4: Введите функции IFERROR
- Чтобы перенести строковое значение величин в столбцы, напишите следующую формулу.
=IFERROR(INDEX($C$5:$C$12, MATCH(0, COUNTIF($E5:E5, $C$5:$C$12) + IF($B$5:$B$12$E5,1,0),0)),0)
Шаг 5: Применение массива
- Чтобы вставить массив, нажмите Ctrl + Смена + Войти .
- Как следствие, клетка F5 будет показано первое транспонированное значение, как на изображении ниже.
- Перетащите вниз с помощью Инструмент для рукоятки автозаполнения для автоматического заполнения колонки.
- Наконец, автоматически заполните строки с Инструмент для рукоятки автозаполнения .
- Поэтому все транспонированные строки превратятся в столбцы, как показано на рисунке ниже.
Подробнее: Транспонирование нескольких строк в группе в столбцы в Excel
Похожие чтения
- Как транспонировать дублирующиеся строки в столбцы в Excel (4 способа)
- Excel VBA: транспонирование нескольких строк в группе в столбцы
- Транспонирование нескольких столбцов в один столбец в Excel (3 удобных метода)
- Как сделать обратное транспонирование в Excel (3 простых метода)
2. Выполнение кода VBA для транспонирования строк в столбцы на основе критериев в Excel
Шаг 1: Создайте модуль
- Во-первых, нажмите Альт + F11 начинать Макрос VBA .
- Нажмите на Вставка .
- Чтобы создать Модуль , выберите Модуль вариант.
Шаг 2: Введите коды VBA
- Вставьте следующее VBA
Sub TransposeRows() 'Define Variables Dim RowsNumber As Long Dim p As Long Dim xColCr As String Dim xColumn As New Collection Dim InputRng As Range Dim OutputRng As Range Dim RngText As String Dim CountRow As Long Dim xRowRg As Range On Error Resume Next 'Set values and Input Box fot Input Range RngText = ActiveWindow.RangeSelection.Address Set InputRng = Application.InputBox("Select Your InputRange for 2 columns:", "ExcelWIKI", RngText, , , , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Apply Condition to count only 2 columns and to show msg box for alerting to select only two columns If InputRng Is Nothing Then Exit Sub If (InputRng.Columns.Count 2) Or _ (InputRng.Areas.Count> 1) Then MsgBox "The specified range is only area for 2 columns ",, "ExcelWIKI" Exit Sub End If 'Установите значения и поле ввода для диапазона ввода Set OutputRng = Application.InputBox("Select Your Output Range (one cell):", "ExcelWIKI", RngText, , , , , , 8) If OutputRng Is Nothing Then Exit Sub Set OutputRng = OutputRng.Range(1) 'Count RowsNumber = InputRng.Rows.Count 'Apply For loop For p = 2 To RowsNumber xColumn.Add InputRng.Cells(p, 1).Value, InputRng.Cells(p,1).Value Next Application.ScreenUpdating = False For p = 1 To xColumn.Count xColCr = xColumn.Item(p) OutputRng.Offset(p, 0) = xColCr InputRng.AutoFilter Field:=1, Criteria1:=xColCr Set xRowRg = InputRng.Range("B2:B" & RowsNumber).SpecialCells(xlCellTypeVisible) If xRowRg.Count> CountRow Then CountRow = xRowRg.Count 'Copy and paste with transpose InputRng.Range("B2:B" &RowsNumber).SpecialCells(xlCellTypeVisible).Copy OutputRng.Offset(p, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Application.CutCopyMode = False Next OutputRng = InputRng.Cells(1, 1) OutputRng.Offset(0, 1).Resize(1, CountRow) = InputRng.Cells(1, 2) InputRng.Rows(1).Copy OutputRng.Resize(1, CountRow + 1).PasteSpecial Paste:=xlPasteFormatsInputRng.AutoFilter Application.ScreenUpdating = True End Sub
Шаг 3: Запустите программу
- Первый, сохранить и нажмите F5 чтобы запустить программу.
- Выберите набор данных с помощью заголовка.
- Нажмите на OK .
- Выберите ячейку, чтобы получить выход
- Затем нажмите на OK .
- В результате вы получите результаты, в которых строки транспонированы в столбцы, как показано на изображении ниже.
Подробнее: Как транспонировать строки в столбцы с помощью Excel VBA (4 идеальных примера)
Заключение
Я надеюсь, что эта статья помогла вам узнать о том, как транспонировать строки в столбцы на основе критериев в Excel Все эти процедуры должны быть изучены и применены к вашему набору данных. Посмотрите на рабочую тетрадь и проверьте эти навыки на практике. Мы мотивированы продолжать создавать подобные учебники благодаря вашей ценной поддержке.
Если у вас есть какие-либо вопросы - не стесняйтесь задавать их нам. Также не стесняйтесь оставлять комментарии в разделе ниже.
Мы Exceldemy Команда всегда быстро реагирует на ваши запросы.
Оставайтесь с нами, & продолжайте учиться.