[gelöst] Matrixformel mit RegExp

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] Matrixformel mit RegExp

Re: Matrixformel mit RegExp

von F3K Total » So, 02.02.2014 21:50

Hallo,
Karolus hat geschrieben:Warum entfernst du nicht einfach die störenden Zeichen aus Spalte C per →suchen und ersetzen, und arbeitest dann mit SVERWEIS ??
Weil die Zeichen benötigt werden. Sie kennzeichnen mehrere Entitäten eines gleichen Gegenstandes.
Gruß Rik

Re: Matrixformel mit RegExp

von Karolus » So, 02.02.2014 21:08

Hallo

Warum entfernst du nicht einfach die störenden Zeichen aus Spalte C per →suchen und ersetzen, und arbeitest dann mit SVERWEIS ??

Karolus

Re: Matrixformel mit RegExp

von F3K Total » So, 02.02.2014 20:12

Hallo mikeleb,

vielen Dank für den Tip.
Ich habe es inzwischen mit 500/6000 Zeilen ausprobiert. Leider wird es mit den 6000 Matrixformeln unhandlich. Das Laden der Datei dauert etwa 5 Minuten.
Ich hatte ja oben erwähnt, dass ich bereits eine Makro Lösung hatte, die braucht für den gleichen Umfang etwa 30 Sekunden.
Im Gegenteil zu meinen Erwartungen ist hier ausnahmsweise mal die Makro Lösung die schnellere.

beste Grüße von Rik

Re: Matrixformel mit RegExp

von lorbass » So, 02.02.2014 20:09

mikeleb hat geschrieben:Wenn es nun keinen Preis von 0 € gibt, kann man den Ausgabezellen den Formatcode #.##0,00 [$€-407];[ROT]-#.##0,00 [$€-407];"" verpassen, damit Nullwerte nicht angezeigt werden.
Statt der leeren Zeichenkette »""« kannst du mit einem weiteren Semikolon die Ausgabe sowohl des Nullwertes als auch von Texten unterdrücken, die von Formeln in bestimmten Situation gerne statt eines numerischen Wertes ausgegeben werden.
  • #.##0,00 [$€-407];[ROT]-#.##0,00 [$€-407];;
Gruß
lorbass

Re: Matrixformel mit RegExp

von mikeleb » So, 02.02.2014 19:43

Hallo,

ich habe gerade noch was gefunden. Die Geschichte mit dem Leerzeichen dient ja "nur" dazu, im Falle des Nichtvorhandenseins des Suchbegriffs keine 0 anzuzeigen.
Wenn es nun keinen Preis von 0 € gibt, kann man den Ausgabezellen den Formatcode #.##0,00 [$€-407];[ROT]-#.##0,00 [$€-407];"" verpassen, damit Nullwerte nicht angezeigt werden.
Dann "reicht" als Matrixformel:

Code: Alles auswählen

=VERSCHIEBUNG($B$1;MAX((1-ISTFEHLER(SUCHEN("^[^0-9a-zA-Z]*"&($A$2:$A$4)&"[^0-9a-zA-Z]*$";C2)))*ZEILE($A$2:$A$4))+WENN(AKTUELL()=0;1000;-1);0)
Dabei steht die 1000 für die (mit Sicherheit) leere Zelle in Spalte B.

Re: Matrixformel mit RegExp

von F3K Total » So, 02.02.2014 18:19

Hallo mikeleb,
wieder mal ein Hammer!
Habe die Formel gerade zerlegt, und verstanden.
Vielen lieben Dank!
Jetzt probiere ich es mal mit 500 Suchbegriffen und 6000 Suchzeilen ...
Beste Grüsse von Rik

Re: Matrixformel mit RegExp

von mikeleb » So, 02.02.2014 17:34

Hallo,

mit einem zusätzlichen Leerzeichen konnte ich die Formel ein wenig verkürzen 8)
Dateianhänge
matrixformel_suchen.ods
(12.05 KiB) 45-mal heruntergeladen

Re: Matrixformel mit RegExp

von mikeleb » So, 02.02.2014 15:25

Hallo F3K Total,
Das muss doch per Matrixformel gehen?
Hat da jemand eine Idee?
Ja und ja! :) , wenn ich das Problem richtig verstanden habe.
War schon heftig. Den regulären Ausdruck musste ich etwas ergänzen, ansonsten würde ein Eintrag ohne führendes oder folgendes Sonderzeichen nicht gefunden werden.
Dateianhänge
matrixformel_suchen.ods
(11.45 KiB) 46-mal heruntergeladen

[gelöst] Matrixformel mit RegExp

von F3K Total » So, 02.02.2014 11:36

Hallo zusammen,
ich habe schon vieles probiert, finde leider keine Lösung.
Gegeben, drei Spalten A,B,C
  1. eindeutige Teilenummern
  2. Zahlen zu den Teilenummern
  3. Liste von Teilenummern, umgeben von Sonderzeichen oder nicht
Ein Beispiel:

Code: Alles auswählen

A          B  C           D
12adf   3,50  #12adf;  3,50
433gh   2,40  #12adf   3,50 
43     11,70  #433gh;  2,40
       13,00  433gh    2,40   
       14,50  #506.   
       16,00  #62;;   
       19,80  #43     11,70
       12,40  #43;    11,70
Gesucht ist das Ergebnis in Spalte D, also allen Teilenummern aus Spalte A, die in der Liste in Spalte C gefunden werden, soll die Zahl aus Spalte B zugeordnet werden. Dabei soll 43 nicht bei 433gh gefunden werden.
Als Such-RegExp habe ich in einem Makro diese erfolgreich verwendet:

Code: Alles auswählen

[^0-9a-zA-Z]" & A1 & "[^0-9a-zA-Z]
Das muss doch per Matrixformel gehen?
Hat da jemand eine Idee?

Gruß Rik

Nach oben