Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1360to1364
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

Matrix-Formel verkürzbar?

Matrix-Formel verkürzbar?
19.05.2014 17:08:16
David
Hallo zusammen.
ich muss einen Text per Formeln "umgestalten". Die einzelnen Zellen enthalten z. Bsp.
   1. entgeltlich erworbene
Konzessionen, gewerbliche
Schutzrechte und ähnliche
Rechte und Werte sowie
Lizenzen an solchen
Rechten und Werten
Ich benötige den Text erst hinter der führenden Zahl. Nun kann vor der Zahl eine Anzahl von Leerzeichen sein, max. 6-7, manchmal weniger. Im Text sind auch immer mal wieder mehrfache Leerzeichen, die aber erhalten bleiben müssen. Somit fällt schon mal GLÄTTEN aus.
Meine Formel funktioniert im Prinzip, ich frage mich nur, ob das auch einfacher geht:
{=TEIL(TEIL(B3;KKLEINSTE(WENN(CODE(TEIL(B3;{1.2.3.4.5.6.7.8};1))>32;
{1.2.3.4.5.6.7.8};"");1);999);SUCHEN(" ";TEIL(B3;
KKLEINSTE(WENN(CODE(TEIL(B3;{1.2.3.4.5.6.7.8};1))>32;
{1.2.3.4.5.6.7.8};"");1);999))+1;999)}
Ich prüfe sozusagen die ersten 8 Zeichen auf ihre Codezahl und wenn eine größer als 32 (Leerzeichen) ist, dann ist das das erste "richtige" Zeichen. Darauf den Text verkürzt um die führenden Leerzeichen und mit SUCHEN das nächste gefunden, usw.
Ich denke mal, wer in der Lage ist, mir hier weiterzuhelfen, kann die Formel auch lesen. ;-)
Ich vermute einfach mal, das ich - wie so oft - viel zu umständlich denke.
Die Gefahr ist, das bei größeren Datenmengen der Rechner in die Knie geht wegen der Matrixformel.
Danke vorab und Gruß
David

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=TEIL(B3;FINDEN(".";B3;1)+2;999)
19.05.2014 17:56:26
Christian
Hallo David,
dein Ansatz funktioniert bei mit auch als "normale" Formel - geht aber sicher auch einfacher.
Ansonsten: wenn hinter der Zahl immer ein Punkt kommt, dann zB.
=TEIL(B3;FINDEN(".";B3;1)+2;999)
Gruß
Christian

AW: =TEIL(B3;FINDEN(".";B3;1)+2;999)
19.05.2014 17:58:36
David
Hi Christian,
manche Texte haben römische Ziffern und manche gar keine, also auch keinen Punkt, nur viele Leerzeichen am Anfang. Dein Tipp hilf also leider nicht.
Trotzdem vielen Dank.
Gruß
David

Am Anfang Leerzeichen oder arabisch/römische Zahl
19.05.2014 18:36:10
Christian
David,
dein Ansatz funktioniert bei "manche Texte haben gar keine Ziffern, also auch keinen Punkt, nur viele Leerzeichen am Anfang" auch nicht, da dann das erste Wort abgeschnitten wird.
Tipp:
Um hier alle Sonderfälle zu berücksichtigen, würde ich dann doch eher auf VBA zurückgreifen - schau dir mal "Regular Expressions" von VbScript an.
ich lass die Frage offen.
Gruß
Christian

Anzeige
AW: Am Anfang Leerzeichen oder arabisch/römische Zahl
19.05.2014 18:39:00
David
Da die Sache auch von anderen als mir händelbar sein soll, will ich kein VBA einbauen. Aber ist auch egal, ich hab mich jetzt erst mal damit arrangiert.
Wenn noch jemandem was einfällt, gut, wenn nicht, dann auch gut. :-)
Danke für's mitdenken.
Gruß
David

verkürzt ...
19.05.2014 18:55:09
der
Hallo David,
... z.B. so: =TEIL(B3;KKLEINSTE(WENN((TEIL(B3;ZEILE(1:10);1)=" ")*(TEIL(B3;ZEILE(2:11);1)" ");ZEILE(2:11));2);999)
Berücksichtigt auch römische Ziffern/Zahlen, vorausgesetzt der Text beginnt mind. beim 11. Zeichen. Sonst die Formel entsprechend anpassen
Gruß Werner
.. , - ...

Anzeige
... oh, natürlich als {}-Formel eingeben owT
19.05.2014 18:56:16
der
Gruß Werner
.. , - ...

noch kürzer ...
20.05.2014 08:13:17
der
Hallo David,
... meine gestrige Aussage: "... Berücksichtigt auch römische Ziffern/Zahlen ..." bezog sich auf die gestern von mir nicht eingestellte Formel:
{=TEIL(B4;MIN(WENN(CODE(TEIL(B4;ZEILE($1:$11);1))>57;ZEILE($1:$11)));999)}
die eben nur führende arabische Zahlen berücksichtigt.
Gruß Werner
.. , - ...

und nun noch eine Formel ohne {} ...
20.05.2014 08:26:23
der
Hallo David,
... die auch beliebigen Zahlen-"Präfix" mit einer dem folgenden beliebig Anzahl von Leerzeichen vor dem Suchtext berücksichtigt, solange in den ersten 6 Zeichen des Text nicht schon wieder mehr als ein Leerzeichen hintereinandersteht.
Formel ist natürlich wieder etwas länger als meine {}-Formeln, da aber ohne {} Ressourcenschonender:
=TEIL(B4;FINDEN(LINKS(GLÄTTEN(TEIL(B4;FINDEN(" ";TEIL(B4;FINDEN(LINKS(GLÄTTEN(B4);1);B4);999)) +FINDEN(LINKS(GLÄTTEN(B4);1);B4);999));6);B4);999) 

Gruß Werner
.. , - ...

Anzeige
AW: und nun noch eine Formel ohne {} ...
20.05.2014 09:48:27
David
Vielen Dank, Werner!
Gruß
David

AW: und nun noch eine Formel ohne {} ...
20.05.2014 11:34:33
David
Hi Werner,
leider bin ich noch auf ein weiteres Problem gestoßen:
       Summe Sonstige
Vermögensgegenstände
Bei dieser Konstellation OHNE arabische/römische Ziffern am Anfang bügelt er das "Summe" mit weg, was ich in dem Fall eigentlich benötigen würde.
Gruß
David
PS:
Hier nochmal alle Varianten:
arabische Ziffer am Anfang: (kann wechseln, z. Bsp. 1,3 etc)
      2. technische Anlagen und
Maschinen

1 Wort, führende Leerzeichen:
       Vorräte

mehrere Wörter, führende Leerzeichen, mehrere Leerzeichen im Text
       Forderungen aus Lieferungen
und Leistungen (werthaltig und
zweifelhaft)

führendes "Summe":
     Summe Forderungen aus
Lieferungen und Leistungen

führende römische Ziffer:
    I. Jahresüberschuss 
Und alles außer römischen/arabischen Ziffern soll stehen bleiben.
Scheiß Datev!!! :-(

Anzeige
AW: und nun noch eine Formel ohne {} ...
20.05.2014 13:14:03
David
Nach einigem Analysieren und Nachdenken, hab ich das doch noch vereinfachen können.
WENN(ISTFEHLER(SUCHEN(".";$B3));TEIL($B3;SUCHEN(LINKS(GLÄTTEN($B3);1);$B3);999);TEIL($B3;SUCHEN(".";$B3)+2;999))
Der Punkt ist bei Zahlen, egal ob römisch oder arabisch, immer da und wenn nicht soll er halt nur den gesamten Text ohne die führenden Leerzeichen nehmen.
Mit meinem jetzigen Datenbestand werden alle Fälle abgedeckt.
Auf jeden Fall noch mal vielen Dank, Werner. Auf den Ansatz, nach dem Glätten einfach das erste Zeichen im ursprünglichen Text zu suchen, bin ich nur durch dich gekommen. :-)
Gruß
David
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige