Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz macilaci78 #37910 üzenetére

    Szia,

    Egy ötlet részemről, hogy kellene egy kulcsszó készlet, hogy miket várnál el a találatként (pl. kapupántcsavar, lakatcsavar, facsavar stb.) a leírásban és azt megnézni hogy megvan-e a szövegben vagy sem.

    Ehhez lehet egy UDF-t készíteni.
    Egy nem tökéletes változat.
    Function Talalat(szoveg As Range, kulcsszo As Range, elvalaszto As Range) As String
    Dim c, i As Long
    Dim kezdete As Long, vege As Long
    Dim cell
    Dim txelvalaszto As String

    For Each cell In elvalaszto
    txelvalaszto = CStr(cell) & txelvalaszto
    Next

    Talalat = ""

    For Each cell In kulcsszo
    c = InStr(1, szoveg, cell) 'keressük a kifejezést a szövegben
    If c > 0 Then 'ha van találat
    For i = c To 1 Step -1 'menjünk visszafelé az első elvalasztó jelig
    If InStr(1, txelvalaszto, Mid(szoveg, i, 1)) > 0 Then
    kezdete = i + 1
    Exit For
    End If
    Next i

    If kezdete = 0 Then kezdete = 1 'ha esetleg nem lenne előtte semmi

    For i = c To Len(szoveg) 'most keressük meg a szöveg utáni első elválasztójelet
    If InStr(1, txelvalaszto, Mid(szoveg, i, 1)) > 0 Then
    vege = i
    Exit For
    End If
    Next i

    If vege = 0 Then vege = Len(szoveg) + 1 'ez esetben pedig nincs semmi már utána

    Talalat = Mid(szoveg, kezdete, vege - kezdete) 'az eredmény
    Exit For
    End If
    Next cell
    End Function

    Használata a képen látható:

    Ha az adathalmaz nincs egységes szerkezetben, akkor tökéletes végeredmény nem fog összejönni.

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

Új hozzászólás Aktív témák