KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

АвторСяоянДата изменения

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

Снимок экрана, показывающий желаемый результат после транспонирования ячеек на основе уникальных значений

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

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

Транспонирование ячеек в одном столбце на основе уникальных значений с помощью Kutools для Excel


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

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

1. Введите эту формулу массива: =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) в пустую ячейку, например D2, и нажмите одновременно клавиши Shift + Ctrl + Enter, чтобы получить правильный результат (см. скриншот):

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

Примечание: В приведённой выше формуле A2:A16 — это столбец, из которого вы хотите получить список уникальных значений, а D1 — ячейка над ячейкой с формулой.

2. Затем перетащите маркер заполнения вниз по ячейкам, чтобы извлечь все уникальные значения (см. скриншот):

Снимок экрана, показывающий уникальные значения, извлеченные с помощью формулы

3. Введите следующую формулу в ячейку E2:=IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<,>,$D2, 1, 0), 0)), 0) и не забудьте нажать Shift + Ctrl + Enter, чтобы получить результат (см. скриншот):

Снимок экрана, показывающий формулу для транспонирования ячеек в Excel на основе уникальных значений

Примечание: В приведённой выше формуле: B2:B16 — это столбец данных, которые вы хотите транспонировать, A2:A16 — столбец, на основе значений которого выполняется транспонирование, а D2 содержит уникальное значение, извлечённое на шаге 1.

4.Затем перетащите маркер заполнения вправо до тех ячеек, куда вы хотите поместить транспонированные данные, пока не появится значение 0 (см. скриншот):

Снимок экрана, показывающий транспонированные данные в Excel с использованием формул

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

Снимок экрана, показывающий окончательные транспонированные данные в Excel на основе уникальных значений


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

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

1. Удерживая клавиши ALT + F11, откройте окно Microsoft Visual Basic for Applications.

2. Нажмите Вставка > Модуль и вставьте следующий код в окно Модуль.

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

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" &, xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

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

Снимок экрана диалогового окна для выбора диапазона данных, подлежащего транспонированию в Excel

4. Затем нажмите кнопку ОК — после этого появится ещё одно диалоговое окно с запросом выбрать ячейку для размещения результата (см. скриншот):

Снимок экрана диалогового окна для выбора ячейки вывода транспонированных данных в Excel

6. Нажмите кнопку ОК, и данные из столбца B будут транспонированы на основе уникальных значений в столбце A (см. скриншот):

Снимок экрана, показывающий транспонированные данные в Excel после выполнения кода VBA


Транспонирование ячеек в одном столбце на основе уникальных значений с помощью Kutools для Excel

Если у вас установлен Kutools для Excel, объединяющий возможности утилит Расширенное объединение строк и Разделить ячейки, вы сможете быстро выполнить эту задачу без использования формул или кода.

Kutools для Excelпредлагает более 300 расширенных функций для упрощения сложных задач, повышая креативность и эффективность.Интегрировано с возможностями ИИ, Kutools автоматизирует задачи с высокой точностью, делая управление данными простым и удобным.Подробная информация о Kutools для Excel…         Бесплатная пробная версия…

После установки Kutools для Excelвыполните следующие действия:

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

2. Затем нажмите Kutools > Объединить и разделить > Расширенное объединение строк (см. скриншот):

Снимок экрана опции «Расширенное объединение строк» на вкладке Kutools в ленте

3. В диалоговом окне Объединить строки на основе столбца выполните следующие действия:

(1.) Щёлкните имя столбца, на основе которого вы хотите транспонировать данные, и выберите Первичный ключ;

(2.) Щёлкните другой столбец, который вы хотите транспонировать, нажмите Объединить, а затем выберите один из разделителей для объединённых данных — например, пробел, запятую или точку с запятой.

Снимок экрана диалогового окна «Объединить строки по столбцу»

4. Затем нажмите кнопку ОК, и данные из столбца B объединятся в одной ячейке на основе значений из столбца A (см. скриншот):

Снимок экрана, показывающий объединённые данные в Kutools for Excel после слияния строк на основе уникальных значений

5. Затем выделите объединённые ячейки и нажмите Kutools > Объединить и разделить > Разделить ячейки (см. скриншот):

Снимок экрана опции «Разделить ячейки» на вкладке Kutools в ленте

6. В диалоговом окне Разделить ячейки выберите Разделить на столбцы в разделе Тип и укажите разделитель, который использовался при объединении данных (см. скриншот):

Снимок экрана диалогового окна «Разделить ячейки»

7. Затем нажмите кнопку ОК и выберите ячейку для размещения результата разделения в появившемся диалоговом окне (см. скриншот):

Снимок экрана диалогового окна для выбора ячейки вывода

8. Нажмите кнопку ОК, и вы получите требуемый результат (см. скриншот):

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

Скачайте и бесплатно протестируйте Kutools для Excel прямо сейчас!


Демонстрация: Транспонирование ячеек в одном столбце на основе уникальных значений с помощью Kutools для Excel

 
Kutools для Excel: Более 300 удобных инструментов всегда под рукой! Воспользуйтесь функциями на базе ИИ для более умной и быстрой работы!Скачать сейчас!

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек