[gelöst] Matrixformel mit RegExp

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

[gelöst] Matrixformel mit RegExp

Beitrag von F3K Total »

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
Zuletzt geändert von F3K Total am Mo, 03.02.2014 17:05, insgesamt 1-mal geändert.
mikeleb
*******
Beiträge: 1415
Registriert: Fr, 09.12.2011 16:50

Re: Matrixformel mit RegExp

Beitrag von mikeleb »

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
Gruß,
mikeleb
mikeleb
*******
Beiträge: 1415
Registriert: Fr, 09.12.2011 16:50

Re: Matrixformel mit RegExp

Beitrag von mikeleb »

Hallo,

mit einem zusätzlichen Leerzeichen konnte ich die Formel ein wenig verkürzen 8)
Dateianhänge
matrixformel_suchen.ods
(12.05 KiB) 44-mal heruntergeladen
Gruß,
mikeleb
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Matrixformel mit RegExp

Beitrag von F3K Total »

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
mikeleb
*******
Beiträge: 1415
Registriert: Fr, 09.12.2011 16:50

Re: Matrixformel mit RegExp

Beitrag von mikeleb »

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.
Gruß,
mikeleb
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Matrixformel mit RegExp

Beitrag von lorbass »

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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Matrixformel mit RegExp

Beitrag von F3K Total »

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
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Matrixformel mit RegExp

Beitrag von Karolus »

Hallo

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

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Matrixformel mit RegExp

Beitrag von F3K Total »

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
Antworten