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

 Як транспонувати клітинки в одному стовпці на основі унікальних значень в іншому стовпці?

Припустимо, у вас є діапазон даних, який містить два стовпці, тепер ви хочете транспонувати клітинки в одному стовпці в горизонтальні рядки на основі унікальних значень в іншому стовпці, щоб отримати такий результат. Чи є у вас якісь ідеї для вирішення цієї проблеми в Excel?

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

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

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

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


За допомогою наступних формул масиву ви можете витягти унікальні значення та транспонувати їх відповідні дані в горизонтальні рядки, будь-ласка, виконайте такі дії:

1. Введіть цю формулу масиву: = ІНДЕКС ($ A $ 2: $ A $ 16, ЗБІГ (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) наприклад, у порожню комірку, D2, і натисніть Shift + Ctrl + Enter клавіші разом, щоб отримати правильний результат, див. знімок екрана:

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

примітки: У наведеній вище формулі, A2: A16 - стовпець, з якого потрібно перерахувати унікальні значення, та D1 - клітина над цією клітинкою формули.

2. Потім перетягніть маркер заповнення до комірок, щоб витягти всі унікальні значення, див. Знімок екрана:

doc транспонувати унікальні значення 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 клавіші, щоб отримати результат, див. знімок екрана:

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

примітки: У наведеній вище формулі: B2: B16 - дані стовпця, які ви хочете транспонувати, A2: A16 - стовпець, на основі якого ви хочете перенести значення, та D2 містить унікальне значення, яке ви отримали на кроці 1.

4. Потім перетягніть маркер заповнення праворуч від комірок, в які потрібно перерахувати транспоновані дані, поки не відобразиться 0, див. Знімок екрана:

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

5. А потім продовжуйте перетягувати маркер заповнення до діапазону комірок, щоб отримати транспоновані дані, як показано на наступному знімку екрана:

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


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

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Модулі Вікно

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

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

4. А потім клацніть OK , з'явиться ще одне підказне вікно, щоб нагадати вам вибрати клітинку, щоб поставити результат, див. знімок екрана:

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

6. Клацання OK і дані в стовпці B транспоновані на основі унікальних значень у стовпці A, див. знімок екрана:

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


Якщо у вас є Kutools для Excel, що поєднує в собі Розширені комбіновані ряди і Розділені клітини утиліти, ви можете швидко виконати це завдання без будь-яких формул або коду.

Kutools для Excel : з більш ніж 300 зручними надбудовами Excel, які можна спробувати без обмежень протягом 30 днів.

після установки Kutools для Excel, будь ласка, виконайте наступне:

1. Виберіть діапазон даних, який ви хочете використовувати. (Якщо ви хочете зберегти вихідні дані, спершу скопіюйте та вставте дані в інше місце.)

2. Потім натисніть Кутулс > Злиття та розділення > Розширені комбіновані ряди, див. скріншот:

3, в Об'єднати рядки на основі стовпця діалоговому вікні, виконайте такі дії:

(1.) Клацніть назву стовпця, на основі якого потрібно транспортувати дані, та виберіть Первинний ключ;

(2.) Клацніть інший стовпець, який потрібно транспонувати, і натисніть Поєднувати потім виберіть один роздільник, щоб розділити комбіновані дані, такі як пробіл, кома, крапка з комою.

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

4. Потім натисніть Ok Кнопка, дані в стовпці B були об'єднані в одну комірку на основі стовпця A, див. знімок екрана:

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

5. А потім виділіть об’єднані комірки та натисніть Кутулс > Злиття та розділення > Розділені клітини, див. скріншот:

6, в Розділені клітини діалогове вікно, виберіть Розділити на стовпці під тип , а потім виберіть розділювач, який розділяє ваші об'єднані дані, див. знімок екрана:

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

7. Потім натисніть Ok і виберіть клітинку, щоб розмістити результат розбиття у спливаючому діалоговому вікні, див. знімок екрана:

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

8. Клацання OK, і ви отримаєте результат, як вам потрібно. Дивіться знімок екрана:

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

Завантажте та безкоштовну пробну версію Kutools для Excel зараз!


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

Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

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

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (56)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Як би я пішов у протилежному напрямку? З кількох стовпців в один стовпець? Спасибі заздалегідь! Тим
Цей коментар був мінімізований модератором на сайті
Це було фантастично. У мене був Excel із приблизно 2000 унікальними значеннями в рядку A, і я не міг би впоратися з цією вправою без вашої допомоги. Велике спасибі.
Цей коментар був мінімізований модератором на сайті
Сам перший крок не вдається =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) дає помилку "Значення недоступне"
Цей коментар був мінімізований модератором на сайті
Я просто хочу зробити навпаки. Ніби я вже маю кінцевий результат і хочу зробити перший крок.
Цей коментар був мінімізований модератором на сайті
Шукаю те саме
Цей коментар був мінімізований модератором на сайті
Чи знайшли ви якесь рішення для протилежного сценарію? Спасибі!
Цей коментар був мінімізований модератором на сайті
Я хочу зробити і навпаки. У вас є якесь рішення, панове?
Цей коментар був мінімізований модератором на сайті
Привіт, хлопці,
Щоб отримати протилежний результат на основі прикладу цієї статті, ви можете застосувати такий код VBA: (Примітка: вибираючи діапазон даних, який потрібно транспонувати, виключіть рядок заголовка)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg As Range
Dim xOutRg як діапазон
Dim xObjRRg як діапазон
Dim xTxt як рядок
Dim xCount As Long
Dim xVRg як діапазон
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Встановіть xRg = Application.InputBox("будь ласка, виберіть діапазон даних:", "Kutools для 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 для Excel", xTxt, , , , , 8)
Якщо xOutRg — нічого, вийдіть із Sub
Application.ScreenUpdating = Невірний
xLCount = xRg.Columns.count
Для xLRow = 1 До xRg.Rows.count
Встановіть xObjRRg = діапазон(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Копіювати
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = Неправда
Діапазон(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Value = xRg.Cells(xLRow, 1).Value
Встановити xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Далі
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Як виконати транспонування, якщо стовпець B не має унікальних значень, але все ще потребує цих значень
КТЕ 100
КТЕ 100
Припускаючи, що це дві різні транзакції
Цей коментар був мінімізований модератором на сайті
Привіт, Дідін,

Чи можете ви пояснити свою проблему більш чітко чи детально?
Ви можете вставити приклад скріншота для вашої проблеми.
Дякую!
Цей коментар був мінімізований модератором на сайті
Привіт там,
Не могли б ви допомогти мені з наведеною нижче вимогою.
Товар ----- замовлення
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
очікуваний вихід
Товар ----- замовлення ----- замовлення ------ замовлення
KTE ------ 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, маршрутизатор
179, повінь
179, Джейсон
179, 89
179, ніс
Цей коментар був мінімізований модератором на сайті
Привіт, Дейв,
Щоб вирішити проблему, скористайтеся наведеним нижче кодом VBA: (Примітка: коли ви вибираєте діапазон даних, який потрібно транспонувати, виключіть рядок заголовка.)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg As Range
Dim xOutRg як діапазон
Dim xObjRRg як діапазон
Dim xTxt як рядок
Dim xCount As Long
Dim xVRg як діапазон
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Встановіть xRg = Application.InputBox("будь ласка, виберіть діапазон даних:", "Kutools для 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 для Excel", xTxt, , , , , 8)
Якщо xOutRg — нічого, вийдіть із Sub
Application.ScreenUpdating = Невірний
xLCount = xRg.Columns.count
Для xLRow = 1 До xRg.Rows.count
Встановіть xObjRRg = діапазон(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Копіювати
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = Неправда
Діапазон(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Value = xRg.Cells(xLRow, 1).Value
Встановити 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 As Range

Dim xOutRg як діапазон

Dim xObjRRg як діапазон

Dim xTxt як рядок

Dim xCount As Long

Dim xVRg як діапазон

Розмір xC, xI, xI1, xI2 Як ціле число

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Встановіть xRg = Application.InputBox("будь ласка, виберіть діапазон даних:", "Kutools для 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 для Excel", xTxt, , , , , 8)

Якщо xOutRg — нічого, вийдіть із Sub

Application.ScreenUpdating = Невірний

xLCount = xRg.Columns.Count

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

Встановіть xObjRRg = діапазон(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Якщо xC <> 0 Тоді

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

Ще

xC = Int(xObjRRg.Count / 2)

End If

xI1 = 1

xI2 = 2

Для xI = 1 до xC

Діапазон(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Копія

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

Application.CutCopyMode = Неправда

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

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

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Далі

Далі

Application.ScreenUpdating = True

End Sub



Будь ласка, спробуйте, сподіваюся, це допоможе вам!
Цей коментар був мінімізований модератором на сайті
Привіт, брат, код працює навпаки. Будь ласка, перегляньте доданий знімок екрана з вимогою. Доступні дані наведено по рядках і потрібно транспонувати дані в стовпці .
Цей коментар був мінімізований модератором на сайті
Привіт, ygoyal,
Вибачте за пізню відповідь, будь ласка, застосуйте наступний код, будь ласка, спробуйте!

Sub transposeunique()

'updateby Extendoffice

Dim xLRow As Long

Dim i As Long

Dim xCrit як рядок

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

Dim xRg As Range

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 для Excel", xTxt, , , , , 8)

Встановіть xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Якщо xRg — нічого, вийдіть із Sub

Якщо (xRg.Columns.Count <> 3) або _

(xRg.Areas.Count > 1) Потім

MsgBox "використовуваний діапазон - це лише одна область з двома стовпцями ", , "Kutools для Excel"

Exit Sub

End If

Встановіть xOutRg = Application.InputBox("будь ласка, виберіть діапазон виводу (вкажіть одну клітинку):", "Kutools для Excel", xTxt, , , , , 8)

Якщо xOutRg — нічого, вийдіть із Sub

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

xLRow = xRg.Rows.Count

Для i = 2 До xLRow

xCol.Додати xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value

Далі

Application.ScreenUpdating = Невірний

Application.ScreenUpdating = Невірний

Для i = 1 До xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

xRg. AutoFilter Field:=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.Offset(0, 1).Копіювати

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

xCRg.PasteSpecial

xRg.Range("c1").Копіювати

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

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

Далі

Application.CutCopyMode = Неправда

Далі

xRg.Item(1).Копіювати

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = True

End Sub
Цей коментар був мінімізований модератором на сайті
Привіт, брате, я спробував використати цей код, але excel зависає, коли я запускаю цей код, і не можу побачити вихід із коду вище. підкажіть, будь ласка, що робити в цьому випадку.
Цей коментар був мінімізований модератором на сайті
привіт,
Код добре працює в моїй книзі, яку версію Excel ви використовуєте?
Цей коментар був мінімізований модератором на сайті
MS Excel 2016
Цей коментар був мінімізований модератором на сайті
Код також добре працює в моєму Excel 2016, спробуйте спочатку з деякими даними з невеликим діапазоном.
Цей коментар був мінімізований модератором на сайті
Тестували на 160 записах, але в тій ще дублікат був.
Цей коментар був мінімізований модератором на сайті
Привіт, Скайян, подобається це, чи є у вас шанс запустити його для чотирьох стовпців? знову просто використання перших двох як порівняння, або ще краще можливість вибрати кількість стовпців перед їх вибором? Я подивився на ваш сценарій, не мав поняття, як цього досягти...
Цей коментар був мінімізований модератором на сайті
Привіт, Скайян, подобається це, чи є у вас шанс запустити його для чотирьох стовпців? знову просто використання перших двох як порівняння, або ще краще можливість вибрати кількість стовпців перед їх вибором? Я подивився на ваш сценарій, не мав поняття, як цього досягти...
Цей коментар був мінімізований модератором на сайті
Брат, допоможіть, будь ласка, у цьому.
Цей коментар був мінімізований модератором на сайті
Привіт, брат, все ще чекаю на вашу допомогу
Цей коментар був мінімізований модератором на сайті
Цей коментар був мінімізований модератором на сайті
Так само, як і Дейву, мені потрібно зробити прямо протилежне. Таблиця 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 для транспонування, як наведено нижче:

Дата замовлення продукту. Замовлення продукту
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3/3/2019 KTO 150 100 200 100 150 200
KTE 100 3/4/2019 BOT 150 100 200 150 100 200
KTO 100 3/4/2019 COD 200 150 100 150
КТО 200 3
KTE 100 3
BOT 150 3
BOT 100 3
КТО 100 3
KTE 200 3
BOT 200 3
COD 200 3
KTE 100 3
КТО 150 3
BOT 150 3
KTE 150 3
COD 150 3
BOT 100 3
BOT 200 3
COD 100 3/10/2019
КТО 200 3
COD 150 3/11/2019
KTE 100 3/11/2019
Цей коментар був мінімізований модератором на сайті
Макрос не спрацював. Він просто скопіював вміст клітинки A1.
Цей коментар був мінімізований модератором на сайті
У мене є набір даних у стовпцях A (унікальний ідентифікатор) - E. Кожен рядок містить дані на основі ID#, є кілька рядків для кожного ID#, але я хочу один рядок на ID# з усіма іншими даними в стовпцях ( це буде мінімум 5 стовпців і максимум 25 в залежності від того, скільки має кожен унікальний ідентифікатор). Я знайшов код, але він працює лише для двох стовпців. Мені довелося об’єднати чотири стовпці (не включаючи ідентифікатор), а потім розмежувати після запуску макросу (багато роботи). Для 15,000 XNUMX рядків даних це забирає додатковий час. Чи існує нескінченний макрос стовпця, який би працював? Наперед дякую всім за допомогу!
ІДЕНТИФІКАЦІЙНИЙ КОД ST КОД № ДАТА
Цей коментар був мінімізований модератором на сайті
У мене є набір даних, який має кілька ідентифікаторів у стовпці A і зв’язує дані в стовпці B. Я використав наведену вище формулу та трохи змінив її, щоб я транспонував клітинки в стовпці B у рядок на основі унікального ідентифікатора прив’язано до нього в стовпці A. Формула, яка використовується для ідентифікації унікальних ідентифікаторів: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). Формула, яка використовується для транспонування: =IFERROR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0)), "Н/Д"). Обидва дані в статті, лише дещо змінені.

Проблема в тому, що мій набір даних у стовпці 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 стовпці, представлені нижче:



Стовпець А Колонка В Стовпець 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. Нижче наведено приклад.
There are no comments posted here yet
Load More
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL