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

Ինչպե՞ս կրկնօրինակ տողերը Excel- ում սյուններ տեղափոխել:

Ենթադրելով, որ Excel- ում ունեք մի շարք տվյալներ, հիմա կցանկանաք կրկնօրինակ շարքերը տեղափոխել բազմաթիվ սյունակների, ինչպես ցույց է տրված հետևյալ նկարը, արդյո՞ք ունեք լավ գաղափարներ այս խնդիրը լուծելու համար:

Տեղափոխեք կրկնօրինակ շարքերը VBA կոդով սյունակների վրա

doc- փոխարկել-կրկնօրինակ-տողեր-սյուններ -1


նետ կապույտ աջ պղպջակ Տեղափոխեք կրկնօրինակ շարքերը VBA կոդով սյունակների վրա

Unfortunatelyավոք, Excel- ում դրանով զբաղվելու համար ուղղակի միջոց չկա, բայց այն լուծելու համար կարող եք ստեղծել VBA կոդ, արեք հետևյալը.

1. Անջատեք ALT + F11 բացել ստեղները Microsoft Visual Basic հավելվածների համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներ, և տեղադրեք հետևյալ կոդը Մոդուլի պատուհան.

VBA կոդ. Կրկնօրինակ շարքերը տեղափոխել բազմաթիվ սյունակների

Sub ConvertTable()
'Updateby Extendoffice
Dim xArr1 As Variant
Dim xArr2 As Variant
Dim InputRng As Range, OutRng As Range
Dim xRows As Long
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xArr1 = InputRng.Value
t = UBound(xArr1, 2): xRows = 1
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 2 To UBound(xArr1, 1)
        If Not .exists(xArr1(i, 1)) Then
            xRows = xRows + 1: .Item(xArr1(i, 1)) = VBA.Array(xRows, t)
            For ii = 1 To t
                xArr1(xRows, ii) = xArr1(i, ii)
            Next
        Else
            xArr2 = .Item(xArr1(i, 1))
            If UBound(xArr1, 2) < xArr2(1) + t - 1 Then
                ReDim Preserve xArr1(1 To UBound(xArr1, 1), 1 To xArr2(1) + t - 1)
                For ii = 2 To t
                    xArr1(1, xArr2(1) + ii - 1) = xArr1(1, ii)
                Next
            End If
            For ii = 2 To t
                xArr1(xArr2(0), xArr2(1) + ii - 1) = xArr1(i, ii)
            Next
            xArr2(1) = xArr2(1) + t - 1: .Item(xArr1(i, 1)) = xArr2
        End If
    Next
End With
OutRng.Resize(xRows, UBound(xArr1, 2)).Value = xArr1
End Sub

3, Դրանից հետո սեղմեք F5 ստեղնը ՝ այս կոդը գործարկելու համար, դուրս եկած երկխոսության մեջ ընտրեք տվյալների տիրույթը, որը ցանկանում եք կրկնօրինակ տողերը դարձնել բազմաթիվ սյունակների, տե՛ս նկար

doc- փոխարկել-կրկնօրինակ-տողեր-սյուններ -2

4: Սեղմեք OK, և ընտրեք մեկ բջիջ, որտեղ ցանկանում եք արդյունքը դնել հետևյալ երկխոսության դաշտում, տես նկարի նկարը.

doc- փոխարկել-կրկնօրինակ-տողեր-սյուններ -3

5. Եվ հետո կտտացրեք OK կոճակը, ձեր ընտրած տվյալները փոխարկվել են հետևյալի.

doc- փոխարկել-կրկնօրինակ-տողեր-սյուններ -4


Առնչվող հոդվածներ:

Ինչպե՞ս սյունակները և տողերը տեղափոխել մեկ տողի:

Ինչպե՞ս սյունակները և տողերը տեղափոխել մեկ սյունակի:

Ինչպե՞ս Excel- ում մեկ սյունակ փոխել / վերափոխել բազմաթիվ սյունակների:


Գրասենյակի արտադրողականության լավագույն գործիքները

