Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellinhalt aufteilen

Zellinhalt aufteilen
02.06.2017 19:38:33
Michael
Hallo ihr EXCELenzen,
ich habe eine eingescannte Liste mit OCR in Word übertragen und möchte die nun in Spalten aufteilen.
Beholfen habe ich mir mit der Funktion Text in Spalten, Hilfsspalten etc.
Bin aber überzeugt dass das sauberer und schneller geht.
Nur fehlen mir dazu die erweiterten Kentnisse.
Ich kann Formeln und VBA anpassen.
Folgende Daten stehen in Zelle A2 bis An
ALBRECHT Marius (1962)
AMON Herta (oo 28.5.1966)
AUGUSTA Willibald Leopold (+ 9.8.1983)
BLAZEK Josef (5.5.1912)
BECKER Hedwig (oo 23.2.1920, + 25.11.1944)
BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)
Diese sollen so aufgeteilt werden.
Nachnamen wie AUGUSTA in Zelle B = Nachname
Vornamen wie Willibald Leopold in Zelle C = Vorname
Datum wie (1962) in Zelle D = Datum
Datum wie (* 10.10.1960) in Zelle E = Geburt
Datum wie (oo 28.5.1966) in Zelle F = Trauung
Datum wie (+ 9.8.1983) in Zelle G = Tod
Bitte um Hilfe
Mit Dank und freundlichen Grüssen
Michael

43
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt aufteilen
02.06.2017 20:17:52
ransi
Hallo Michael,
Ich hab mich mal dran versucht....
Teste mal selber ob da alle Eventualitäten abgedeckt sind.
Tabelle1

 ABCDEFG
1 VornameNachnameDatumGeburtTrauungTod
2 (\b[A-ZÄÖÜ][a-zäöü ]+)?\b[A-ZÄÖÜ][a-zäöü ]+(?= \()^[A-ZÖÄÜ]+\(\d{4}\)\* \d{1,2}\.\d{1,2}\.\d{4}oo \d{1,2}\.\d{1,2}\.\d{4}\+ \d{1,2}\.\d{1,2}\.\d{4}
3ALBRECHT Marius (1962)MariusALBRECHT(1962)   
4AMON Herta (oo 28.5.1966)HertaAMON  oo 28.5.1966 
5AUGUSTA Willibald Leopold (+ 9.8.1983)Willibald LeopoldAUGUSTA   + 9.8.1983
6BLAZEK Josef (5.5.1912)JosefBLAZEK    
7BECKER Hedwig (oo 23.2.1920, + 25.11.1944)HedwigBECKER  oo 23.2.1920+ 25.11.1944
8BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)Ilse ElisabethBLIHALL * 10.10.1960oo 11.10.1980 
9       
10       
11       
12       
13Nachnamen wie AUGUSTA in Zelle B = Nachname      
14Vornamen wie Willibald Leopold in Zelle C = Vorname      
15Datum wie (1962) in Zelle D = Datum      
16Datum wie (* 10.10.1960) in Zelle E = Geburt      
17Datum wie (oo 28.5.1966) in Zelle F = Trauung      
18Datum wie (+ 9.8.1983) in Zelle G = Tod      
19       

