Note: The other languages of the website are Google-translated. Back to English

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

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

док транспонировать уникальные значения 1

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

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

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


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

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

док транспонировать уникальные значения 2

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

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

док транспонировать уникальные значения 3

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 ключи, чтобы получить результат, см. снимок экрана:

док транспонировать уникальные значения 4

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

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

док транспонировать уникальные значения 5

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

док транспонировать уникальные значения 6


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

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

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

док транспонировать уникальные значения 7

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

док транспонировать уникальные значения 8

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

док транспонировать уникальные значения 9


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

Kutools for Excel : с более чем 300 удобными надстройками Excel, бесплатно и без ограничений в течение 30 дней.

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

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

2. Затем нажмите Кутулс > Слияние и разделение > Расширенные ряды комбинирования, см. снимок экрана:

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

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

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

док транспонировать уникальные значения 11

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

док транспонировать уникальные значения 12

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

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

док транспонировать уникальные значения 14 14

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

док транспонировать уникальные значения 15

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

док транспонировать уникальные значения 16

Загрузите бесплатную пробную версию Kutools for Excel прямо сейчас!


Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 30 дней. Загрузите и бесплатную пробную версию прямо сейчас!

Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (56)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Как бы я пошел в противоположном направлении? Из нескольких столбцов в один столбец? Заранее спасибо! Тим
Этот комментарий был сведен к минимуму модератором на сайте
Это было фантастически. У меня был Excel с примерно 2000 уникальными значениями в строке A, и я не смог бы справиться с этим упражнением без вашей помощи. Большое большое спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
Сам первый шаг завершается с ошибкой =ИНДЕКС($A$2:$A$16, ПОИСКПОЗ(0, СЧЁТЕСЛИ($D$1:$D1, $A$2:$A$16), 0)) выдает ошибку "Значение недоступно"
Этот комментарий был сведен к минимуму модератором на сайте
Я просто хочу сделать наоборот. Как будто у меня уже есть конечный результат, и я хочу сделать первый шаг.
Этот комментарий был сведен к минимуму модератором на сайте
Я ищу то же самое
Этот комментарий был сведен к минимуму модератором на сайте
Вы нашли решение для противоположного сценария? Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Я тоже хочу сделать наоборот. Какое-нибудь решение у вас есть, господа?
Этот комментарий был сведен к минимуму модератором на сайте
Привет ребята,
Чтобы получить противоположный результат на примере этой статьи, вы можете применить следующий код VBA: (Примечание. При выборе диапазона данных, который вы хотите транспонировать, исключите строку заголовка)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg как диапазон
Dim xOutRg как диапазон
Dim xObjRRg как диапазон
Dim xTxt как строка
Dim xCount As Long
Dim xVRg как диапазон
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Установите xRg = Application.InputBox («пожалуйста, выберите диапазон данных:», «Kutools for Excel», xTxt, , , , , 8)
Установите xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Если xRg ничего не значит, выйдите из Sub
Если (xRg.Rows.count < 2) или _
(xRg.Areas.count > 1) Тогда
MsgBox «Неверный выбор», «Kutools для Excel»
Exit Sub
End If
Установите xOutRg = Application.InputBox («пожалуйста, выберите диапазон вывода (укажите одну ячейку):», «Kutools for Excel», xTxt, , , , , 8)
Если xOutRg ничего не значит, выйдите из Sub
Приложение.ScreenUpdating = False
xLCount = xRg.Columns.count
Для xLRow = 1 To xRg.Rows.count
Установить xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Диапазон (Ячейки (xOutRg.Row, xOutRg.Column), Ячейки (xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)). Значение = xRg.Cells (xLRow, 1). Значение
Установить xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Далее
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Как сделать транспонирование, если столбец B не имеет уникальных значений, но все же нуждается в этих значениях
КТЭ 100
КТЭ 100
Предполагая, что это две разные транзакции
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Дидин,

Можете ли вы изложить свою проблему более четко или подробно?
Вы можете вставить пример скриншота для вашей проблемы.
Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Всем привет,
Не могли бы вы помочь мне с нижеприведенным требованием.
Продукт ----- заказ
КТЭ ------ 100 КТЭ ------ 200 КТЭ ------ 300 КТЭ ------ 300
ожидаемый результат
Продукт ----- заказ ----- заказ ------ заказ
КТЭ ------ 100 ------ 200
КТО ------ 300 ------ 300







Этот комментарий был сведен к минимуму модератором на сайте
Мне тоже нужно такое же. Я хочу отобразить 100 дважды, если есть в данных
Этот комментарий был сведен к минимуму модератором на сайте
Можете ли вы предложить формулу для этого
Этот комментарий был сведен к минимуму модератором на сайте
Вы когда-нибудь получали ответ/решение на этот вызов? У меня такой же.
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ сделать это в обратном порядке? Т.е. данные в строках разной длины и так сортировать их по двум столбцам? Смотри приложение.
Этот комментарий был сведен к минимуму модератором на сайте
я тоже хочу транспонировать повторяющиеся значения (все значения - уникальные + повторяющиеся), а не только уникальные значения. Можете ли вы дать формулу для этого тоже.
Этот комментарий был сведен к минимуму модератором на сайте
мне нужно то же самое
Этот комментарий был сведен к минимуму модератором на сайте
Вы когда-нибудь получали ответ/решение на этот вызов? У меня такой же.
Этот комментарий был сведен к минимуму модератором на сайте
С формулой ниже:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

Как я могу транспонировать данные, используя приблизительные совпадения? Скажем, я хочу извлечь все значения из столбца B, которые соответствуют первым 9 символам/цифрам из столбца A? В столбце B 11 символов, а в A только 9. Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Мне нужно сделать прямо противоположное этому. У меня много столбцов, связанных с идентификатором строки, и я хочу вставить их в два столбца.
например у меня есть
rowid, значение, значение1, значение2, значение3, значение4, значение..225
100, Дельфин, 255, 9--, Сара, Джеймсон, ....
179, роутер, флуд, джейсон, 89, нос



Я хочу, чтобы это выглядело так
100, Дельфин
100, 255
100, 9--
100, Сара
100, Джемесон
179, Router
179, наводнение
179, Джейсон
179, 89
179, нос
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Дэйв,
Чтобы решить вашу проблему, используйте приведенный ниже код VBA: (Примечание. При выборе диапазона данных, который вы хотите транспонировать, исключите строку заголовка.)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg как диапазон
Dim xOutRg как диапазон
Dim xObjRRg как диапазон
Dim xTxt как строка
Dim xCount As Long
Dim xVRg как диапазон
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Установите xRg = Application.InputBox («пожалуйста, выберите диапазон данных:», «Kutools for Excel», xTxt, , , , , 8)
Установите xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Если xRg ничего не значит, выйдите из Sub
Если (xRg.Rows.count < 2) или _
(xRg.Areas.count > 1) Тогда
MsgBox «Неверный выбор», «Kutools для Excel»
Exit Sub
End If
Установите xOutRg = Application.InputBox («пожалуйста, выберите диапазон вывода (укажите одну ячейку):», «Kutools for Excel», xTxt, , , , , 8)
Если xOutRg ничего не значит, выйдите из Sub
Приложение.ScreenUpdating = False
xLCount = xRg.Columns.count
Для xLRow = 1 To xRg.Rows.count
Установить xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Диапазон (Ячейки (xOutRg.Row, xOutRg.Column), Ячейки (xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)). Значение = xRg.Cells (xLRow, 1). Значение
Установить xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Далее
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, все работает отлично, вы сэкономили мне 2 дня! :)
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, Скайян.
пожалуйста, поделитесь кодом для 3 столбцов. Ниже приведен пример:
Мне нужны такие данные, как: yogesh@gmail.com сообщество 1 только просмотр сообщество 2 только просмотр ...... goyal@gmail.com сообщество 1 только просмотр сообщество 2 только просмотр........

Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, ygoyal,

Чтобы решить вашу проблему, примените следующий код:

Sub TransposeUnique_2()

Dim xLRow, xLCount As Long

Dim xRg как диапазон

Dim xOutRg как диапазон

Dim xObjRRg как диапазон

Dim xTxt как строка

Dim xCount As Long

Dim xVRg как диапазон

Dim xC, xI, xI1, xI2 как целое число

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Установите xRg = Application.InputBox («пожалуйста, выберите диапазон данных:», «Kutools for Excel», xTxt, , , , , 8)

Установите xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Если xRg ничего не значит, выйдите из Sub

Если (xRg.Rows.Count < 2) или _

(xRg.Areas.Count > 1) Тогда

MsgBox «Неверный выбор», «Kutools для Excel»

Exit Sub

End If

Установите xOutRg = Application.InputBox («пожалуйста, выберите диапазон вывода (укажите одну ячейку):», «Kutools for Excel», xTxt, , , , , 8)

Если xOutRg ничего не значит, выйдите из Sub

Приложение.ScreenUpdating = False

xLCount = xRg.Колонки.Количество

Для xLRow = 1 To xRg.Rows.Count

Установить xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Если хС<>0 Тогда

xC = Int(xObjRRg.Count/2) + 1

Еще

xC = Int(xObjRRg.Count / 2)

End If

хI1 = 1

хI2 = 2

Для xI = 1 К xC

Диапазон(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Копировать

xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

xOutRg.Value = xRg.Cells(xLRow, 1).Value

Установить xOutRg = xOutRg.Offset(RowOffset:=1)

хI1 = xI1 + (2)

хI2 = xI2 + (2)

Далее

Далее

Application.ScreenUpdating = True

End Sub



Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, братан, код работает наоборот. Пожалуйста, обратитесь к приложенному снимку экрана с требованием. Доступные данные представлены по строкам, и вы хотите перенести данные в столбцы.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, ygoyal,
Извините за поздний ответ, пожалуйста, примените следующий код, попробуйте!

Субтранспонированныйуникальный()

'updateby Extendoffice

Dim xLRow As Long

Dim i As Long

Dim xCrit как строка

Dim xCol как новая коллекция

Dim xRg как диапазон

Dim xOutRg как диапазон

Dim xTxt как строка

Dim xCount As Long

Dim xVRg как диапазон

Dim xFRg, xSRg, xCRg как диапазон

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Установите xRg = Application.InputBox («пожалуйста, выберите диапазон данных (только 3 столбца):», «Kutools for Excel», xTxt, , , , , 8)

Установите xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Если xRg ничего не значит, выйдите из Sub

Если (xRg.Columns.Count <> 3) или _

(xRg.Areas.Count > 1) Тогда

MsgBox «используемый диапазон — это только одна область с двумя столбцами», «Kutools for Excel»

Exit Sub

End If

Установите xOutRg = Application.InputBox («пожалуйста, выберите диапазон вывода (укажите одну ячейку):», «Kutools for Excel», xTxt, , , , , 8)

Если xOutRg ничего не значит, выйдите из Sub

Установите xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Для i = 2 To xLRow

xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value

Далее

Приложение.ScreenUpdating = False

Приложение.ScreenUpdating = False

Для i = 1 To xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

Поле xRg.AutoFilter:=1, Criteria1:=xCrit

Установите xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Если xVRg.Count > xCount, тогда xCount = xVRg.Count

Установите xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Установить xCRg = xOutRg.Offset(i, 1)

Для каждого xFRg в xSRg

xFRg.Копировать

xCRg.PasteSpecial

xRg.Range("B1").Копировать

xCRg.Offset(-(i), 0).PasteSpecial

xFRg.Смещение(0, 1).Копировать

Установить xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Range("c1").Копировать

xCRg.Offset(-(i), 0).PasteSpecial

Установить xCRg = xCRg.Offset(0, 1)

Далее

Application.CutCopyMode = False

Далее

xRg.Item(1).Копировать

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = True

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Эй, братан, я пытался использовать этот код, но Excel зависает, когда я запускаю этот код, и не вижу вывода из приведенного выше кода. подскажите что делать в этом случае.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,
Код хорошо работает в моей книге, какую версию Excel вы используете?
Этот комментарий был сведен к минимуму модератором на сайте
MS Excel 2016
Этот комментарий был сведен к минимуму модератором на сайте
Код отлично работает и в моем Excel 2016, пожалуйста, сначала попробуйте его с небольшими данными диапазона.
Этот комментарий был сведен к минимуму модератором на сайте
Протестировали на 160 записях, но в той еще дубликаты были.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Skyyang, нравится это, есть шанс, что ты сможешь заставить его работать для четырех колонок? снова просто используя первые два в качестве компаратора, или еще лучше возможность выбрать количество столбцов перед их выбором? Я посмотрел на ваш скрипт, понятия не имею, как этого добиться...
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Skyyang, нравится это, есть шанс, что ты сможешь заставить его работать для четырех колонок? снова просто используя первые два в качестве компаратора, или еще лучше возможность выбрать количество столбцов перед их выбором? Я посмотрел на ваш скрипт, понятия не имею, как этого добиться...
Этот комментарий был сведен к минимуму модератором на сайте
Бро, помоги в этом.
Этот комментарий был сведен к минимуму модератором на сайте
Привет бро, все еще жду твоей помощи
Этот комментарий был сведен к минимуму модератором на сайте
Этот комментарий был сведен к минимуму модератором на сайте
Как и Дейву, мне нужно сделать прямо противоположное этому. Таблицу 2 транспонировать в Таблицу 1. Входная таблица 2, Выходная таблица 1.
Этот комментарий был сведен к минимуму модератором на сайте
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) помогло мне перенести уникальные значения столбца в новый столбец НО... есть ли способ объявления в функции сортировки, чтобы новый созданный столбец транспонировался в порядке возрастания?


Благодаря!
Этот комментарий был сведен к минимуму модератором на сайте
Необходимо получить тот же вывод, но для предопределенных столбцов, которые будут выбраны, будет ($ A, $ B) и потребуется позиция выходного столбца на $ D $ 1.
Если у кого-то есть идеи, это было бы большим подспорьем!!!!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, мы можем добавить каждую строку и вывести результат в один столбец с вышеуказанной функциональностью.
Этот комментарий был сведен к минимуму модератором на сайте
Итак, я работаю в компании. У нас есть столбцы для информации, такой как фамилия, имя, звание, раздел, номер телефона, адрес. Есть ли способ использовать аналогичную формулу для переноса всей строки информации в столбец по именам?
Этот комментарий был сведен к минимуму модератором на сайте
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) помогло мне перенести уникальные значения столбца A в новый столбец НО... есть ли способ получить все значения в столбце B, которые будут транспонированы, как указано ниже:

Дата заказа продукта Заказ продукта Заказ Заказ Заказ Заказ Заказ
КТЭ 100 3 КТЭ 3 2019 100 100 100 200 100
КТО 150 3 КТО 3 2019 150 100 200 100
КТЭ 100 3 БОТ 4 2019 150 100 200 150
КТО 100 3 ХПК 4 2019 200 150
КТО 200 3
КТЭ 100 3
БОТ 150 3
БОТ 100 3
КТО 100 3
КТЭ 200 3
БОТ 200 3
Наложенный платеж 200 3
КТЭ 100 3
КТО 150 3
БОТ 150 3
КТЭ 150 3
Наложенный платеж 150 3
БОТ 100 3
БОТ 200 3
Наложенный платеж 100 3
КТО 200 3
Наложенный платеж 150 3
КТЭ 100 3
Этот комментарий был сведен к минимуму модератором на сайте
Макрос не сработал. Он просто скопировал содержимое ячейки A1.
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть набор данных в столбцах A (уникальный идентификатор) - E. Каждая строка содержит данные на основе идентификатора #, для каждого идентификатора # есть несколько строк, но мне нужна одна строка для каждого идентификатора # со всеми остальными данными в столбцах ( это будет минимум 5 столбцов и максимум 25 в зависимости от того, сколько у каждого уникального идентификатора). Я нашел код, но он работает только для двух столбцов. Мне пришлось объединить четыре столбца (не включая идентификатор), а затем разграничить после запуска макроса (много работы). Для 15,000 XNUMX строк данных это требует дополнительного времени. Есть ли работающий макрос бесконечного столбца? Заранее спасибо всем за вашу помощь!
ID КОД ST КОД № ДАТА
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть набор данных с несколькими идентификаторами в столбце A и связанными данными в столбце B. Я использовал приведенную выше формулу и немного изменил ее, чтобы переместить ячейки в столбце B в строку на основе уникального идентификатора привязан к нему в столбце A. Для идентификации уникальных идентификаторов используется следующая формула: =ИНДЕКС($A$2:$A$13409, ПОИСКПОЗ(0, СЧЁТЕСЛИ($D$1:$D1, $A$2:$A$13409), 0)). Для транспонирования используется следующая формула: D2,$B$13409:$B$0), 2)), "Н/Д"). Оба приведены в статье, лишь слегка измененные.

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

Прикрепленное изображение - это то, что я хотел бы показать в таблице (это небольшой размер выборки, настоящий набор данных содержит более 13,000 XNUMX записей). Теперь происходит то, что когда встречается повторяющееся значение, оно не будет учитываться.
т.е. строка 9 для ID 11980 теперь показывает только 0 -31.79 -0.19 -0.74 N/AN/A .... когда мне нужно показать вместо этого 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

Есть ли способ обойти эту проблему и решить ее?

Заранее спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Вы когда-нибудь получали ответ/решение на этот вызов? У меня такой же.
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть набор данных, который имеет 3 столбца, представленные ниже:



Столбец A Столбец B Столбец C



Страна1 Год1 Значение1

Страна1 Год2 Значение2

Страна1 Год3 Стоимость3,



Страна2 Год1 Значение1

Страна2 Год3 Стоимость3,

...........



Мне нужно объединить эти 3 столбца в таблицу следующим образом:

Год1 Год2 Год3 ................................ГодX



Страна1 Значение1 Значение2 Значение3

Страна2 Значение1 #Отсутствует значение3

.....
.....
.....

CountryX Valuex ..................





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





Есть ли способ обойти эту проблему и решить ее?



Заранее спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
не могли бы вы поделиться кодом, если нужно скопировать 2 столбца вместо 1. Ниже приведен пример.
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL