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.