Preskoči na glavno vsebino

 Kako pretvoriti besedilni niz v pravi primer z izjemami v Excelu?

V Excelu lahko uporabite funkcijo Pravilno za enostavno pretvorbo besedilnih nizov v ustrezne črke, včasih pa morate pri pretvorbi besedilnih nizov v pravi črko izključiti nekatere določene besede, kot je prikazano na spodnji sliki zaslona. V tem članku bom govoril o nekaj hitrih trikih za reševanje tega dela v Excelu.

Pretvorite besedilne nize v ustrezne črke z izjemami z uporabo formule

Pretvorite besedilne nize v ustrezne črke z izjemami z uporabo kode VBA


Pretvorite besedilne nize v ustrezne črke z izjemami z uporabo formule

Morda vam bo naslednja formula pomagala pri hitrem reševanju te naloge, naredite tako:

Vnesite to formulo:

= ZGORNJI (LEVI (A2)) IN SREDNJI (TRIM (ZAMENJAVA (ZAMENJAVA (ZAMENJAVA (ZAMENJAVA (ZAMENJAVA (ZADNJI PODATKI ("" IN PROPER (ZASLON (A2) & "," Od "," od ")," A "," a ")," Ali "," je ")," ZDA "," ZDA ")), 2, LEN (A2)) v celico, kjer želite dobiti rezultat, in nato povlecite ročico za polnjenje, da zapolnite to formulo, besedilni nizi pa so pretvorjeni v ustrezne črke, vendar posebne izjeme, glejte posnetek zaslona:

Opombe: V zgornji formuli, A2 je celica, ki jo želite pretvoriti, »Od«, »A«, »Je«, »ZDA« so običajne prave črke po pretvorbi, „Od“, „a“, „je“, „ZDA“ so besede, ki jih želite izključiti iz ustreznega črka. S funkcijo SUBSTITUTE jih lahko spremenite po svojih željah ali dodate druge besede.


Pretvorite besedilne nize v ustrezne črke z izjemami z uporabo kode VBA

Če je zgornjo formulo nekoliko težko razumeti in spremeniti glede na vaše potrebe, lahko tukaj uporabite tudi kodo VBA za dokončanje te naloge. Naredite naslednje po korakih.

1. Držite tipko ALT + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Okno modula.

Koda VBA: pretvorite besedilne nize v pravi primer z izjemami:

Sub CellsValueChange()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xPRg As Range
    Dim xSRgArea As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim I As Long
    Dim K As Long
    Dim KK As Long
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
    If xPRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRg.Areas.Count
        Set xSRgArea = xSRg.Areas.Item(I)
        For K = 1 To xSRgArea.Count
            xRgVal = xSRgArea(K).Value
            If Not IsNumeric(xRgVal) Then
                xRgVal = CorrectCase(xRgVal, xPRg)
                xDRg.Offset(KK).Value = xRgVal
            End If
            KK = KK + 1
        Next
    Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
    Dim xArrWords As Variant
    Dim I As Integer
    Dim xPointer As Integer
    Dim xVal As String
    xPointer = 1
    xVal = xRgVal
    xArrWords = WordsOf(xRgVal)
    For I = 0 To UBound(xArrWords)
        xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
        Debug.Print xPointer
        Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
    Next I
    CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
    Dim xDelimiters As Variant
    Dim xArrRtn As Variant
    xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
    For Each xEachDelimiter In xDelimiters
        xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
    Next xEachDelimiter
    xArrRtn = Split(Trim(xRgVal), " ")
    WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
    With xERg
        If IsError(Application.Match(xArrWord, .Cells, 0)) Then
            CorrectCaseOneWord = Application.Proper(xArrWord)
        Else
            CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
        End If
    End With
End Function

3. Nato pritisnite F5 tipko za zagon te kode in izpiše se pozivno polje, ki vas opomni, da izberete prvotne celice, ki jih želite pretvoriti, glejte posnetek zaslona:

4. In nato kliknite OK, izberite celice, v katere želite izpisati rezultate v izpuščenem polju, glejte posnetek zaslona:

5. Pojdi na klik OKin v pojavnem pogovornem oknu izberite besedila, ki jih želite izključiti, si oglejte posnetek zaslona:

6. In nato kliknite OK za izhod iz pogovornih oken in so vsi besedilni nizi pretvorjeni v pravi črko, vendar izključujejo določene besede, glejte sliko zaslona:

Najboljša pisarniška orodja za produktivnost

🤖 Kutools AI Aide: Revolucionirajte analizo podatkov na podlagi: Inteligentna izvedba   |  Ustvari kodo  |  Ustvarite formule po meri  |  Analizirajte podatke in ustvarite grafikone  |  Prikličite funkcije Kutools...
Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

Opis


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This would be amazing if only the Macro excluded the part of the sting in CAPS not the entire cell from the exceptions list.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations