Ziffern- und Zeichenfolge in Zelle ersetzen
#1
Moin,

ich versuche gerade ein Template für eine regelmäßige zu erstellende Datentransformation anzulegen. An dieser Aufgabe scheitere bisher:

Im Datensatz habe ich eine Zelle (A) in dieser Form:

6ZIFFERN / 6ZIFFERN / (Wort)

In meinem Ausgabe Template möchte ich das ganze folgendermaßen transformieren und in Zelle (B) darstellen:

6ZIFFERN PRODUKTNAME / 6ZIFFERN PRODUKTNAME / (WORT)*

Den Produktnamen lese ich via SVERWEIS aus dem Datensatz aus.

Problem:
Die Anzahl der 6ZIFFERN ist verschieden, zwischen 1- 10 i.d.R., das (WORT) hat 2 Varianten oder ist nicht vorhanden.

Mein Lösungsansatz bisher:
C&P des Inhalts der besagten Zelle (A) in eine Zelle eines neuen Datenblattes. Dort trenne ich die Daten über die Funktion "Text in Spalten...". Ich schaffe es dann über eine Verkettung entweder die Zahlen mit dem Produktnamen zu ergänzen:

VERKETTEN([@Spalte2];" ";SVERWEIS([@Spalte2];Tabelle68[@[6ZIFFERN]:[Artikelbezeichnung]];2;FALSCH);" ")  Ergebnis Zelle (B): 6ZIFFERN PRODUKTNAME sofern in der Zelle 6ZIFFERN stehen, sonst Leerzeichen

oder

WENN([@Spalte2]="(WORT1)";"(WORT1)*";"")&WENN([@Spalte2]="(WORT2)";"(WORT2)*";"") Ergebnis Zelle (B): (WORT1)* oder (WORT2)* sofern in der Zelle WORT1/2 steht, sonst nichts.

Ich schaffe es nicht diese drei Bedingungen so zu verknüpfen dass dabei das herauskommt was ich möchte. Darüberhinaus muss die gesamte Formel wegen meines angedachten Lösungsweges auf ca. 10 Zellen hintereinander angewendet werden. Es gibt vermutlich sehr viel elegantere Lösungen...

Ich würde mich über Ideen oder bessere Lösungswege freuen! Von vba habe ich bisher leider keine Ahnung, würde es aber gerne lernen.
Top
#2
Hallo,

damit man das nicht nachbauen muss, stelle doch mal eine Beispieldatei ein. 

Hinweis: mehrere Begriffe in einer Zelle sind suboptimal. Das solltest du so nicht machen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#3
Hallo,

zuerst: die Angaben reichen nicht für eine vernüftige Beurteilung

Es könnte aber geprüft werden, ob RegEx bei dieser Fragestellung hilft.

Also:
- kann VBA eingesetzt werden
- sind genügend VBA-Grundkenntnisse vorhanden
- kann eine "Code-Pflege" vor Ort durchgeführt werden

Ohne eine Beispieldatei kann wenig mehr gesagt werden.

mfg
Top
#4
Ich bereite eine Beispieldatei vor! (angehängt)

Leider habe ich keinen Einfluss auf die Form der ursprünglichen- oder Zieldaten. Ich habe leider nur die Wahl zwischen automatischer Transformation oder Handarbeit :(.


Mir fehlen die VBA Kenntnisse, aber ich habe Zeit und Bock mich einzuarbeiten. Habe bisher nur Grundlagen Tutorials gemacht und sonst keine Erfahrung. "Code-Pflege" nach Einarbeitung kein Problem.


Angehängte Dateien
.xlsx   Beispieldatei.xlsx (Größe: 42,88 KB / Downloads: 10)
Top
#5
Hallo,

das soll also das Ergebnis sein?

Ausgabetemplate

D
1Zellinhalt SOLL
2111111 Produkt1 / 555555 Produkt5 / (Wort2)*
3333333 Produkt3
4444444 Produkt4/ 555555 Produkt5 / 999999 Produkt 9 (Wort1)*
5999999 Produkt9
6555555 Produkt5
7555555 Produkt5 / 777777 Produkt7 / 111111 Produkt1

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Wenn das so ist, widerspricht das allen Regeln der EDV. Warum werden die durch den Schrägstrich "getrennten" Daten nicht gleich in verschiedene Spalten geschrieben?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#6
Ja richtig, so soll der Zellinhalt am Ende des Spektakels aussehen. Die Daten werden vorbereitet um in einer Datenbank genutzt zu werden.
Wie gesagt, für die Form kann ich nichts, und wenn ich die Wahl hätte würde ich sie garantiert nicht so wählen ;).
Top
#7
B1: 

=
GLÄTTEN(WECHSELN(WECHSELN(TEXTVERKETTEN(" / ";;
GLÄTTEN(TEIL(WECHSELN($A1;" / ";WIEDERHOLEN(" ";99));SPALTE(A1:K1)*99-98;99))&" "&WENNFEHLER(SVERWEIS(--
GLÄTTEN(TEIL(WECHSELN($A1;" / ";WIEDERHOLEN(" ";99));SPALTE(A1:K1)*99-98;99));$F$9:$G$13;2;);""));"/   /";);"   /";))

klappt vermutlich nur mit meiner 365-Insider-Version, also mit TEXTVERKETTEN und impliziten Matrizen ohne {}. Mit Mac-Excel kennt sich keiner aus.

Verwendete Testdaten:

A1:A2:
236453 / 394875 / Bild
219387 / 239473 / 923473 / Gold

F9:G13:
219387 Katze
236453 Hund
239473 Frau
394875 Haus
923473 Mann

Ergebnis B1:B2:
236453 Hund / 394875 Haus / Bild
219387 Katze / 239473 Frau / 923473 Mann / Gold
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • antagon
Top
#8
TEXTVERKETTEN scheint es tatsächliche leider nicht zugeben. In der Ausgabezelle erschet #NAME und wenn ich in einer anderen Zelle "=TEXTVERKETTEN(" eingebe springt Excel nicht in den Formelmode, der die Argumente darstellt.
Top
#9
Code:
Sub M_snb()
   sn = Sheet2.Cells(1).CurrentRegion
   
   For j = 2 To UBound(sn)
      Sheet2.Columns(3).Replace sn(j, 1), sn(j, 1) & " " & sn(j, 2), 2
   Next
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#10
Hallo,

in Excel 2019 gibt es das.

Wie geht denn die Datenbank damit um, dass durch das Verketten aus den numerischen Werten Texte werden?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste