Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Xiaoyang Last modified

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

A screenshot showing the desired result after transposing cells based on unique values

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

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

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


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

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

1. Введите эту формулу массива: =ИНДЕКС($A$2:$A$16; ПОИСКПОЗ(0; СЧЁТЕСЛИ($D$1:$D1; $A$2:$A$16); 0)) в пустую ячейку, например D2, и нажмите клавиши Shift + Ctrl + Enter вместе, чтобы получить правильный результат, см. скриншот:

A screenshot showing the formula to extract unique values for transposing data

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

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

A screenshot showing the unique values extracted using a formula

3. Далее продолжайте вводить эту формулу в ячейку E2: =ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$16; ПОИСКПОЗ(0; СЧЁТЕСЛИ($D2:D2;$B$2:$B$16)+ЕСЛИ($A$2:$A$16<>$D2; 1; 0); 0)); 0), и не забудьте нажать клавиши Shift + Ctrl + Enter, чтобы получить результат, см. скриншот:

A screenshot showing the formula to transpose cells in Excel based on unique values

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

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

A screenshot showing the transposed data in Excel using formulas

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

A screenshot showing the final transposed data in Excel based on unique values


Транспонирование ячеек в одном столбце на основе уникальных значений с помощью кода 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, чтобы запустить этот код, и появится окно с запросом выбрать диапазон данных, который вы хотите использовать, см. скриншот:

A screenshot of a prompt box for selecting a data range to transpose in Excel

4. Затем нажмите кнопку OK, появится еще одно окно с запросом выбрать ячейку для размещения результата, см. скриншот:

A screenshot of a prompt box for selecting an output cell for transposed data in Excel

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

A screenshot showing the transposed data in Excel after running VBA code


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

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

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

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

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

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

A screenshot of the Advanced Combine Rows option on the Kutools tab on the Ribbon

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

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

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

A screenshot of the Combine Rows Based on Column dialog box

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

A screenshot showing the combined data in Kutools for Excel after merging rows based on unique values

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

A screenshot of the Split Cells option on the Kutools tab on the Ribbon

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

A screenshot of the Split Cells dialog box

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

A screenshot of the dialog box for selecting the output cell

8. Нажмите OK, и вы получите результат, который вам нужен. См. скриншот:

A screenshot showing the final result of transposed data

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


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

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

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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: 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.

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