Excel-ի համար Kutools-ը լուծում է ձեր խնդիրների մեծ մասը և բարձրացնում ձեր արտադրողականությունը 80%-ով

  • Վերաօգտագործել: Արագ տեղադրեք բարդ բանաձևեր, գծապատկերներ և այն ամենը, ինչ դուք նախկինում օգտագործել եք. Ryածկագրել բջիջները գաղտնաբառով; Ստեղծեք փոստային ցուցակ և նամակներ ուղարկել ...
  • Super Formula Bar (հեշտությամբ խմբագրեք տեքստի և բանաձևի բազմաթիվ տողեր); Ընթերցանության դասավորությունը (հեշտությամբ կարդալ և խմբագրել մեծ թվով բջիջներ); Տեղադրել ֆիլտրացված տիրույթում...
  • Միաձուլել բջիջները / տողերը / սյունակները առանց տվյալների կորստի. Պառակտված բջիջների պարունակությունը; Միավորել կրկնօրինակ տողերը / սյունակները... Կանխել կրկնօրինակ բջիջները; Համեմատեք միջակայքերը...
  • Ընտրեք Կրկնօրինակ կամ Եզակի Շարքեր; Ընտրեք դատարկ շարքեր (բոլոր բջիջները դատարկ են); Super Find և Fuzzy Find շատ աշխատանքային գրքույկներում; Պատահական ընտրություն ...
  • Actշգրիտ պատճեն Բազմաթիվ բջիջներ ՝ առանց բանաձևի հղումը փոխելու; Ավտոմատ ստեղծեք հղումներ դեպի մի քանի թերթեր; Տեղադրեք փամփուշտներ, Տուփեր և ավելին ...
  • Քաղվածք տեքստ, Տեքստ ավելացնել, հեռացնել ըստ դիրքի, Հեռացնել տարածությունը; Ստեղծել և տպել էջային ենթագոտիներ; Փոխարկել բջիջների բովանդակության և մեկնաբանությունների միջև...
  • Սուպեր զտիչ (պահպանել և կիրառել ֆիլտրի սխեմաները այլ թերթերի վրա); Ընդլայնված տեսակավորում ըստ ամիս / շաբաթ / օր, հաճախականություն և ավելին; Հատուկ զտիչ համարձակ, շեղատառով ...
  • Միավորել աշխատանքային տետրերը և աշխատանքային թերթերը; Միավորել աղյուսակները ՝ հիմնված հիմնական սյունակների վրա; Տվյալները բաժանեք մի քանի թերթերի; Խմբաքանակի փոխակերպում xls, xlsx և PDF...
  • Ավելի քան 300 հզոր հատկություններ. Աջակցում է Office / Excel 2007-2021 և 365: Աջակցում է բոլոր լեզուներին: Հեշտ տեղակայում ձեր ձեռնարկությունում կամ կազմակերպությունում: Ամբողջական հնարավորություններ 30-օրյա անվճար փորձարկում: 60-օրյա գումարի վերադարձի երաշխիք:
kte էջանիշը 201905

Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք

  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
officetab ներքևում

 

Տեսակավորել մեկնաբանությունները ըստ
մեկնաբանություններ (8)
Դեռևս գնահատականներ չկան: Եղիր առաջինը, ով կգնահատի:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Awesome Օրինակ - ինձ շատ ժամանակ խնայեց: Շատ շնորհակալություն !!!
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Thanks a lot!

Աստված օրհնի քեզ.
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ես այնքան աներևակայելի ուրախ եմ, որ սա ստացվեց: Դու իմ հերոսն ես!!!!
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Իսկապես հիանալի է: Ինձ շատ ժամանակ խնայեց
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Աշխատում է միայն այն դեպքում, եթե կան նույն թվով կրկնօրինակներ և զանգահարեք նրան a. Այն չի աշխատում, եթե ունեն տարբեր թվով կրկնօրինակներ:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Սա ինձ համար լավ է աշխատում Բրայնի տարբեր թվով կրկնօրինակների դեպքում: Ես միայն խնդիր ունեի, որ առաջին կրկնօրինակը երկու անգամ ցուցադրվի իմ արտադրանքի վրա, բայց դա շատ աննշան էր: Կցանկանայի միայն, որ իմանայի, թե ինչպես այն պատճենել կրկնօրինակ արդյունքները ստորակետերով սահմանազատված ձևաչափի մեջ՝ յուրաքանչյուրի համար նոր սյունակների փոխարեն:
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Բարեւ Ձեզ! Որևէ մեկը կարո՞ղ է օգնել ինձ...

