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

 Jak transponovat buňky v jednom sloupci na základě jedinečných hodnot v jiném sloupci?

Předpokládejme, že máte rozsah dat, který obsahuje dva sloupce, nyní chcete transponovat buňky v jednom sloupci do vodorovných řádků na základě jedinečných hodnot v jiném sloupci, abyste získali následující výsledek. Máte nějaké dobré nápady, jak tento problém vyřešit v aplikaci Excel?

doc transponovat jedinečné hodnoty 1

Transponujte buňky v jednom sloupci na základě jedinečných hodnot pomocí vzorců

Transponujte buňky v jednom sloupci na základě jedinečných hodnot pomocí kódu VBA

Transponujte buňky v jednom sloupci na základě jedinečných hodnot pomocí Kutools pro Excel


Pomocí následujících vzorců pole můžete extrahovat jedinečné hodnoty a transponovat jejich odpovídající data do vodorovných řádků, postupujte takto:

1. Zadejte tento vzorec pole: = INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) do prázdné buňky, například D2, a stiskněte Shift + Ctrl + Enter společně získáte správný výsledek, viz screenshot:

doc transponovat jedinečné hodnoty 2

Poznámka: Ve výše uvedeném vzorci, A2: A16 je sloupec, ze kterého chcete vypsat jedinečné hodnoty, a D1 je buňka nad touto buňkou vzorce.

2. Poté přetáhněte úchyt výplně dolů do buněk a extrahujte všechny jedinečné hodnoty, viz screenshot:

doc transponovat jedinečné hodnoty 3

3. A pak pokračujte v zadávání tohoto vzorce do buňky 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)a nezapomeňte stisknout Shift + Ctrl + Enter klávesy pro získání výsledku, viz screenshot:

doc transponovat jedinečné hodnoty 4

Poznámka: Ve výše uvedeném vzorci: B2: B16 jsou data sloupce, která chcete transponovat, A2: A16 je sloupec, na kterém chcete transponovat hodnoty založené na, a D2 obsahuje jedinečnou hodnotu, kterou jste extrahovali v kroku 1.

4. Poté přetáhněte úchyt výplně napravo od buněk, u kterých chcete zobrazit transponovaná data, dokud se nezobrazí 0, viz screenshot:

doc transponovat jedinečné hodnoty 5

5. A pak pokračujte v přetahování popisovače výplně dolů do rozsahu buněk, abyste získali transponovaná data, jak ukazuje následující snímek obrazovky:

doc transponovat jedinečné hodnoty 6


Může to být tím, že vzorce jsou složité, abyste pochopili, zde můžete spustit následující kód VBA a získat požadovaný výsledek, který potřebujete.

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do Modul Okno.

Kód VBA: Transponujte buňky v jednom sloupci na základě jedinečných hodnot v jiném sloupci:

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. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a zobrazí se okno s výzvou, které vám připomene výběr rozsahu dat, který chcete použít, viz screenshot:

doc transponovat jedinečné hodnoty 7

4. A pak klikněte na tlačítko OK tlačítko, vyskočí další okno s výzvou, které vám připomene, abyste vybrali buňku, která má dát výsledek, viz screenshot:

doc transponovat jedinečné hodnoty 8

6, klikněte OK tlačítko a data ve sloupci B byla provedena na základě jedinečných hodnot ve sloupci A, viz screenshot:

doc transponovat jedinečné hodnoty 9


Pokud máte Kutools pro Excel, kombinace Pokročilé kombinování řádků a Rozdělit buňky nástroje, můžete tento úkol rychle dokončit bez jakýchkoli vzorců nebo kódu.

Kutools pro Excel : s více než 300 praktickými doplňky Excel, můžete si je vyzkoušet bez omezení do 30 dnů.

Po instalaci Kutools pro Excel, postupujte následovně:

1. Vyberte rozsah dat, který chcete použít. (Pokud si chcete uchovat původní data, nejprve je zkopírujte a vložte do jiného umístění.)

2. Pak klikněte na tlačítko Kutools > Sloučit a rozdělit > Pokročilé kombinování řádků, viz screenshot:

3. V Kombinujte řádky na základě sloupce V dialogovém okně proveďte následující operace:

(1.) Klikněte na název sloupce, podle kterého chcete data transponovat, a vyberte Primární klíč;

(2.) Klikněte na jiný sloupec, který chcete transponovat, a klikněte na Kombinovat pak vyberte jeden oddělovač k oddělení kombinovaných dat, jako je mezera, čárka, středník.

doc transponovat jedinečné hodnoty 11

4. Pak klikněte na tlačítko Ok tlačítko, data ve sloupci B byla kombinována společně v jedné buňce na základě sloupce A, viz screenshot:

doc transponovat jedinečné hodnoty 12

5. Potom vyberte spojené buňky a klikněte Kutools > Sloučit a rozdělit > Rozdělit buňky, viz screenshot:

6. V Rozdělit buňky dialogové okno vyberte Rozdělit na sloupce pod typ možnost a poté vyberte oddělovač, který odděluje vaše kombinovaná data, viz screenshot:

doc transponovat jedinečné hodnoty 14 14

7. Pak klikněte na tlačítko Ok Tlačítko a vyberte buňku, do které chcete rozdělený výsledek umístit do vyskakovacího dialogového okna, viz screenshot:

doc transponovat jedinečné hodnoty 15

8, klikněte OK, a získáte výsledek, jak potřebujete. Viz screenshot:

doc transponovat jedinečné hodnoty 16

Stáhněte si zdarma zkušební verzi Kutools pro Excel!


Kutools pro Excel: s více než 300 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 30 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!

Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
officetab dno
Komentáře (56)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Jak bych šel opačným směrem? Z více sloupců do jednoho sloupce? Díky předem! Tim
Tento komentář byl moderátorem webu minimalizován
To bylo fantastické. Měl jsem excel s přibližně 2000 jedinečnými hodnotami v řádku A a bez vaší pomoci bych toto cvičení nezvládl. Mnohokrát děkuji.
Tento komentář byl moderátorem webu minimalizován
Samotný první krok selže =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) zobrazí chybu Hodnota není k dispozici
Tento komentář byl moderátorem webu minimalizován
Chci to prostě udělat naopak. Jako bych už měl konečný výsledek a chtěl bych udělat první krok.
Tento komentář byl moderátorem webu minimalizován
Hledám totéž
Tento komentář byl moderátorem webu minimalizován
Našli jste nějaké řešení pro opačný scénář? Dík!
Tento komentář byl moderátorem webu minimalizován
Chci to udělat i naopak. Máte nějaké řešení, pánové?
Tento komentář byl moderátorem webu minimalizován
Ahoj hoši,
Chcete-li získat opačný výsledek na základě příkladu v tomto článku, můžete použít následující kód VBA: (Poznámka: Při výběru rozsahu dat, který chcete transponovat, vylučte řádek záhlaví)

