Wie extrahiert man in Excel 2010 die Zeichenfolge aus dem N-ten und N+1-ten Vorkommen eines Zeichens?

Wie extrahiert man in Excel 2010 die Zeichenfolge aus dem N-ten und N+1-ten Vorkommen eines Zeichens?

Ich habe eine Tabelle mit einer Spalte, die eine Liste mit einem oder mehreren Datenbanknamen enthält. Leider dauert es lange, bis dieser Bericht geändert wird. Daher muss ich die Daten bearbeiten.

Die Spalte enthält alle Datenbanken, die für einen Datensatz spezifisch sind, in einer einzigen Zelle, getrennt durch Kommas. Ich muss diese Liste auseinandernehmen und jede Datenbank in eine separate Zelle setzen. Wichtiger Hinweis: Ich binnichtIn dieser Lösung ist die Verwendung von VBA-Makros/-Code zulässig.

Das erste ist einfach: Suchen Sie das erste Komma und setzen Sie alles links davon zurück. Bei den nächsten Punkten habe ich Probleme.

Ich habe eine Spalte erstellt, die zählt, wie viele Kommas sich in der Zelle befinden, sodass ich feststellen kann, ob mehrere Datenbanken aufgelistet sind.

Wie kann ich die nächsten angehen?

Antwort1

Dies ist keine Antwort auf eine Arbeitsblattfunktion, verwendet aber auch kein VBA.

Haben Sie versucht, die Funktion „Text in Spalten“ zu verwenden? In Excel 2010 ist dies eine der Schaltflächen im Menüband „Daten“.

  1. Wählen Sie Ihre Spalte aus.
  2. Klicken Sie auf die Schaltfläche „Text in Spalten“.
  3. Wählen Sie auf der ersten Seite des Assistenten „Getrennt“ und dann „Weiter“.
  4. Aktivieren Sie auf der zweiten Seite „Komma“, um es als Trennzeichen auszuwählen. Abhängig vom Format Ihrer Daten möchten Sie möglicherweise einige der anderen Zeichen aktivieren/deaktivieren.
  5. Sie können an dieser Stelle wahrscheinlich auf „Fertig stellen“ klicken, um Ihre Daten in Spalten aufzuteilen. Um die Spaltenformate zu ändern, möchten Sie möglicherweise aber auf die nächste Seite wechseln.

Antwort2

Mit Beispieldaten inA1, InB1eingeben:

=TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

und rüber kopieren:

Bildbeschreibung hier eingeben

BEARBEITEN #1:

Wenn wir mit Material in Spalten beginnenAUndBso was:

Bildbeschreibung hier eingeben

und führen Sie dieses kurze Makro aus:

Sub dural()
   Dim N As Long, i As Long, K As Long
   N = Cells(Rows.Count, "A").End(xlUp).Row
   K = 1

   For i = 2 To N
      v = Cells(i, "A").Value
      ary = Split(Cells(i, "B").Value, ",")
      For Each a In ary
         Cells(K, "C").Value = v
         Cells(K, "D").Value = a
         K = K + 1
      Next a
   Next i
End Sub

Wir werden am Ende Folgendes erhalten:

Bildbeschreibung hier eingeben

verwandte Informationen