Analýza pojmenuje způsob VBA

Dostali jste někdy excelový list se jmény, ve kterém jsou celá jména všechna v jedné buňce? Vaším úkolem je rozdělit jména na křestní jméno a příjmení – proces známý jako analýza. Můžete zkusit použít vzorec a/nebo funkci, která vám pomůže, nebo můžete použít kód jazyka Visual Basic for Applications (VBA).

Běžným přístupem je najít mezeru mezi křestním jménem a příjmením a voila! – víte, kde končí křestní jméno a začíná příjmení.

Pokud nemáte jména se složitější strukturou, jako například Dr. William Healer nebo Zak H. Sneezer III.

Zde je typická rutina VBA, která prochází každé jméno, znak po znaku, dokud nenajde mezeru. Potom umístí vše, co je vlevo od mezery v jednom sloupci a co je napravo od mezery ve sloupci za.

Proveďte, dokud ActiveCell = "
thename = AktivníCell.Value
Pro hledání = 1 Lenovi (jméno)
 If Mid(thename, looking, 1) = " " Pak
    ActiveCell.Offset(0, 1) = Left(název, vzhled - 1)
    ActiveCell.Offset(0, 2) = Mid(název, vzhled + 1)
    Konec pro
 End If
další
ActiveCell.Offset(1, 0).Aktivovat
Smyčka

Tato rutina je užitečná při analýze jmen pouze s jednou mezerou, jako je Harvey Wallbanger nebo Tom Collins. Následující tabulka ukazuje výsledek spuštění kódu na názvy s více než jednou mezerou:

Dr. William léčitel Dr. William léčitel
Žák H. Kýchal III Zak H. Kýchal III

Toto není dobrý pokus o analýzu. Pro analýzu Harveyho Wallbangera a Toma Collinse to dopadlo dobře, ale ne tak dobře pro ostatní jména.

Zde je rozvinutější technika, která vrací lepší výsledky. Mějte na paměti, že analýza názvů není dokonalá, ale když to uděláte tímto způsobem, bude to lepší.

Technikou je spočítat, kolik mezer je v celém názvu, a poté rozdělit název na jednu z mezer. Zejména, pokud jsou tři nebo více mezer, použijte mezeru dva zprava jako mezeru pro přerušení; jinak použijte mezeru úplně vpravo jako mezeru pro přerušení.

Tento proces je spuštěn v podprogramu VBA, který volá funkci, zatímco prochází názvy. Počet mezer je určen na začátku hlavní smyčky a funkce vrací pozici, kde je mezera pro přerušení.

Sub parse_names()
  Dim thename As String
  Dim spaces As Integer
  Proveďte, dokud ActiveCell = "
    thename = AktivníCell.Value
    mezery = 0
    Pro test = 1 To Len(thename)
      If Mid(thename, test, 1) = " " Then
      mezery = mezery + 1
    End If
  další
  Jestliže mezery >= 3 Pak
    break_space_position = space_position(" ", název, mezery - 1)
  Jiný
    break_space_position = space_position(" ", název, mezery)
  End If
  Pokud mezery > 0 Pak
    ActiveCell.Offset(0, 1) = Left(thename, break_space_position - 1)
    ActiveCell.Offset(0, 2) = Mid(název, pozice_mezera + 1)
  Jiný
    Toto je pro případ, kdy je celé jméno pouze jedno jméno bez mezer
    ActiveCell.Offset(0, 1) = název
  End If
  ActiveCell.Offset(1, 0).Aktivovat
  Smyčka
End Sub
Funkce space_position(co_to_look_for As String, what_to_look_in As String, space_count As Integer) As Integer
  Dim loop_counter As Integer
    space_position = 0
    Pro loop_counter = 1 To space_count
      space_position = InStr(loop_counter + space_position, what_to_look_in, what_to_look_for)
      Pokud space_position = 0, pak Exit For
    další
End Function

Následující tabulka ukazuje, jak nyní výsledek vypadá:

Dr. William léčitel Dr. Williame Léčitel
Žák H. Kýchal III Zak H. Kýchal III

Analýza jmen je stejně umění jako technický proces. V tomto druhém příkladu jsou všechna jména a příjmení ve správných sloupcích. Pokud by byl zaveden nový dlouhý název s pěti nebo více mezerami, rutina by mohla mít chybnou analýzu a kód VBA by potřeboval více podmíněného testování. Ale tento příklad je nyní na správné cestě jako rutina průmyslové analýzy jmen.

Leave a Comment

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Objevte, jak efektivně využívat příkazy Znovu a Opakovat ve Wordu 2016 pro opravy dokumentů a zlepšení pracovního toku.

Jak změnit zamčené a skryté formátování buněk

Jak změnit zamčené a skryté formátování buněk

Naučte se, jak efektivně změnit stav buněk v Excelu 2010 z uzamčených na odemčené nebo z neskrytého na skrytý s naším podrobným průvodcem.

Jak přeložit text v cizím jazyce ve Wordu 2016

Jak přeložit text v cizím jazyce ve Wordu 2016

Zjistěte, jak efektivně využít překladové nástroje v Office 2016 pro překlad slov a frází. Překlad Gizmo vám pomůže překládat text s lehkostí.

Jak používat šablony ve Wordu 2013

Jak používat šablony ve Wordu 2013

Šablona ve Wordu šetří čas a usnadňuje vytváření dokumentů. Zjistěte, jak efektivně používat šablony ve Wordu 2013.

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Zjistěte, jak si vytvořit e-mailová upozornění ve SharePointu a zůstat informováni o změnách v dokumentech a položkách.

Obsah SharePoint Online a typy obsahu

Obsah SharePoint Online a typy obsahu

Objevte skvělé funkce SharePoint Online, včetně tvorby a sdílení dokumentů a typů obsahu pro efektivnější správu dat.

Výpočet fiskálního čtvrtletí pro datum v Excelu

Výpočet fiskálního čtvrtletí pro datum v Excelu

Zjistěte, jak vypočítat fiskální čtvrtletí v Excelu pro různá data s použitím funkce CHOOSE.

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Zjistěte, jak vytvořit hypertextový odkaz v PowerPointu, který vám umožní pohodlně navigovat mezi snímky. Použijte náš návod na efektivní prezentace.

Zobrazit starší verzi dokumentu aplikace Word 2016

Zobrazit starší verzi dokumentu aplikace Word 2016

Uložili jste nedávno svůj dokument? Náš návod vám ukáže, jak zobrazit starší verze dokumentu v aplikaci Word 2016.

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra vlastní kartě na pásu karet nebo tlačítku na panelu nástrojů Rychlý přístup. Návod pro Excel 2013.