Sub TransposeUnique_2()
Dim xLRow, xLCcount As Long
Dim xRg jako rozsah
Dim xOutRg jako rozsah
Dim xObjRRg jako rozsah
Dim xTxt As String
Dim xCount As Long
Dim xVRg jako rozsah
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("vyberte rozsah dat:", "Kutools pro Excel", xTxt, , , , , 8)
Nastavit xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Pokud xRg není nic, pak Exit Sub
If (xRg.Rows.count < 2) Nebo _
(xRg.Areas.count > 1) Potom
MsgBox "Neplatný výběr", , "Kutools pro Excel"
Konec Sub
End If
Set xOutRg = Application.InputBox("vyberte rozsah výstupu (určete jednu buňku):", "Kutools pro Excel", xTxt, , , , , 8)
Pokud xOutRg není nic, pak Exit Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
Pro xLRow = 1 To xRg.Rows.count
Nastavit xObjRRg = Rozsah(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
Rozsah(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Hodnota = xRg.Cells(xLRow, 1).Hodnota
Nastavit xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
další
Application.ScreenUpdating = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Jak provést transpozici, pokud sloupec B nemá jedinečné hodnoty, ale stále je potřebuje
KTE 100
KTE 100
Za předpokladu, že se jedná o dvě různé transakce
Tento komentář byl moderátorem webu minimalizován
Ahoj, Didine,

Můžete svůj problém popsat jasněji nebo podrobněji?
Můžete vložit ukázkový snímek obrazovky vašeho problému.
Děkuji!
Tento komentář byl moderátorem webu minimalizován
Ahoj,
Můžete mi prosím pomoci s níže uvedeným požadavkem.
Produkt ----- objednávka
KTE ------ 100 KTE ------ 200 KTO ------ 300 KTO ------ 300
očekávaný výstup
Produkt ----- objednávka ----- objednávka ------ objednávka
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Tento komentář byl moderátorem webu minimalizován
I já potřebuji to samé. Chci zobrazit 100 dvakrát, pokud je v datech
Tento komentář byl moderátorem webu minimalizován
Můžete na to navrhnout vzorec
Tento komentář byl moderátorem webu minimalizován
Dostali jste někdy odpověď/řešení na tuto výzvu? Mám stejný.
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak to udělat obráceně? Tedy data v řádcích různé délky a tak je seřadit do dvou sloupců? Viz příloha.
Tento komentář byl moderátorem webu minimalizován
Chci také transponovat duplicitní hodnoty (všechny hodnoty - jedinečné + duplicitní) a nejen jedinečné hodnoty. Můžete dát vzorec i na to.
Tento komentář byl moderátorem webu minimalizován
Potřebuji to samé
Tento komentář byl moderátorem webu minimalizován
Dostali jste někdy odpověď/řešení na tuto výzvu? Mám stejný.
Tento komentář byl moderátorem webu minimalizován
S níže uvedeným vzorcem:

=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)

Jak mohu transponovat data pomocí přibližných shod? Řekněme, že chci extrahovat všechny hodnoty ze sloupce B, které odpovídají prvním 9 znakům / číslicím ze sloupce A? Sloupec B má 11 znaků, zatímco A pouze 9. děkujeme!
Tento komentář byl moderátorem webu minimalizován
Musím to udělat přesně naopak. Mám mnoho sloupců spojených s ID řádku a chci je vložit do dvou sloupců
například já mám
rowid, hodnota, hodnota1, hodnota2, hodnota3, hodnota4, hodnota..225
100, delfín, 255, 9--, sarah, jameson, ....
179, Router, záplava, jason, 89, nos



Chci, aby to vypadalo takto
100, delfín
100, 255
100, 9--
100, sarah
100, Jaemeson
179, směrovač
179, povodeň
179, jason
179, 89
179, nos
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Dave,
Chcete-li vyřešit svůj problém, použijte níže uvedený kód VBA: (Poznámka: Když vyberete rozsah dat, který chcete transponovat, vylučte řádek záhlaví.)

Sub TransposeUnique_2()
Dim xLRow, xLCcount As Long
Dim xRg jako rozsah
Dim xOutRg jako rozsah
Dim xObjRRg jako rozsah
Dim xTxt As String
Dim xCount As Long
Dim xVRg jako rozsah
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("vyberte rozsah dat:", "Kutools pro Excel", xTxt, , , , , 8)
Nastavit xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Pokud xRg není nic, pak Exit Sub
If (xRg.Rows.count < 2) Nebo _
(xRg.Areas.count > 1) Potom
MsgBox "Neplatný výběr", , "Kutools pro Excel"
Konec Sub
End If
Set xOutRg = Application.InputBox("vyberte rozsah výstupu (určete jednu buňku):", "Kutools pro Excel", xTxt, , , , , 8)
Pokud xOutRg není nic, pak Exit Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
Pro xLRow = 1 To xRg.Rows.count
Nastavit xObjRRg = Rozsah(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
Rozsah(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Hodnota = xRg.Cells(xLRow, 1).Hodnota
Nastavit xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
další
Application.ScreenUpdating = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Děkuji, funguje to perfektně, ušetřili jste mi 2 dny! :)
Tento komentář byl moderátorem webu minimalizován
Ahoj Skyyang,
prosím sdílejte kód pro 3 sloupce. Níže je uveden příklad:
Chci data jako: yogesh@gmail.com komunita 1 zobrazit pouze komunitu 2 zobrazit pouze ...... goyal@gmail.com komunita 1 zobrazit pouze komunitu 2 zobrazit pouze.......

Tento komentář byl moderátorem webu minimalizován
Ahoj, ygoyale,

Chcete-li vyřešit svůj problém, použijte níže uvedený kód:

Sub TransposeUnique_2()

Dim xLRow, xLCcount As Long

Dim xRg jako rozsah

Dim xOutRg jako rozsah

Dim xObjRRg jako rozsah

Dim xTxt As String

Dim xCount As Long

Dim xVRg jako rozsah

Dim xC, xI, xI1, xI2 Jako celé číslo

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("vyberte rozsah dat:", "Kutools pro Excel", xTxt, , , , , 8)

Nastavit xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Pokud xRg není nic, pak Exit Sub

If (xRg.Rows.Count < 2) Nebo _

(xRg.Areas.Count > 1) Poté

MsgBox "Neplatný výběr", , "Kutools pro Excel"

Konec Sub

End If

Set xOutRg = Application.InputBox("vyberte rozsah výstupu (určete jednu buňku):", "Kutools pro Excel", xTxt, , , , , 8)

Pokud xOutRg není nic, pak Exit Sub

Application.ScreenUpdating = False

xLCount = xRg.Columns.Count

Pro xLRow = 1 To xRg.Rows.Count

Nastavit xObjRRg = Rozsah(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

If xC <> 0 Then

xC = Int(xObjRRg.Počet / 2) + 1

Jiný

xC = Int(xObjRRg.Count / 2)

End If

xI1 = 1

xI2 = 2

Pro xI = 1 až xC

Rozsah(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Kopírovat

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

Application.CutCopyMode = False

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

Set xOutRg = xOutRg.Offset(RowOffset:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

další

další

Application.ScreenUpdating = True

End Sub



Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Ahoj brácho, kód funguje opačně. Podívejte se prosím na přiložený snímek obrazovky s požadavkem. Dostupné údaje jsou po řádcích a chcete převést data do sloupců.
Tento komentář byl moderátorem webu minimalizován
Ahoj, ygoyale,
Omlouváme se za pozdní odpověď, použijte prosím následující kód, zkuste to!

Sub transposeunique()

'aktualizovat od Extendoffice

Dim xLRow As Long

Dim i tak dlouho

Dim xCrit jako řetězec

Dim xCol jako nová kolekce

Dim xRg jako rozsah

Dim xOutRg jako rozsah

Dim xTxt As String

Dim xCount As Long

Dim xVRg jako rozsah

Dim xFRg, xSRg, xCRg jako rozsah

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("vyberte rozsah dat (pouze 3 sloupce):", "Kutools pro Excel", xTxt, , , , , 8)

Nastavit xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Pokud xRg není nic, pak Exit Sub

If (xRg.Columns.Count <> 3) Nebo _

(xRg.Areas.Count > 1) Poté

MsgBox "použitý rozsah je pouze jedna oblast se dvěma sloupci", , "Kutools pro Excel"

Konec Sub

End If

Set xOutRg = Application.InputBox("vyberte rozsah výstupu (určete jednu buňku):", "Kutools pro Excel", xTxt, , , , , 8)

Pokud xOutRg není nic, pak Exit Sub

Nastavit xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Pro i = 2 až xLRow

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

další

Application.ScreenUpdating = False

Application.ScreenUpdating = False

Pro 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)

Pokud xVRg.Count > xCount Pak xCount = xVRg.Count

Nastavit xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

Nastavit xCRg = xOutRg.Offset(i, 1)

Pro každý xFRg v xSRg

xFRg.Kopírovat

xCRg.PasteSpecial

xRg.Range("B1").Kopírovat

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

xFRg.Offset(0, 1).Kopírovat

Nastavit xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Range("c1").Kopírovat

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

Nastavit xCRg = xCRg.Offset(0, 1)

další

Application.CutCopyMode = False

další

xRg.Item(1).Kopírovat

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = True

End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj brácho, zkusil jsem použít tento kód, ale excel se zasekne, když spustím tento kód a nevidím výstup z výše uvedeného kódu. prosím o radu, co dělat v tomto případě.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Kód v mém sešitu funguje dobře, jakou verzi Excelu používáte?
Tento komentář byl moderátorem webu minimalizován
MS Excel 2016
Tento komentář byl moderátorem webu minimalizován
Kód funguje dobře i v mém Excelu 2016, zkuste to nejprve s daty malého rozsahu.
Tento komentář byl moderátorem webu minimalizován
Testováno na 160 záznamech, ale stále tam byl duplikát.
Tento komentář byl moderátorem webu minimalizován
Ahoj Skyyang, líbí se mi to, je nějaká šance, že bys to mohl zprovoznit pro čtyři sloupce? opět jen použít první dva jako komparátor, nebo ještě lépe možnost zvolit počet sloupců před jejich výběrem? Díval jsem se na tvůj scénář, neměl jsem ponětí, jak toho dosáhnout...
Tento komentář byl moderátorem webu minimalizován
Ahoj Skyyang, líbí se mi to, je nějaká šance, že bys to mohl zprovoznit pro čtyři sloupce? opět jen použít první dva jako komparátor, nebo ještě lépe možnost zvolit počet sloupců před jejich výběrem? Díval jsem se na tvůj scénář, neměl jsem ponětí, jak toho dosáhnout...
Tento komentář byl moderátorem webu minimalizován
Brácho, pls pomozte s tím.
Tento komentář byl moderátorem webu minimalizován
Ahoj brácho, stále čekám na tvou pomoc
Tento komentář byl moderátorem webu minimalizován
Tento komentář byl moderátorem webu minimalizován
Stejně jako Dave musím udělat pravý opak. Tabulka 2 pro transpozici do tabulky 1. Vstupní tabulka 2, výstupní tabulka 1.
Tento komentář byl moderátorem webu minimalizován
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) mi fungovalo při transponování jedinečných hodnot sloupce do nového sloupec ALE...existuje způsob, jak inzerovat ve funkci řazení, aby byl nově vytvořený sloupec transponován ve vzestupném pořadí?


Díky!
Tento komentář byl moderátorem webu minimalizován
Potřebujete získat totéž, ale pro předdefinované sloupce, které mají být vybrány, by bylo ($A,$B) a potřebujete výstupní sloupec Pozice na $D$1.
Kdyby měl někdo nápad, byla by to velká pomoc!!!!
Tento komentář byl moderátorem webu minimalizován
Ahoj, můžeme přidat každý řádek a dát výstup v jednom sloupci s výše uvedenou funkcí.
Tento komentář byl moderátorem webu minimalizován
Takže pracuji pro společnost. Máme sloupce pro informace, jako je Příjmení, jméno, hodnost, sekce, telefonní číslo, adresa. Existuje způsob, jak mohu použít podobný vzorec k převedení celého řádku informací do sloupce podle jmen?
Tento komentář byl moderátorem webu minimalizován
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) mi fungovalo při transponování jedinečných hodnot sloupce A do nového sloupec ALE... existuje způsob, jak získat všechny hodnoty ve sloupci B, aby byly transponovány, jak je uvedeno níže:

Datum objednávky produktu Objednávka produktu Objednávka Objednávka Objednávka Objednávka Objednávka Objednávka Objednávka
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 DOBÍRKA 200 150 100 150
KTO 200 3
KTE 100 3. 5. 2019
BOT 150 3. 5. 2019
BOT 100 3. 6. 2019
KTO 100 3
KTE 200 3. 6. 2019
BOT 200 3. 7. 2019
DOBÍRKA 200 3
KTE 100 3
KTO 150 3
BOT 150 3
KTE 150 3
DOBÍRKA 150 3
BOT 100 3
BOT 200 3
DOBÍRKA 100 3. 10. 2019
KTO 200 3. 10. 2019
DOBÍRKA 150 3. 11. 2019
KTE 100 3. 11. 2019
Tento komentář byl moderátorem webu minimalizován
Makro nefungovalo. Právě to zkopírovalo obsah buňky A1.
Tento komentář byl moderátorem webu minimalizován
Mám sadu dat ve sloupcích A (Unique ID) - E. Každý řádek má data založená na ID#, pro každé ID# je více řádků, ale chci jeden řádek na ID# se všemi ostatními daty ve sloupcích ( bylo by to minimálně 5 sloupců a maximálně 25 v závislosti na tom, kolik má každé jedinečné ID). Našel jsem kód, ale funguje pouze pro dva sloupce. Musel jsem zřetězit čtyři sloupce (bez ID) a poté oddělit po spuštění makra (spousta práce). Pro 15,000 XNUMX řádků dat je to navíc časově náročné. Existuje nekonečné sloupcové makro, které by fungovalo? Předem všem děkujeme za pomoc!
ID CODE ST CODE# DATUM
Tento komentář byl moderátorem webu minimalizován
Mám datovou sadu, která má více ID ve sloupci A a má propojená data ve sloupci B. Použil jsem výše uvedený vzorec a trochu jej upravil tak, že transponuji buňky ve sloupci B do řádku na základě jedinečného ID. svázané s ním ve sloupci A. Vzorec použitý k identifikaci jedinečných ID je: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). Vzorec použitý k provedení transpozice je: =IFERROR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0)), "N/A"). Obojí uvedeno v článku, jen mírně pozměněno.