Formeln der Tabelle
ZelleFormel
B3=machs($A3;B$2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Public Function machs(strtext As String, myPattern As String)
    Dim Regex As Object
    Dim objMatches As Object
    Set Regex = CreateObject("VbScript.Regexp")
    With Regex
        .Pattern = myPattern
        .ignorecase = False
        If .test(strtext) Then
            machs = .Execute(strtext)(0).Value
            Else:
            machs = ""
        End If
    End With
End Function


ransi
Anzeige
AW: Zellinhalt aufteilen
02.06.2017 20:57:08
Michael
Hallo Ransi,
danke für die schnelle Antwort.
in deinem Beispiel sehe ich in den Zellen B2 bis G2 recht kryptische Zeichen.
Zum Beispiel in Zelle B2
(\b[A-ZÄÖÜ][a-zäöü ]+)?\b[A-ZÄÖÜ][a-zäöü ]+(?= \()
Ich habe Excel auf dem Mac, ist das ein Darstellungfehler?
Deinen Modul Code hab ich bei mir unter Module in Modul1 reinkopiert.
Wenn ich in B3 deine Formel =machs($A3;B$2) einsetze bekomme ich #WERT! angezeigt.
Michael
Regex und Mac?
02.06.2017 21:12:47
ransi
HAllo Moichael,
Hast alles richtig gemacht. Das muss so sein.
Das sind reguläre Ausdrücke die ich der Funktion als Argument mitgebe. Auf neudeutsch: regular epression, kurz Regex.
Regex ist ein sehr mächtiges Werkzeug wenn es darum geht Zeichenketten zu untersuchen und Zeichenmuster zu erkennen.
Läuft aber meines Wissens leider nicht auf dem Mac.
Vieleicht kann da mal jemand was zu sagen der sich damit auskennt.
ransi
Anzeige
AW: Regex und Mac?
02.06.2017 21:27:10
Michael
Hallo Ransi,
hab ja noch Excel 2003 auf Vista, Excel 2003 auf XP das wohl eher zu alt sein wird.
Da kann ichs zumindest ausprobieren.
Michael
AW: Regex und Mac?
02.06.2017 21:34:56
Michael
Hallo Ransi,
hab noch einmal nachgeschaut.
Auf Excel Info erscheint Version 15.32
Es ist Excel 365 Version 2016 für den MAC.
Michael
AW: Regex und Mac?
02.06.2017 21:41:00
ransi
Hallo,
HAbs grad getestet.
Der Code mit Excel 10 auf Vista funktioniert.
Der Mac kennt kennt die den Verweis auf die Regexmaschine nicht.
Hat glaub ich irgendwie damit zu tun das der Mac mit Active-X nix anfangen kann.
Darum funktioniert der Code nicht.
ransi
AW: Zellinhalt aufteilen
02.06.2017 21:44:25
Piet
Hallo Michael
anbei eine Neispieldatei die diese Aufgabe lösen sollte. Wenn nicht Thread bitte wieder offen stellen.
Problematisch sind Daten vor 1900, dann versagt das Programm bei Trauung und Tod für dieses Datum!
Es ist technisch bedingt das Excel Datum vor 1900 nicht als Datum verarbeiten kann, nur als Text!!
Das sieht man an dem von mir eingefügtem Test-Datum vor 1900, das pink markiert wird.
Würde mich freuen wenn die Aufgabe damit gelöst ist.
mfg Piet
https://www.herber.de/bbs/user/113994.xlsm
Anzeige
AW: Zellinhalt aufteilen
02.06.2017 21:54:38
Piet
Hallo Michael,
sollte der Code bei dir nicht laufen kann ich das Beispiel auch in Excel 2003 speichern.
Ich programmiere noch auf einem alten Laptop mit XP, habe auch noch Excel 2003 on Bord.
mfg Piet
AW: Zellinhalt aufteilen
03.06.2017 11:13:51
Michael
Hallo Piet,
danke, habs ausprobiert, funktioniert wunderbar, auch mit dem Datum vor 1900.
Das lz = 8 muss ich wegnehmen dann funktionierts richtig.
Hilfreich wär auch wenn bei den Daten das Zeichen *, oo, + davor stehen würde, allerdings zur Auswahl ja/nein.
Das ist aber eine Kleinigkeit die kann ich mit Verketten machen.
Ein kleines Problem hab ich grad noch entdeckt.
Wenn in Zelle A bei dem Namen noch einer in Klammer steht etwa BECKER (BÄCKER) dann stimmts nimmer.
Michael
Anzeige
AW: Zellinhalt aufteilen
03.06.2017 10:44:48
Piet
Hallo
@onur - Hier eine Version, wo man auch durchblickt: - Das habe ich nicht verstanden, was soll man durchblicken?
Right(w(i), l - 2) - Dieser Befehl ist mir völlig neu, hat mich sehr verblüfft. Den kannte ich -so- nicht.
Offenbar wird hier der Text Links abgeschnitten, statt Rechts. Wo findet man solches Wissen?
Ist dir aufgefallen das dein Datum in Wahrheit Text ist? Ich weiss nicht ob das so gewünscht ist?
mfg Piet
Anzeige
AW: Zellinhalt aufteilen
03.06.2017 11:06:32
onur
Hi Piet,
Ich meinte, eher durchzublicken für Anfänger als die RegEx-Lösung mit all den Ü´s und Ö´s.
Mit Datum hast du recht - Wenn man Datum braucht, muss man nur
CDate(Trim(ww)) statt ww schreiben.
Gruß
Onur
AW: Zellinhalt aufteilen
03.06.2017 11:17:48
Michael
Hallo Piet und Onur,
danke euch beiden, werde mir das genauer ansehen und wieder melden wenn ich was nicht umsetzen kann.
LG
Michael
Mit 3 Fmln unter UDF-Einschluss geht das so, ...
03.06.2017 03:00:38
Luc:-?
…Michael:
 ABCDEFG
1
PrimärdatenNachnameVornameDatumGeburtTrauungTodALBRECHT Marius (1962)AlbrechtMarius1962   AMON Herta (oo 28.5.1966)AmonHerta  28.5.1966 AUGUSTA Willibald Leopold (+ 9.8.1983)AugustaWillibald Leopold   9.8.1983BLAZEK Josef (5.5.1912)BlazekJosef5.5.1912   BECKER Hedwig (oo 23.2.1920, + 25.11.1944)BeckerHedwig  23.2.192025.11.1944BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)BlihallIlse Elisabeth 10.10.196011.10.1980 B2[:B7]:=GROSS2(Splint(MaskOn(A2;"gb");;1;1))C2[:C7]:=MaskOn(WECHSELN(A2;GROSS(B2);"");"mrk()";1)D2:G2[;D3:G7]: {=VSplit(WECHSELN(" ";" ";MaskOn(MaskOn($A2;"mrk()");"num";".");WENNFEHLER(VERGLEICH(TEIL(VSplit(MaskOn($A2;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1)))}
2
3
4
5
6
7
8
9
Ein vollständiges, aber nicht spezifiziertes Datum wird hier im Ggsatz zum Verfahren von onurs SubProzedur unter Datum einge­ordnet. Alle ZahlenAngaben bleiben hier Text*, weil auch unvollständige Angaben in den Primärdaten enthalten sind.
Die beiden UDFs findest du hier:
MaskOn https://www.herber.de/cgi-bin/callthread.pl?index=1344962#1345181
VSplit https://www.herber.de/bbs/user/99024.xlsm (in BspDatei)
* Falls Bedarf besteht, vollständige Datumsangaben vor dem 1.3.1900 in echte, aber ggf negative Zahlen umzuwandeln (und umgekehrt), empfehle ich die beiden UDFs DateToText und TextToDate: https://www.herber.de/cgi-bin/callthread.pl?index=1538435#1540095
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige
Hier nochmal 2 Varianten, ...
03.06.2017 16:36:30
Luc:-?
…Michael,
da die 1. eine weitere, nicht verlinkte UDF, Splint (Link in der Tabelle/G10), enthielt. Jetzt 1× nur mit der statt VSplit und pluraler MatrixFml, dafür die andere dann nur mit VSplit und allen Fmln als normale Einzelwert-Fmln:
 ABCDEFG
1
Variante1: PrimärdatenNachnameVornameDatumGeburtTrauungTodALBRECHT Marius (1962)AlbrechtMarius1962   AMON Herta (oo 28.5.1966)AmonHerta  28.5.1966 AUGUSTA Willibald Leopold (+ 9.8.1983)AugustaWillibald Leopold   9.8.1983BLAZEK Josef (5.5.1912)BlazekJosef5.5.1912   BECKER Hedwig (oo 23.2.1920, + 25.11.1944)BeckerHedwig  23.2.192025.11.1944BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)BlihallIlse Elisabeth 10.10.196011.10.1980 B2[:B7]:=GROSS2(Splint(MaskOn(A12;"gb");;1;1))C2[:C7]:=MaskOn(WECHSELN(A2;GROSS(B2);"");"mrk()";1)D2:G2[;D3:G7]: {=Splint(WECHSELN(" ";" ";MaskOn(MaskOn($A12;"mrk()");"num";".");INDEX(WENNFEHLER(VERGLEICH(TEIL(Splint(MaskOn($A12;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1);1)))}↑ plurale MatrixFml über 4 Spalten 1er ZeileSplintVariante2: PrimärdatenNachnameVornameDatumGeburtTrauungTodALBRECHT Marius (1962)AlbrechtMarius1962   AMON Herta (oo 28.5.1966)AmonHerta  28.5.1966 AUGUSTA Willibald Leopold (+ 9.8.1983)AugustaWillibald Leopold   9.8.1983BLAZEK Josef (5.5.1912)BlazekJosef5.5.1912   BECKER Hedwig (oo 23.2.1920, + 25.11.1944)BeckerHedwig  23.2.192025.11.1944BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)BlihallIlse Elisabeth 10.10.196011.10.1980 B12[:B17]:=GROSS2(INDEX(VSplit(MaskOn(A2;"gb"));1))C12[:C17]:=MaskOn(WECHSELN(A12;GROSS(B12);"");"mrk()";1)D12[:G17]:=INDEX(VSplit(WECHSELN(" ";" ";MaskOn(MaskOn($A12;"mrk()");"num";".");WENNFEHLER(VERGLEICH(TEIL(VSplit(MaskOn($A12;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1)));SPALTE(A1))← normale Fml
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Luc :-?
Anzeige
AW: nachgefragt ...
03.06.2017 19:22:38
...
Hallo Luc,
... hast Du Deine Ermittlungen mit denselben UDFs vorgenommen. auf du hier verwiesen hast?
(MaskOn hatte ich mir aus dem angegeben Link kopiert und VSplit habe ich: Vs1.1 -LSr -cd:20130904 -1pub:20130905herber -lupd:20130904n)
Mal abgesehen von Deinem Schreibfehler in A9 (Bezug auf $A12 anstelle auf $A2), erhalte ich mit der pluralen Matrixformel in E2:G9 Fehlerwerte bzw. nur die gleichen Daten wie in D2:D7.
Auch mit der "normalen Formel" aus A19 erhalte ich lediglich in D2:D7 bzw. D12:d17 korrekte Ergebnisse. In den anderen Zellen jedoch lediglich ="" bzw. #BEZUG!
Übrigens hast auch Du offensichtlich den Hinweis von Michael in seinem Beitrag von heute 11:13:51 an Piet noch überlesen und somit in Deiner Formel für B2:B7 noch nicht berücksichtigt.
Gruß Werner
.. , - ...
Anzeige
Hast recht, die Fmln sollten eigentlich so ...
04.06.2017 01:50:33
Luc:-?
…aussehen, Werner: B2[:B7]:=GROSS2(Splint(MaskOn(A2;"gb");;1;1)) C2[:C7]:=MaskOn(WECHSELN(A2;GROSS(B2);"");"mrk()";1) D2:G2[;D3:G7]: {=Splint(WECHSELN(" ";" ";MaskOn(MaskOn(A2;"mrk()");"num";"."); INDEX(WENNFEHLER(VERGLEICH(TEIL(Splint(MaskOn(A2;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1);1))) _ } B12[:B17]:=GROSS2(INDEX(VSplit(MaskOn(A12;"gb"));1)) C12[:C17]:=MaskOn(WECHSELN(A12;GROSS(B12);"");"mrk()";1) D12[:G17]:=INDEX(VSplit(WECHSELN(" ";" ";MaskOn(MaskOn($A12;"mrk()");"num";"."); WENNFEHLER(VERGLEICH(TEIL(VSplit(MaskOn($A12;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1)));SPALTE(A1)) Kommt vom Hinundhertauschen und dann nicht nochmal die Wiedergabe vgln… :-|
Die pluralen MatrixFmln reichen zeilenweise von D2:G2 bis D7:G7. Das soll auch die Schreibung D2:G2[;D3:G7] andeuten.
Deine VSplit-Version ist noch aktuell, sie ist die letztpublizierte! Inzwischen habe ich auch schon 1.5 (die dazwischen waren nur Ent­wicklungsstufen), aber da fehlt noch etwas, so dass ich die noch nicht gepostet habe. Mit der ist dann noch mehr möglich, ähn­lich wie bei SplitVx nur anders organisiert und variabler. Ich glaube aber nicht, dass der Fehler daran liegt, dass ich bereits mit 1.5 arbeite, denn solche Spezialfälle liegen hier ja nicht vor. Wie ich leider erst jetzt bemerke, hat mir/uns der Browser einen seiner üblichen Optimierungs­Streiche gespielt und einfach aus 4 Leerzeichen eines gemacht. Im Editor zeigte die Fml noch alle Leer­zei­chen! Wie es richtig ist, siehst Du jetzt oben (musste extra die <pre>-Tags benutzen, da auch HWHs Fml-Tags das nicht verhindern. Das nächste Mal nehme ich WIEDERHOLEN(" ";4), dann kann nichts schief gehen!
Stimmt, dass hatte ich nicht über-, sondern gar nicht gelesen, wobei ich das mit den Symbolen vor den Datumsangaben rundweg ablehne. Das soll er mal hübsch per Formatierung machen, wenn's denn unbedingt sein muss, sonst ist und bleibt das auch Text. Zu evtl Datumsangaben vor dem 1.3.1900 hatte ich bereits zuvor eine Fußnote angefügt. Doppelnamen und Titel dürften auch kein Problem sein, sofern alles, was zum Nachnamen gehört, in GB geschrieben wird und nicht mit Leerzeichen, sondern bspw Unter­strich getrennt ist. Der Rest außerhalb der Klammern mit den Datumsangaben gehört dann zum Vornamen. Dafür müsste die Fml in B12:B17ff dann so lauten:
=WECHSELN(GROSS2(INDEX(VSplit(MaskOn(WECHSELN(A21;" (";"_(";1);"gb";"_()"));1));"_";" ")
Dass dabei ggf das Leerzeichen vor den Datumsklammern durch _ ersetzt wird, ist hierbei ebenso irrelevant wie mehrere leer­zei­chen­getrennte Vornamen. Nur alles, was zum Nachnamen gehört und auch bewahrt wdn soll, darf keine Leerzeichen enthalten und muss in GB vorliegen! Im Falle von Namensvarianten in Klammern wie bei BECKER (BÄCKER) würden die jetzigen Fmln den Klam­mer­Ausdruck weglassen und die Vornamen wären auch richtig platziert, nur die Datumsangaben würden verrutschen, weil nun 2 Mar­kie­rungen von MaskOn behandelt wdn. Solche Namensvarianten sollten deshalb andere Klammern verwenden als die Datums­angaben. Das müsste zuvor korrigiert wdn.
FroPf! Luc :-?
Anzeige
AW: für die Beispieldaten stimmt es jetzt ...
04.06.2017 08:59:15
...
Hallo Luc,
... doch bzgl. der Zuordnung der Datumsangaben gibt es noch Probleme (z.B. für ...(* 10.10.1960,+ 11.10.1980)...) oder z.B. ... (1855, +17.3.1924).
Und ob die Nachnamen wirklich immer in Großbuchstaben geschrieben sind, bzw. ob Namen mit Adelstitel oder mit akademische Graden vorkommen können, sollte sich jetzt erst einmal Michael äußern.
Gruß Werner
.. , - ...
Ich vermute, ...
05.06.2017 04:00:17
Luc:-?
…Werner,
dass es sich um genealogische Listen handelt, die höchstwahrscheinlich keine akademischen Titel und nur dann Adelstitel ent­hal­ten, wenn sie integrierter Namens­bestandteil sind. Solche Titel sind nur in Adels­Genea­logien wichtig, in gewöhn­li­chen, speziell in US-ameri­kanischen, wdn sie wohl eher weg­ge­lassen. Nur seit den Zeiten der Weimarer Republik, die derartige Titel abgeschafft und zu Nachnamens­bestandteilen (nur die männliche Form, eine Freifrau wurde so zum Freiherrn!) umdeklariert hatte, könnten sol­che Pseudo­Titel in Nachnamen, zur Verzweiflung der zustän­di­gen Beamten, auch in US-Genea­logien auf­tauchen. Bei den besonders umfangreichen Beständen in SLC, Utah, dürfte das wohl noch weniger wahrscheinlich sein, denn die Mormonen dürften darauf erst recht keinen Wert gelegt haben. Aber, wer weiß…?
Uns wurde eine allgemeine Form vorgegeben, von der wir annehmen müssen, dass sie in diesen Dateien durch­gängig ist. Trotzdem könnten Abweichungen auf­treten, die dann aber als Fehler zu werten sind. Es ist eine jahrzehntealte EDV-Praxis, Primärdaten­Ma­te­rial auf Fehler und Plausibilität zu prüfen, bevor die Daten zur Aus­wertung frei­gegeben wdn. Das sollte hier auch geschehen, denn der Auf­wand, alle mög­lichen Varianten bei der Aus­wertung zu berück­sichtigen, ist ungleich höher als eine vor­herige Prüfung und Bereinigung! Aller­dings spielt es keine Rolle, ob nach dem Komma noch ein Leer­zeichen folgt oder nicht. Ein Symbol ohne nach­folgendes Leer­zeichen wäre auch kein Problem, wenn die Argu­mentie­rung von TEIL entsprd geändert wird.
Aber Du meinst ja etwas Anderes und das ist tat­sächlich ein Problem, das mir nicht gleich auffiel, weil die Original­Bspp das nicht her­gaben. Dadurch habe ich bemerkt dass die WECHSELN-Lösung suboptimal ist. Statt­dessen müsste der zu split­tende Text bes­ser nach den Posi­tionen zusam­men­gesetzt wdn, die die WENNFEHLER-Teil­Fml liefert, wobei die leeren durch Leer­zeichen auf­gefüllt wdn müssten. Daran arbeite ich noch. Da ich heute wenig Zeit habe, könnte es auch erst Dienstag oder Mittwoch wdn, bis ich die Korrektur anbieten kann.
Morrn, Luc :-?
AW: und ich meine ...
05.06.2017 18:01:54
...
Hallo Luc,
... Michael sollte sich zunächst erst einmal äußern, ob und was wirklich noch zu beachten wäre, bevor Du Dir Stress machst.
Gruß Werner
.. , - ...
Den hab' ich mir schon gemacht, ...
06.06.2017 18:34:05
Luc:-?
…Werner, ;-?
aber leider sind dabei in beiden Varianten sehr lange und in 2.Variante nur singulare MatrixFmln für die Datumsangaben herausgekommen:
 ABCDEFG
1
Variante1: PrimärdatenNachnameVornameDatumGeburtTrauungTodALBRECHT Marius (1962)AlbrechtMarius1962   AMON Herta (oo 28.5.1966)AmonHerta  28.5.1966 AUGUSTA Willibald Leopold (* 1903, + 9.8.1983)AugustaWillibald Leopold 1903 9.8.1983BLAZEK Josef (5.5.1912, + 1944)BlazekJosef5.5.1912  1944BECKER [BÄCKER] Hedwig (oo 23.2.1920, + 25.11.1944)Becker [Bäcker]Hedwig  23.2.192025.11.1944BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)BlihallIlse Elisabeth 10.10.196011.10.1980 B2[:B7]:=WECHSELN(GROSS2(INDEX(VSplit(MaskOn(WECHSELN(A2;" [";"_[";1);"gb";"_[]"));1));"_";" ")C2[:C7]:=MaskOn(WECHSELN(A2;GROSS(B2);"");"mrk()";1)D2:G2[;D3:G7]: {=VSplit(VJoin(WENNFEHLER(VERKETTEN(WIEDERHOLEN(" ";Temp(WENNFEHLER(VERGLEICH(TEIL(VSplit(MaskOn(A2;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1))-VSplit(LINKS(1&VJoin(Temp();"");                       ANZAHL(Temp()));"";1));VSplit(MaskOn(MaskOn(A2;"mrk()");"num";".")));"");"")&WIEDERHOLEN(" ";3))}plurale MatrixFml über 4 Spalten 1er ZeileVariante2: PrimärdatenNachnameVornameDatumGeburtTrauungTodALBRECHT Marius (1962)AlbrechtMarius1962   AMON Herta (oo 28.5.1966)AmonHerta  28.5.1966 AUGUSTA Willibald Leopold (+ 9.8.1983)AugustaWillibald Leopold   9.8.1983BLAZEK Josef (5.5.1912, + 1944)BlazekJosef5.5.1912  1944BECKER [BÄCKER] Hedwig (oo 23.2.1920, + 25.11.1944)Becker [Bäcker]Hedwig  23.2.192025.11.1944BLIHALL Ilse Elisabeth (* 10.10.1960, oo 11.10.1980)BlihallIlse Elisabeth 10.10.196011.10.1980 B12[:B17]:=GROSS2(INDEX(VSplit(MaskOn(A12;"gb"));1))C12[:C17]:=MaskOn(WECHSELN(A12;GROSS(B12);"");"mrk()";1)singulare MatrixFml (1zellig)D12[:G17]: {=INDEX(VSplit(VJoin(WENNFEHLER(VERKETTEN(WIEDERHOLEN(" ";Temp(WENNFEHLER(VERGLEICH(TEIL(VSplit(MaskOn($A12;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1))-VSplit(LINKS(1&VJoin(Temp                 ();"");ANZAHL(Temp()));"";1));VSplit(MaskOn(MaskOn($A12;"mrk()");"num";".")));"");"")&" ");SPALTE(A12))}Temp — VJoin in gleicher BspDatei wie VSplit !
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Die Spalten E:G kann man dann auch bedingt so formatieren, dass Folgendes herauskommt:
* 1903 -- ꚙ 28.5.1966 -- † 9.8.1983
Das nachstehende Protokoll zeigt die aktiven Bedingungen in E2:E7, F2:F7 und G2:G7 (in E12:G17 analog):
condition-active:none		condition-active:none		condition-active:none
condition-active:none		condition-active:1⇒$F$3""	condition-active:none
condition-active:1⇒$E$4""	condition-active:none		condition-active:1⇒$G$4""
condition-active:none		condition-active:none		condition-active:1⇒$G$5""
condition-active:none		condition-active:1⇒$F$6""	condition-active:1⇒$G$6""
condition-active:1⇒$E$7""	condition-active:1⇒$F$7""	condition-active:none
Die FormatAngabe sähe dann so aus: Standard;;;\* @ -- Standard;;;\ꚙ @ -- Standard;;;\† @
Das ist hier nicht zu sehen, weil mein Tool BedingtFormat-Darstellung noch nicht enthält.
Gruß, Luc :-?
AW: dazu ...
06.06.2017 19:09:22
...
Hallo Luc,
... solltest Du vielleicht doch Deine spez. Beispieldatei (mit Deinen eingebundenen UDFs) einstellen, denn ich erhalte für die singulare Matrixformel in F:G einige #Bezug! Fehlermeldungen.
Gruß Werner
.. , - ...
Das dürfte mal wieder an der BrowserOptimierung …
06.06.2017 19:57:31
Luc:-?
…liegen, Werner;
in Variante 2 habe ich das Leerzeichen-Wiederholen vergessen (was natürlich in bd Varianten auch durch 3 Leerzeichen ersetzt wdn kann):
D12[:G17]: {=INDEX(VSplit(VJoin(WENNFEHLER(VERKETTEN(WIEDERHOLEN(" ";
Temp(WENNFEHLER(VERGLEICH(TEIL(VSplit(MaskOn($A12;"mrk()");",");2;2);{"* "."oo"."+ "};)+1;1))
-VSplit(LINKS(1&VJoin(Temp();"");ANZAHL(Temp()));"";1));VSplit(MaskOn(MaskOn($A12;"mrk()");"num";
".")));"");"")&WIEDERHOLEN(" ";3));SPALTE(A12))}
Außerdem bitte die Leerbereiche in diesen Fmln herauslöschen. Mein HTML-Tool ersetzt die durch geschützte Leerzeichen, was evtl zu Fehlern führen könnte. Die Temp-Konstrukte sollten übrigens auch durch benannte Fml-Teile ersetzbar sein.
Übrigens hat Michael ja jetzt eine abschließende AW gegeben und eine (korrigierte?) Datei eingestellt. Aber nun reicht's ja, es sei denn, Dir fällt noch eine elegantere FmlLösung ein… ;-)
Ich muss mich jetzt erst mal wieder um die Baustelle(n) eines wesentlich sympathischeren Daniels kümmern… ;-)
Luc :-?
AW: nunmehr ...
06.06.2017 20:20:01
...
Hallo Luc,
... gibt es zumindest keine Fehlermeldungen mehr.
Allerdings mit z.B. ... (1866 + Juni 1917) oder ... (1855, +17.3.1924) gäbe es schon noch Probleme. Aber diese hatte ja auch nur ich in meinen Testdaten zu stehen.
Gruß Werner
.. , - ...
Richtig...! ;-) owT
08.06.2017 15:37:42
Luc:-?
:-?
AW: nur Formeln, keine Hilfsspalten, VBA oder UDFs
03.06.2017 13:10:18
Daniel
Hi
für die gezeigten Beispieldaten so:
https://www.herber.de/bbs/user/114000.xlsx
vorausgesetzt wird, dass bekannte Daten (+*oo) auch vollständig mit Tag, Monat und Jahr 4-Stellig angegeben sind.
Als Trenner zwischen Vor- und Nachname wird das erste Leerzeichen verwendet.
Gruß Daniel
AW: dazu ...
03.06.2017 16:55:35
...
Hallo Daniel,
... für die eingangs angegebenen Beispieldaten ist auch mE eine reine Formellösung immer ein gute Alternative.
Du hast aber offensichtlich den Hinweis von Michael in seinem Beitrag von heute 11:13:51 an Piet noch überlesen.
Doch ...
@ Hallo Michael,
Ausnahmen von der "Regel" (die Du mit Deinen Beispielangaben gegeben hast) im Nachgang zu nennen, ist für deren Berücksichtigung oft mit erheblichen zusätzlichen Aufwand verbunden. Du solltest deshalb solche immer gleich offenlegen. In Deinem Fall wäre z.B. noch zu klären, ob und wenn ja noch andere Namensangaben vorkommen können, wie z.B.: Namen mit Adelstitel oder mit akademische Graden etc.
Außerdem wäre u.a. auch Deinerseits eine Aussage notwendig, ob es auch andere Zeitangaben-Kombinationen wie z.B.: "Name/n Vorname/n (1866 + Juni 1917)" geben kann?
Gruß Werner
.. , - ...
AW: dazu ...
03.06.2017 22:29:42
Daniel
aus dem schwammigen Hinweis lässt sich noch nichts konkretes ableiten.
für die Beispieldaten passt es.
Gruß Daniel
AW: dazu ...
05.06.2017 19:00:57
Michael
Hallo Daniel und alle Helferlein,
es gibt bei den Namen nur noch die Variante ohne Vorname.
Ein paar Ausreisser hab ich noch entdeckt aber die kann ich vorher extra richten.
Deshalb werde ich wohl die Formeln verwenden damit das Macro nicht stolpert und murkst.
Bitte nicht länger damit beschäftigen es lohnt sich nicht.
Ausser jemand kann das selbst einmal gebrauchen.
Ich häng mal die Daten an die nach dem OCR Lesen und Bereingen in Excel reinkopiert wurden.
https://www.herber.de/bbs/user/114035.xls
Herzlichen Dank für eure Hilfe, ich hoffe daraus zu lernen, zumindest ein paar Tips umzusetzen.
LG
Michael
AW: Zellinhalt aufteilen
03.06.2017 15:01:41
Luc:-?
Benutze FORUMSLISTE, Michael,
dann siehst du auch, dass du auch noch - inzwischen 2 - andere AWen hast! :-|
Luc :-?
AW: zu Deinem Vorschlag ...
03.06.2017 16:58:05
...
Hallo Luc,
... Du hast noch keine Quellenhinweis auf die von Dir in Deiner ersten Formel verwendete Splint UDF gegeben, so dass diese Michael gar nicht testen konnte.
Gruß Werner
.. , - ...
Das war ein Versehen, ...
03.06.2017 17:41:19
Luc:-?
…Werner,
sollte eigentlich durch INDEX(VSplit(…);…) ersetzt wdn. War mir erst aufgefallen, als ich noch eine zusätzliche NormalFml-Variante entwickeln wollte (s.oben).
Gruß + FroPf! Luc :-?
AW: luc, ich bin erstaunt...
03.06.2017 22:30:40
Daniel
... wenn WF das sieht....
Gruß Daniel
Den Grund kennst du! WF wird auch nur ...
03.06.2017 23:55:58
Luc:-?
…bei häufigeren Wiederholungen - und dann womöglich noch mit Fehlern - diesbzgl aktiv!
Luc :-?
AW: Den Grund kenne ich...
04.06.2017 01:24:42
Daniel
... es ist nicht gut für das Ego, wenn man kein Feedback auf seinen Beitrag bekommt.
da kann man schon mal von seinen Prinzipien abweichen.
Gruß Daniel
Ärgert dich so etwas etwa nicht, ...
04.06.2017 03:13:10
Luc:-?
…Daniel,
das sieht mir aber nicht unbedingt so aus! Außerdem lässt du ja wohl nur ungern eine, wenn auch noch so unpassende Gelegen­heit aus, eine unnütze Diskussion anzuzetteln, auch wenn's dich gar nicht betrifft und du letztlich auch nicht(s) gewinnen kannst. (Meinen) Respekt verdienst du dir so jedenfalls nicht…
Meine seltenen Bemerkungen zu einer derartigen NichtAchtung durch einen Fragesteller sehen idR ja auch anders aus, was schon mal andeutet, dass ich gewisse deiner Gewohnheiten netterweise auch bei manchem Frager vermuten will, obwohl hier weniger Grund zu diesbzgl Annahmen vorzuliegen schien…
Luc :-?
AW: Ärgert dich so etwas etwa nicht, ...
04.06.2017 13:54:13
Daniel
doch auch.
aber wenn ich sowas mache würde, würdest du mit warscheinlich wieder vorhalten, dass ich damit nur mein Ego kitzeln wollte.
So'n Quatsch! Das machen andere ja auch ...
05.06.2017 04:04:05
Luc:-?
…und hier hatte ich auch deinen BT eingeschlossen (deshalb 2, mein 2. kam erst später dazu), denn das ist ja ein generelles Problem, das ich nicht so lakonisch sehe wie zB Hajo…
Luc :-?
AW: ja, aber andere...
05.06.2017 17:45:10
Daniel
... werfen anderen nicht vor, sie würden hier nur posten, um ihr Ego zu befriedigen.
Wer das machst, sollte nicht so aggressiv um Aufmerksamkeit für seine eigenen Beiträge betteln.
Ach so, 'betteln'! Und du wirfst Anderen nun ...
06.06.2017 18:43:17
Luc:-?
…rein gar nichts vor → das reinste Unschuldslamm… :->
Lass dir einfürallemal gesagt sein, dass mir solche missgünstigen Möchtegern-Überflieger wie du gern „im Mondschein begegnen“ können! Weiter gibt's nichts zu sagen, außer Zähl' woanders Erbsen…!
Luc :-?
AW: Du hast immer noch nicht kapiert...
07.06.2017 12:38:37
Daniel
... dass es um 2 Tätigkeiten in Kombination geht, nicht nur um eine.
natürlich kann man anderen Menschen Sachen vorwerfen, nur sollte man sich dann auch selbst daran halten.
Ich muss gar nichts 'kapieren', denn du bist ...
07.06.2017 18:38:41
Luc:-?
…nicht mein Lehrer! Ich verbitte mir demzufolge einfürallemal diesbzgl Bemerkungen und Formulierungen deinerseits! Wer von anderen nicht lernen will und meint schon alles Wichtige zu wissen, hat kein Recht auf derartiges Tun! Und deine Motive sind mir ohnehin fremd…
Im Übrigen „bettle“ ich nicht, sondern fordere, was dein und mein und aller anderen AWer Recht ist. Deine Unterstellungen kannst du gern für dich behalten und auf dich selbst anwenden. Den „Moralapostel“ nehme ich dir auch nicht ab. Solche Typen sind mir im Laufe meines Lebens abundzu schon begegnet. Heute muss ich die nicht mehr ertragen. Und dass ich dir überhaupt noch ant­worte, hat einerseits mit einer gewissen Gutmütigkeit und andererseits mitunter mit der Hoffnung zu tun, doch noch eine sachliche Diskussion führen zu können. Aber du argumentierst mit der Hartnäckigkeit von Neocon-Trollen, die unbedingt ihre Ansichten und Ver­haltensweisen durchsetzen wollen, koste es auch, was es wolle. Das ist mir nun endgültig zu blöd und du hast bei mir als Erster den Status einer persona non grata erreicht. Kannste dir ggf was drauf einbilden… :->>
Luc :-?
Da hast du natürlich recht...
07.06.2017 19:09:17
Daniel
... du musst dir von mir genauso wenig sagen lassen, wie ich mir von dir was sagen lassen muss.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige