Excel - Porovnanie stĺpca A & B poskytuje výsledky v stĺpci C

Problém

Mám údaje v stĺpci A & B, ktoré spravujú až 55000 stĺpcov niekedy len 144 stĺpcov, čo vyzerá takto:

 AB (výsledok C) 2 ZZ, A, Q 3 PP, V 4 WW 2 A - 2 Q - 3 V - 1 DD 

Tu najprv pozrite sa na Col: A prvé číslo je "2" a v stĺpci: B má "Z", "A" a "Q", takže výsledok je Z, A, Q jedna z najdôležitejších vecí je tu zvyšok "2" v stĺpci: A by malo byť prázdne.

Riešenie 1

Toto je prvé makro, ktoré môžete použiť:

 Sub test () Dim accountName, lastRow, writeInCell, repeatTimes lastRow = Range ("B1") Koniec (xlDown) .Row listy (1) .Vyberte pre i = 2 Pre poslednýRow writeInCell = i Range ("B" & i) .Vyberte accountName = Range ("B" a i). Hodnota If (Range ("C" & i). Hodnota "") Potom repeatTimes = CInt (Range ("C" a i). Hodnota) End If Ak je opakované časy> 1 Potom accountName = WorksheetFunction.Rept (accountName & ", ", repeatTimes) Koniec Ak j = i + 1 accountName = Trim (accountName) Ak (Right (accountName, 1) = ", ") Potom accountName = Left (accountName, Len (accountName) - 1) End If If (i lastRow) Potom Until do ActiveCell.Offset (1, -1). Hodnota "" repeatTimes = 0 If (Range ("C" & j) .Value "") Potom repeatTimes = CInt (Range ("C" & j). Hodnota) End If Ak je repeatTimes> 0 Potom accountName = Trim (accountName) Ak (Right (accountName, 1) = ", ") Potom accountName = accountName & WorksheetFunction.Rept (Range ( "B" & j). Hodnota & ", ", repeatTimes) Else accountName = accountName & ", " & WorksheetFunction.Rept (rozsah ("B" & j). Hodnota & ", ", repeatTimes) Koniec, ak je koniec tiveCell.Offset (1, 0) .Vyberte i = i + 1 j = i + 1 Loop End Ak accountName = Trim (accountName) Ak (Right (accountName, 1) = ", ") Potom accountName = Left (accountName, Len (accountName) - 1) End Ak accountName = Nahradiť (accountName, ", ", ", ") Rozsah ("D" & writeInCell) .Value = accountName accountName = "" repeatTimes = 0 Next i Range ("A1"). Vyberte End Sub 

Riešenie 2

Ďalšie makro:

 Sub test () Dim accountName, lastRow, writeInCell lastRow = Range ("B1") Koniec (xlDown) .Row listy (1) .Vyberte pre i = 2 Pre lastRow writeInCell = i accountName = Range ("B" & i) .Value Range ("B" a i) .Vyberte If (i lastRow) Potom Until do ActiveCell.Offset (1, -1). Hodnota "accountName = accountName &", "& ActiveCell.Offset (1, 0). Hodnota ActiveCell.Offset (1, 0) .Vyberte i = i + 1 Loop End If Range ("C" & writeInCell) .Value = accountName Next i End Sub 

Roztok 3

  • 1. Vytvorte priečinok v jednotke pre ľahký prístup, napr. C :. (Pomenujte niečo súvisiace s ovládacím panelom, napr. Používatelia.)
  • 2. V programe Poznámkový blok vytvorte nový súbor a do neho skopírujte a prilepte nasledujúce položky:

 ren Používatelia používateľov {21EC2020-3AEA-1069-A2DD-08002B30309D} 
  • 3. Nahraďte "Užívatelia" názvom priečinka, ktorý ste vytvorili, a súbor uložte ako loc.bat.

(Teraz by ste mali mať možnosť vidieť svoj priečinok a súbor loc.bat s loc.bat v rovnakom adresári ako priečinok Not in it.)

  • 4. Teraz kliknite pravým tlačidlom myši a vytvorte iný textový súbor. Skopírujte a prilepte nasledujúce:

 ren Užívatelia {21EC2020-3AEA-1069-A2DD-08002B30309D} Používatelia 

(Nezabudnite nahradiť slovo „Používatelia“ názvom priečinka.)

  • 5. Uložte ho ako key.bat.
  • 6. Teraz by ste mali vidieť súbory loc.bat a key.bat v rovnakom adresári ako priečinok, ktorý ste vytvorili.
  • 7. Teraz stačí, ak dvakrát kliknete na súbor loc.bat a priečinok by mal mať ikonu, ktorá vyzerá ako ovládací panel. Ak kliknete na priečinok, mali by ste vás presmerovať na Ovládací panel a tým ste priečinok uzamkli.
  • 8. Samozrejme, aby ste ho odomkli, jednoducho dvakrát kliknite na súbor key.bat a priečinok by sa mal vrátiť do priečinka, ktorý ste vytvorili ako prvý.

Poznámka

Vďaka Navaneeth za tento tip na fóre.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy