Excel - Jämför kolumn A & B ger resultat i kolumn C

Problem

Jag har data i kolumn A & B som kör upp till 55000 kolumner ibland endast 144 kolumner, som ser ut som:

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

Här ser du först för kol: A det första numret är "2" och i kolumnen: B har "Z", "A" & "Q" så resultatet är Z, A, Q En av de viktigaste är här resten av "2" i kolumnen: A ska vara tomt.

Lösning 1

Detta är det första makro du kan använda:

 Delprov () Dimma kontonamn, lastRow, writeInCell, repeatTimes lastRow = Räckvidd ("B1"). Slut (xlDown) .Row Sheets (1) .Välj för I = 2 För att senast Rösta writeInCell = Välj " 1 sedan AccountName = WorksheetFunction.Rept (kontonamn & ", " repeatTimes) Avsluta om j = i + 1 accountName = Trim (kontonamn) Om (Höger (accountName, 1) = ", ") Då accountName = Left (kontonamn, Len (1) .Value "" repeatTimes = 0 Om (Räckvidd ("C" & j) .Value "") Sedan repeatTimes = CInt (Range ("C" & j) .Value) Slut Om Om repeatTimes> 0 Then accountName = Trim (kontonamn) Om (Höger (accountName, 1) = ", ") Då accountName = accountName & WorksheetFunction.Rept "B" & j) .Value & ", " repeatTimes) Annan accountName = accountName & ", " & WorksheetFunction.Rept (Range ("B" & j) .Value & ", " repeatTimes) tiveCell.Offset (1, 0) .Välj i = i + 1 j = i + 1 Loop End Om accountName = Trim (kontonamn) Om (Höger (accountName, 1) = ", ") Då accountName = Left (kontonamn, Len (kontonamn) - 1) Avsluta Om accountName = Ersätt (kontonamn, ", ", ", ") Räckvidd ("D" & writeInCell) .Value = accountName accountName = "" repeatTimes = 0 Nästa i Range ("A1"). Välj Slutdel 

Lösning 2

Ett annat makro:

 Delprov () Dimma kontonamn, lastRow, writeInCell lastRow = Räckvidd ("B1"). Slut (xlDown). Row Sheets (1) .Välj för I = 2 För att senast Rösta writeInCell = jag accountName = Räckvidd ("B" och i) .Value Range ("B" & i) .Välj Om (jag lastRow) Gör så till ActiveCell.Offset (1, -1) .Value "" accountName = accountName & ", " & ActiveCell.Offset (1, 0). Värde ActiveCell.Offset (1, 0) .Välj i = i + 1 Loop End Om Range ("C" & writeInCell) .Value = accountName Nästa slutar jag Sub 

Lösning 3

  • 1. Skapa en mapp i en enhet för enkel åtkomst, t.ex. C :. (Namn det är något som hör till kontrollpanelen, t.ex. Användare.)
  • 2. Skapa en ny fil i Anteckningar och kopiera och klistra in följande i det:

 rena användare. {21EC2020-3AEA-1069-A2DD-08002B30309D} 
  • 3. Byt ut "Användare" med namnet på den mapp du skapade och spara filen som loc.bat.

(Du ska nu kunna se din mapp och loc.bat-filen, med loc.bat i samma katalog som mappen Ej i den.)

  • 4. Högerklicka och skapa en annan textfil. Kopiera och klistra in följande i det:

 rena användare. {21EC2020-3AEA-1069-A2DD-08002B30309D} Användare 

(Se till att du ersätter ordet "Användare" med namnet på din mapp.)

  • 5. Spara det som key.bat.
  • 6. Nu ska du se loc.bat och key.bat-filerna i samma katalog som den mapp du skapade.
  • 7. Allt du behöver göra är att dubbelklicka på loc.bat-filen och mappen ska ha en ikon som ser ut som kontrollpanelen. Om du klickar på mappen ska det omdirigera dig till kontrollpanelen och sålunda har du låst mappen.
  • 8. För att låsa upp det, klickar du helt enkelt på key.bat-filen och mappen ska återgå till den mapp du skapade först.

Notera

Tack till Navaneeth för detta tips på forumet.

Tidigare Artikel Nästa Artikel

Bästa Tipsen