Nevek elemzése VBA-módszerrel

Adtak már olyan Excel munkalapot nevekkel, ahol a teljes nevek egy cellában vannak? Az Ön feladata, hogy a neveket keresztnévre, vezetéknévre bontsa – ez a folyamat az elemzés. Segítségül megpróbálhat egy képletet és/vagy függvényt használni, vagy használhatja a Visual Basic for Applications (VBA) kódot.

Elterjedt megközelítés az utó- és vezetéknév közötti szóköz megtalálása, és íme! – tudja, hol végződik a keresztnév és hol kezdődik a vezetéknév.

Hacsak nincsenek bonyolultabb felépítésű nevek, mint például Dr. William Healer vagy Zak H. Sneezer III.

Íme egy tipikus VBA-rutin, amely minden nevet karakterenként néz végig, amíg szóközt nem talál. Ezután azt, ami a szóköztől balra van, egy oszlopba helyezi, és azt, ami a szóköztől jobbra van az oszlopban.

Addig csináld, amíg ActiveCell = "
thename = ActiveCell.Value
Kereséshez = 1 Len(a név)
 Ha Közép(a név, kinézet, 1) = " " Akkor
    ActiveCell.Offset(0, 1) = Bal(a név, kinézet - 1)
    ActiveCell.Offset(0, 2) = Közép(név, kinézet + 1)
    Kilépés ehhez
 Vége Ha
Következő
ActiveCell.Offset(1, 0).Aktiválás
Hurok

Ez a rutin a nevek egyetlen szóközzel történő elemzésénél hasznos, például Harvey Wallbanger vagy Tom Collins. A következő táblázat a kód futtatásának eredményét mutatja több szóközt tartalmazó neveken:

Dr. William Healer Dr. William gyógyító
Zak H. Tüsszentő III Zak H. Tüsszentő III

Ez nem jó elemzési kísérlet. Harvey Wallbanger és Tom Collins elemzésénél jól működött, de a többi név esetében nem.

Itt van egy fejlettebb technika, amely jobb eredményeket ad vissza. Ne feledje, hogy a nevek elemzése nem tökéletes, de ha így megy, az jobb munkát végez.

A technika az, hogy megszámoljuk, hány szóköz van a teljes névben, majd széttörjük a nevet az egyik szóközön. Különösen, ha három vagy több mező van, használja a jobbról két hüvelyknyi mezőt törési mezőként; ellenkező esetben a jobb szélső szóközt használja törési mezőként.

Ez a folyamat egy VBA szubrutinban fut, amely meghív egy függvényt, miközben a nevek között hurkol. A szóközök számát a főhurok elején határozzuk meg, és a függvény azt a pozíciót adja vissza, ahol a törési szóköz van.

Sub parse_names()
  Dim thename As String
  Halvány szóközök Egész számként
  Addig csináld, amíg ActiveCell = "
    thename = ActiveCell.Value
    szóközök = 0
    Teszthez = 1 Len(a név)
      Ha Közép(név, teszt, 1) = " " Akkor
      szóköz = szóköz + 1
    Vége Ha
  Következő
  Ha szóközök >= 3 Akkor
    break_space_position = space_position(" ", thename, spaces - 1)
  Más
    break_space_position = space_position(" ", thename, spaces)
  Vége Ha
  Ha szóközök > 0 Akkor
    ActiveCell.Offset(0, 1) = Bal(a név, törés_szóköz pozíciója - 1)
    ActiveCell.Offset(0, 2) = Közép(név, törés_szóköz pozíciója + 1)
  Más
    Ez arra szolgál, ha a teljes név csak egyetlen név szóközök nélkül
    ActiveCell.Offset(0, 1) = thename
  Vége Ha
  ActiveCell.Offset(1, 0).Aktiválás
  Hurok
Vége Sub
Függvény space_position(mit_meg kell_keresni As String, mit_megkeresni As String, space_count As Integer) As Integer
  Dim loop_counter As Integer
    tér_pozíció = 0
    For loop_counter = 1 To space_count
      space_position = InStr(hurok_számláló + space_pozíció, mit kell_keresni, mit_keresni)
      Ha space_position = 0, akkor Exit For
    Következő
Funkció befejezése

Az alábbi táblázat azt mutatja, hogy most hogyan néz ki az eredmény:

Dr. William Healer Dr. William Gyógyító
Zak H. Tüsszentő III Zak H. Tüsszentő III

A névelemzés éppoly művészet, mint technikai folyamat. Ebben a második példában az összes kereszt- és vezetéknév a megfelelő oszlopokban van. Ha egy új, öt vagy több szóközt tartalmazó hosszú név kerül bevezetésre, előfordulhat, hogy a rutin rosszul értelmezi az elemzést, és a VBA-kód további feltételes tesztelést igényel. De ez a példa most jó úton halad, mint egy iparilag erős névelemző rutin.

Leave a Comment

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban. Részletes útmutató, hogyan készíthet különféle stílusú jegyzeteket bibliográfiai információkhoz vagy magyarázó megjegyzésekhez.

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Tudjon meg mindent arról, hogyan lehet az Excelben kiemelni a statisztikailag kiugró értékeket, mégpedig egyszerű eszközökkel és módszerekkel. Kiemelt figyelmet fordítunk a kiugró értékek azonosítására és kezelésére.

Hogyan lehet mintát venni az adatokból Excelben

Hogyan lehet mintát venni az adatokból Excelben

Az Excel Mintavételi eszközével véletlenszerűen kiválaszthat elemeket egy adatkészletből vagy választhat minden n-edik elemet. Ismerje meg, hogyan használhatja ezt a hasznos funkciót az adatelemzéshez!

10 klassz trükk a Microsoft Word 2019 programmal

10 klassz trükk a Microsoft Word 2019 programmal

Fedezze fel a Microsoft Word 2019 legjobb trükkjeit, amelyek segítenek a hatékonyabb munkavégzésben. Tudd meg, hogyan használhatod ki a program funkcióit!

Bekezdések igazítása és behúzása a Word 2019-ben

Bekezdések igazítása és behúzása a Word 2019-ben

A Word 2019-ben a bekezdések igazítása és behúzása kulcsfontosságú a dokumentumok megfelelő megjelenítéséhez. Ismerje meg a formázási lehetőségeket és tippeket a hatékonyabb munkához.

Az Excel 2019 Solver használata

Az Excel 2019 Solver használata

Fedezze fel, hogyan használhatja az Excel 2019 Solver bővítményt a komplex problémák megoldására. A célcella, változócellák és kényszerek beállítása lépésről lépésre.

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

A Word lehetővé teszi dinamikus elemek hozzáadását a dokumentumhoz. Fedezze fel, hogyan lehet különböző mezőket használni a Word programban a dinamikus tartalom létrehozásához.

Oszloptípusok a SharePoint 2010-ben

Oszloptípusok a SharePoint 2010-ben

A SharePoint 2010 oszlopai az adatok tárolására szolgálnak. Fedezze fel a különböző oszlop típusokat és azok alkalmazását a SharePoint rendszeren belül.

A nem kívánt szöveg eltávolítása a Word 2013-ban

A nem kívánt szöveg eltávolítása a Word 2013-ban

A Word 2013 szövegtörlésének képessége kulcsfontosságú, legyen szó szövegalkotásról vagy törlésről. Ismerje meg a hatékony szövegtörlési módszereket!

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

A fotóalbum funkció a PowerPoint 2016-ban lehetővé teszi, hogy egyszerre több fényképet illesszen be egy prezentációba, megkönnyítve ezzel a többszörös képek kezelését.