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.

Zeichenkette in spalte prüfen
#1
Hallo zusammen,

ich bin neu hier und hoffe meine Hilfsanfrage ist so richtig, falls nicht bitte korrigieren. 

Folgendes Problem:
Ich habe eine Tabelle mit 4 Spalten und ca. 30.000 Zeilen.


Test-Mappe ist eingefügt.

Überprüft werden soll Spalte B (Inhalt) auf folgende Inhalte: KLZ, RV, ASS, Limit, BTM, Schleuse und Sepa.
Falls einer dieser "Zeichenfolge" in Spalte B steht, soll diese "Zeichenfolge" in Spalte D (Dokumententyp) hineingeschrieben werden, falls keiner der "Zeichenfolgen" in der Spalte B stehen soll "undefiniert" ausgegeben werden.

Ist es möglich dafür eine Formel zu kreieren? 
Wäre eine Super Sache die mir sehr viel zeit erspart!

Vielen Dank schon mal vorab!  :05:

LG
Max


Angehängte Dateien
.xlsx   test-Mappe.xlsx (Größe: 9,27 KB / Downloads: 6)
Antworten Top
#2
Hallo,

bei 30000 Zeilen würde ich das mit einem Makro lösen. Statt eines Bildchens wäre die Datei hilfreich gewesen, dann könnte man das testen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Cheaterdeluxe
Antworten Top
#3
Hallo Klaus-Dieter,

vielen Dank für die schnelle Antwort!

Ich kann  leider nicht die komplette Datei anhängen, Firmengeheimnisse, Datenschutz etc.... Deshalb ist mir das untersagt.

Ich habe alternativ das Bild nun als Tabelle beigefügt. Ich hoffe das reicht zum testen.

LG
Max
Antworten Top
#4
Hallo,

Zitat:Ich kann  leider nicht die komplette Datei anhängen, Firmengeheimnisse, Datenschutz etc.... Deshalb ist mir das untersagt.

... eine Beipieldatei enthält keine Firmengeheimnisse, weil sie ganz einfach anonymisiert ist.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#5
(26.02.2019, 09:55)Käpt\n Blaubär schrieb: Hallo,


... eine Beipieldatei enthält keine Firmengeheimnisse, weil sie ganz einfach anonymisiert ist.

Ist bereits angehängt.

LG
Max
Antworten Top
#6
Hallo,

habe schon mal ein Makro vorbereitet, mangels Daten musst du das dann selber testen. 

Code:
Option Explicit
Sub auswert()
    Dim intAnz As Integer
    Dim varDatArr As Variant
    Dim c As Range
    Dim ersteAdresse As String
    varDatArr = Array("KLZ", "RV", "ASS", "Limit", "BTM", "Schleuse", "Sepa")
    For intAnz = LBound(varDatArr) To UBound(varDatArr)
        With Worksheets(1).Range("B2:B" & ActiveCell.SpecialCells(xlLastCell).Row)
            Set c = .Find(varDatArr(intAnz), LookIn:=xlValues, LookAt:=xlPart)
            If Not c Is Nothing Then
                ersteAdresse = c.Address
                Do
                    Cells(c.Row, 4) = "undefiniert"
                    Cells(c.Row, 4) = varDatArr(intAnz)
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> ersteAdresse
            End If
        End With
    Next intAnz
End Sub
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Cheaterdeluxe
Antworten Top
#7
Hallo Klaus-Dieter,

vielen Dank für deine Lösung!  Blush 

Die Lösung ist soweit richtig, das einzige was noch nicht funktioniert ist "undefiniert" wenn eines dieser "Zeichenfolge" NICHT in Spalte B steht.

LG
Max
Antworten Top
#8
Hallo,

du hast recht, wenn ich hätte testen können, wäre mir aufgefallen, dass ich da auf dem Holzweg war. Die Find-Methode, mit der ich da gearbeitet habe, kann nur bei Treffern aktiv werden. Da müsste man im Nachgang die Spalte überarbeiten, suchen nach leeren Zellen, ersetzen durch deinen Text. Die Alternative wäre sonst eine Schleife gewesen, was deutlich länger gedauert hätte.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#9
Das Ergebnis "undefiniert" ist völlig redundant. Verzichte darauf.

Code:
Sub M_snb()
   sp = Split("KLZ RV ASS Limit BTM Schleuse Sepa")
   sn = Sheet1.Cells(1).CurrentRegion
  
   For j = 1 To UBound(sn)
      For jj = 0 To UBound(sp)
          If InStr(sn(j, 2), sp(jj)) Then Exit For
      Next
      If jj <= UBound(sp) Then sn(j, 4) = sp(jj)
   Next
  
   Sheet1.Cells(1).CurrentRegion = sn
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Cheaterdeluxe
Antworten Top


Gehe zu:


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