Ես գտա այս կոդը՝ եզակի ID-ով տվյալների տողերը վերածելու մեկ տողի՝ յուրաքանչյուր ID-ի՝ բազմաթիվ սյունակներով (նվազագույն սյունակ 5 – ներառյալ ID, առավելագույն սյունակներ 25 – ներառյալ ID): Այնուհետև այն ջնջում է բոլոր կրկնօրինակ տողերը՝ հիմնված եզակի ID-ի վրա: Այս ծածկագիրը մի տեսակ աշխատում է, միակ խնդիրն այն է, որ տվյալների երկու սյունակ չի փոխանցում:

Տվյալների տողերի թիվը մեկ եզակի ID-ի համար տատանվում է 1-ից 6-ը (հետևաբար ինձ անհրաժեշտ կլինի նվազագույնը 5 սյունակ մինչև առավելագույնը 25 սյունակ)

Տվյալների 20,000 տող կա, բայց ես կարող եմ տվյալները բաժանել ըստ բաժինների՝ նվազագույնը 5,000 տվյալների տողերի համար և գործարկել յուրաքանչյուր բաժին առանձին:

Շնորհակալ եմ ձեր օգնության համար:


Իմ տվյալները կարծես այսպիսին են

ABCDE
ID ՆԿԱՐԱԳՐԱԿԱՆ ՎԻՃԱԿԸ # DATE
3 CPR US 567 6/19/2019
3 AET US 568 6/19/2019
4 CPR ԱՄՆ 6/19/2019
4 ԱԵՏ
4 AED

եւ այլն:

Ես ուզում եմ, որ այն այսպիսի տեսք ունենա

ABCDEFGHIJKLM և այլն.....
ID DESCRIPTION STATE # DATE DESCRIPTION STATE # DATE DESCRIPTION STATE # DATE
3 CPR US 567 6/19/2019 AET US 568 6/19/2019
4 CPR US AET US AED US

Ահա այն ծածկագիրը, որը ես գտա այդպիսի ստեղծագործություն (հավանաբար, ինչի համար է այն գրվել, այն կրում է միայն D և E սյունակների տվյալները և բաց թողնում B & C սյունակը… թողնելով երկու դատարկ սյունակ յուրաքանչյուր տվյալների հավաքածուի համար: Ինձ դա դուր է գալիս: այն ջնջում է կրկնօրինակները՝ եզակի ID-ի հիման վրա բոլոր տվյալները մեկ սյունակ տեղափոխելուց հետո

Sub Addresses_To_Columns()

Dim last Row As Long
Dim addressCount As Integer: addressCount = 0

lastRow = Range ("A" & Rows.Count).End(xlUp).Տող

i = վերջին տող 3-ի համար Քայլ -1
If Cells(i, 1).Value = Cells(i - 1, 1).Value then
հասցեների քանակ = հասցեների քանակ + 1
Շրջանակ (Բջիջներ (i - 1, 10), Բջիջներ (i - 1, (հասցեների քանակ * 5) + 10)) = Շրջանակ (Բջիջներ (i, 4), բջիջներ (i, (հասցեների քանակը * 5) + 4)): Արժեք
Տողեր(i).Ջնջել
Ուրիշ
հասցեների քանակը = 0
Վերջ: Եթե
Հաջորդ i

Վերջ Sub
Այս մեկնաբանությունը կայքի վարողի կողմից նվազագույնի է հասցվել
Ողջույն բոլորին

Ես փորձեցի այս կոդը և այն հաջողությամբ աշխատեց:

Իմ հարցն այն է, թե ինչպես կարող եմ նույնն անել՝ օգտագործելով Ms Access ավելի մեծ տվյալների համար, կարո՞ղ եմ ստանալ, որ հարցումը նույնն է աշխատում, թե ոչ:

Շատ շնորհակալություն .
Առայժմ ոչ մի մեկնաբանություն չկա
Թողեք ձեր մեկնաբանությունները
Հրապարակում որպես հյուր
×
Գնահատեք այս գրառումը.
0   Անձնավորություններ
Առաջարկվող վայրեր

Հետեւեք մեզ

Հեղինակային իրավունքի © 2009 - www.extendoffice.com. | Բոլոր իրավունքները պաշտպանված են. Powered by ExtendOffice. | | Կայքի քարտեզ
Microsoft- ը և Office- ի պատկերանշանը հանդիսանում են Microsoft Corporation- ի ապրանքային նշաններ կամ գրանցված ապրանքային նշաններ ԱՄՆ-ում և (կամ) այլ երկրներում:
Պաշտպանված է Sectigo SSL- ի կողմից