Problém je v tom, že moje datová sada ve sloupci B má duplikáty, které se někdy objevují jedna po druhé, a potřebuji, aby byly všechny hodnoty ve sloupci uvedeny v řádcích.

Přiložený obrázek je to, co bych chtěl, aby tabulka ukázala (jedná se o malou velikost vzorku, skutečný soubor dat má více než 13,000 XNUMX záznamů). To, co se nyní děje, je, že když je nalezena opakovaná hodnota, nebude ji počítat.
tj. řádek 9 pro ID 11980 nyní zobrazuje pouze 0 -31.79 -0.19 -0.74 N/AN/A .... když potřebuji, aby se místo toho zobrazilo, je 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

Existuje způsob, jak tento problém obejít a vyřešit?

Děkuji předem!
Tento komentář byl moderátorem webu minimalizován
Dostali jste někdy odpověď/řešení na tuto výzvu? Mám stejný.
Tento komentář byl moderátorem webu minimalizován
Mám soubor dat, který má 3 sloupce uvedené níže:



Sloupec A Sloupec B Sloupec C



Země1 Rok1 Hodnota1

Země1 Rok2 Hodnota2

Země1 Hodnota roku3,



Země2 Rok1 Hodnota1

Země2 Hodnota roku3,

...........



Potřebuji zkombinovat tyto 3 sloupce v tabulce, jako je tato:

Rok1 Rok2 Rok3 ................................... RokX



Země1 Hodnota1 Hodnota2 Hodnota3

Země2 Hodnota1 #Chybí hodnota3

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

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





Problém, kterému čelím, je ten, že pro některá data ve sloupci A nemám hodnoty pro každý rok, pouze pro některé. (Například země 2 má chybějící hodnoty pro rok 2)





Existuje způsob, jak tento problém obejít a vyřešit?



Děkuji předem!
Tento komentář byl moderátorem webu minimalizován
můžete prosím sdílet kód, pokud existují 2 sloupce ke zkopírování místo 1. níže je příklad.
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění