Excel - Vergleichen Sie Spalte A und B und geben Sie die Ergebnisse in Spalte C an

Problem

Ich habe Daten in Spalte A und B, die bis zu 55000 Spalten enthalten, manchmal nur 144 Spalten. Das sieht folgendermaßen aus:

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

Hier zuerst nach col suchen: A die erste Zahl ist "2" und in Spalte: B hat es "Z", "A" & "Q", also ist das Ergebnis Z, A, Q eine der wichtigsten Sachen hier ist das Rest von "2" in Spalte: A sollte leer sein.

Lösung 1

Dies ist das erste Makro, das Sie verwenden können:

 Untertest () Dim accountName, lastRow, writeInCell, repeatTimes lastRow = Bereich ("B1"). Ende (xlDown). Zeilenblätter (1). Auswahl für i = 2 To lastRow writeInCell = i Bereich ("B" & i) Wählen Sie accountName = Range ("B" & i). Value If (Range ("C" & i). Value "") Dann repeatTimes = CInt (Range ("C" & i). Value) End If If repeatTimes> 1 Dann accountName = WorksheetFunction.Rept (accountName & ", ", repeatTimes) End If j = i + 1 accountName = Trim (accountName) If (Right (accountName, 1) = ", ") Dann accountName = Left (accountName, Len (accountName) - 1) End If If (i lastRow) Then Do Bis ActiveCell.Offset (1, -1) .Value "" repeatTimes = 0 If (Range ("C" & j) .Value "") Then repeatTimes = CInt (Range ("C" & j) .Value) End If If repeatTimes> 0 Then accountName = Trim (accountName) If (Right (accountName, 1) = ", ") Then accountName = accountName & WorksheetFunction.Rept (Range ( "B" & j) .Value & ", ", repeatTimes) Andernfalls accountName = accountName & ", " & WorksheetFunction.Rept (Range ("B" & j) .Value & ", ", repeatTimes) End If End If Ac tiveCell.Offset (1, 0) .Wählen Sie i = i + 1 j = i + 1 Schleifenende Wenn accountName = Trim (accountName) Wenn (Right (accountName, 1) = ", ") Dann accountName = Left (accountName, Len (accountName) - 1) End If accountName = Ersetzen (accountName, ", ", ", ") Range ("D" & writeInCell) .Value = accountName accountName = "" repeatTimes = 0 Next i Range ("A1"). Wählen Sie End Sub 

Lösung 2

Ein anderes Makro:

 Untertest () Dim accountName, lastRow, writeInCell lastRow = Bereich ("B1"). End (xlDown). Zeilenblätter (1). Select For i = 2 To lastRow writeInCell = i accountName = Bereich ("B" & i) .Wertebereich ("B" & i) .Wählen Sie If (i lastRow) aus, und führen Sie dies aus, bis ActiveCell.Offset (1, -1) .Wert "" accountName = accountName & ", " & ActiveCell.Offset (1, 0). Wert ActiveCell.Offset (1, 0) .Wählen Sie i = i + 1 Loop End If Range ("C" & writeInCell) .Value = accountName Next i End Sub 

Lösung 3

  • 1. Erstellen Sie einen Ordner in einem Laufwerk für den einfachen Zugriff, z. B. C :. (Nennen Sie es etwas im Zusammenhang mit der Systemsteuerung, z. B. Benutzer.)
  • 2. Erstellen Sie eine neue Datei in Notepad und kopieren Sie Folgendes und fügen Sie es ein:

 ren Users Users. {21EC2020-3AEA-1069-A2DD-08002B30309D} 
  • 3. Ersetzen Sie "Benutzer" durch den Namen des von Ihnen erstellten Ordners und speichern Sie die Datei unter dem Namen loc.bat.

(Sie sollten jetzt in der Lage sein, Ihren Ordner und die Datei loc.bat anzuzeigen, wobei sich die Datei loc.bat im selben Verzeichnis befindet wie der Ordner Not in it.)

  • 4. Klicken Sie jetzt mit der rechten Maustaste und erstellen Sie eine weitere Textdatei. Kopieren Sie Folgendes und fügen Sie es ein:

 Benutzer. {21EC2020-3AEA-1069-A2DD-08002B30309D} Benutzer 

(Achten Sie darauf, das Wort "Benutzer" durch den Namen Ihres Ordners zu ersetzen.)

  • 5. Speichern Sie es als key.bat.
  • 6. Nun sollten Sie die Dateien loc.bat und key.bat im selben Verzeichnis wie den von Ihnen erstellten Ordner sehen.
  • 7. Nun müssen Sie nur noch auf die Datei loc.bat doppelklicken, und der Ordner sollte ein Symbol haben, das der Systemsteuerung ähnelt. Wenn Sie auf den Ordner klicken, sollte er Sie zur Systemsteuerung umleiten und Sie haben den Ordner gesperrt.
  • 8. Um es zu entsperren, doppelklicken Sie einfach auf die Datei key.bat und der Ordner sollte sich wieder in den Ordner verwandeln, den Sie zuerst erstellt haben.

Hinweis

Vielen Dank an Navaneeth für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps