Frage

Ich habe eine Frage zu einem Verfahren auseinander etwas zu brechen. Ich erhalte diese Excel-Tabelle, die mich mit Daten zur Verfügung stellt, die ich brauche einen Bericht zu tun. Es ist ziemlich einfach und geradlinig, aber es gibt einen bestimmten Teil davon, der mir etwas Kummer gibt.

In der Excel-Tabelle gibt es eine Spalte, die „Beteiligten“ in einer Spalte aufgeführt sind. Es ist in der Regel etwa 12 Personen der Namen durch Kommata getrennt, sondern auch in Klammern dahinter OrgID hat:

Joe Smith (DIV32), John Doe (DIV12), roger andrews (DIV14, DIV67, DIV01), etc

und ich brauche diese in einzelne Spalten zu brechen, so dass sie einzelne Felder sein werden, wenn ich sie in dem Zugang zu importieren. Ich weiß, wie in Excel „Text in Spalten“, aber das oben geschraubt werden, wenn jon doe (DIV13, DIV54, etc.), mehr als eine Teilung hat.

Nicht sicher, wie dies in Zugang zu tun, sondern würde wissen, gerne.

Wer hat entweder eine Excel-Formel, oder Zugriffsmethode für diese bitte?

War es hilfreich?

Lösung

Ich nehme an, Sie diese in Ihre Datenbank importieren. Wenn nicht, ist es wahrscheinlich einfacher, wenn Sie das tun, auch wenn es vorübergehend; und erneuert jedes Mal, Sie haben den Bericht auszuführen

Sie werden drei Tabellen am Ende mit dieser Situation stellen

  1. theParty (Person)
  2. theOrganisation
  3. thePartyOrg

theParty mit hat eine ID-Spalte

theOrganisation wird über eine eigene ID-Spalte

thePartyOrder wird über eine eigene ID-Spalte, einen für theParty und ein für theOrganisation

Wenn Sie eine Partei darstellen wollen als Mitglied und Organisation bringen, müssen Sie die Partei stellen Sie sicher, existiert / erstellt wird; die Organisation existiert / erzeugt wird, und Henne einen Eintrag in der thePartyOrg Tabelle zu erstellen, die an beiden Punkten.

Da diese Verbindungsinformationen nur als Text in einer einzigen Spalte gespeichert ist, ist es wahrscheinlich ein am einfachsten zu lesen es zuerst alle in eine Staging-Tabelle und dann diese Spalte in VBA analysiert

Andere Tipps

Hier ist eine Lösung:

Ich habe eine Funktion geschrieben, die alle Vorkommen eines Strings durch strReplace strfind ersetzt, aber nur, wenn strfind tritt in Klammern. So können Sie etwas alle „“ Zeichen von anderen (zum Beispiel ‚*‘), dann führen Sie Excel Text in Spalten, dann ersetzen Sie das ‚*‘ 's mit ‚‘ wieder.

ersetzen
Function replace_paren(strSource As String, strFind As String, strReplace As String) As String
    ' Within strString, replaces any occurrence of strFind with strReplace *IF* strFind occurs within parentheses '

    Dim intOpenParenIndex As Integer
    Dim intCloseParenIndex As Integer

    Do
        intOpenParenIndex = InStr(intCloseParenIndex + 1, strSource, "(")
        intCloseParenIndex = InStr(intOpenParenIndex + 1, strSource, ")")
        If intOpenParenIndex = 0 Then
            Exit Do
        End If

        Mid(strSource, intOpenParenIndex, intCloseParenIndex - intOpenParenIndex) = Replace(Mid(strSource, intOpenParenIndex, intCloseParenIndex - intOpenParenIndex), strFind, strReplace)
    Loop

    replace_paren = strSource

End Function

So sind die Schritte:

1) Kopie dieses Makro in ein Modul in Ihrer Excel-Arbeitsmappe

2) Lassen Sie uns sagen, dass Ihre Zeichenfolge in Spalte B in Spalte A ist, die Funktion eingerichtet, um die Kommas wie diese zu ersetzen

= replace_paren (A1, "", "*")

Füllen Sie

3) die Spalte die Formel nach unten

4) Kopieren Sie die Spalte als Werte

5) Verwendung von Excel Text in Spalten die Spalte „“ als Trennzeichen

zu analysieren

6) Verwenden Sie replace_paren wieder alle Vorkommen von "*" durch ersetzen ""

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top