Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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.
Antworten 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
Antworten 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
Antworten 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)
Antworten 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
Antworten 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 ;).
Antworten 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
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • antagon
Antworten 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.
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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