yannosch
Goto Top

Mal wieder ein Excel-Problem

Guten Morgen zusammen,

Auszug einer Spalte in einer riesigen Excel-Tabelle:

2dB max
1.5dB typ  2dB max
1.5dB typ  2dB max
1.2dB typ  1.5dB max
1.5dB max  1.2dB typ
2dB max  1.7dB typ
2dB max
2dB max
1.5dB typ  2dB max
1.5dB max
1.5dB typ   2dB max
2dB max  1.5dB typ
2dB max
1.5dB max
3dB  max
1.5dB  max

Ich muss nun in eine Spalte links davon alle Werte mit der Erweiterung Typ reinmachen.
In eine Spalte rechts davon alle Werte mit der Erweiterung Max.

Ich hab schon eine Kombination mit der "SUCH" funktion meines letzten Problems versucht, aber ich komme auf keinen grünen Zweig.

Ich bin dankbar für jeden Denkanstoß!

lg Yannosch

Content-Key: 326043

Url: https://administrator.de/contentid/326043

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: sabines
sabines 11.01.2017 um 09:34:36 Uhr
Goto Top
Moin,

vielleicht verstehe ich das nicht richtig, aber geht das nicht mit einem einfachen Wenn Dann Befehl?

Gruss
Mitglied: freeker
freeker 11.01.2017 um 09:54:27 Uhr
Goto Top
Guten Morgen,

Ich würde alle Werte in eine Hilfstabelle kopieren, dort die Spalte markieren und mit "Text in Spalten" die Zelle auftrennen. Danach hast du einzelne Zellen für die Werte und typ/max und kannst eine einfache WENN-Funktion anwenden.

MFG freeker
Mitglied: colinardo
Lösung colinardo 11.01.2017 aktualisiert um 11:23:24 Uhr
Goto Top
Servus Yannosch,
wie immer gibt es mehrere Wege nach Rom. Hier mal eine Makrolösung mit Regex:
Demosheet Download hier: subdivide_data_in_cell_326043.xlsm

Code aus der Mappe bei der die Daten in Spalte B2:BX abwärts stehen
Sub DivideData()
    Dim regex As Object, cell As Range, matches As Object, match As Object, col as integer
    Set regex = CreateObject("vbscript.regexp")  
    regex.Global = True: regex.IgnoreCase = True
    regex.Pattern = "([\d\.]+)dB\s*(max|typ)"  
    With ActiveSheet
        For Each cell In .Range("B2:B" & .Cells(Rows.Count, "B").End(xlUp).Row)  
            Set matches = regex.Execute(cell.Value)
            For Each match In matches
                col = IIf(LCase(match.submatches(1)) = "typ", -1, 1)  
                cell.Offset(0, col).Value = match.submatches(0)
            Next
        Next
    End With
End Sub
Grüße Uwe
Mitglied: Yannosch
Yannosch 11.01.2017 um 11:53:53 Uhr
Goto Top
Danke Uwe, wie immer eine Klasse Hilfe!!