Viac

Ako extrahovať časť reťazca pre hodnotu poľa

Ako extrahovať časť reťazca pre hodnotu poľa


To je jednoduché, ale vedie ma to k šialenstvu. Používam Modelbuilder na iteráciu cez priečinok tried funkcií a musím pridať pole, ktoré extrahuje časť názvu súboru.

Príklad: CF0140r01.shp Chcem pridať pole do svojej tabuľky s názvom Obrázok a chcem iba extrahovať časť názvu súboru z pozícií znakov 3 - 6, takže výsledné pole má hodnotu 0140

Mám veľa týchto súborov a každý z nich má v názve súboru vložené číslo obrázka, a to vždy na rovnakých pozíciách (dva vedúce textové znaky, 4 číslice pre číslo obrázka, tri koncové znaky s ďalšími informáciami)


Naozaj som príliš nepoužil nástroj na tvorbu modelov (zvyčajne som sa len nabúral cez model, aby som spustil nejaký skript, ktorý som vytvoril), pretože na veci zvyčajne používam ArcPy. Ale možno by som ti mohol pomôcť ísť správnym smerom.

Navrhoval by som použiť nástroj Pridať pole z panela nástrojov datamanagement-> Polia-> Addfield. potom pripojte výstup toho k výpočtu poľa z rovnakého poľa. Ak teraz zmeníte typ výrazu na python, potom použite operátor rezu [:] na výber podreťazca názvu. takže 3-6 by bolo 2-5, pretože reťazce pythonu začínajú indexovať na 0.

Vedel by som však, ako získať názov súboru pomocou knižnice python a os. Nie som oboznámený s tým, ako čítať aktuálny súbor tvarov z nástroja na tvorbu modelov, môžem sa ho pokúsiť pozrieť neskôr, keď budem späť pri stole. Pokúste sa vytvoriť hrubý, ak nikto nedokáže získať lepší prehľad.


váš problém je kombináciou dvoch problémov 1) napíšte názov fc do poľa Používanie triedy prvkov "Názov" z Iterácie tried funkcií na výpočet poľa pomocou ModelBuilder? potom 2) extrahujte malú časť. Pre druhú stačí použiť poľnú kalkulačku s analyzátorom pythonu

! Obrázok! [2: 6]

Funkcia podreťazec vráti časť reťazca. Nasledujúci text ilustruje syntax funkcie podreťazca:

Poďme podrobne preskúmať každý parameter:

  • struna je reťazec, ktorého dátový typ je char, varchar, text, atď.
  • štart_pozícia is celé číslo, ktoré určuje, kam chcete extrahovať podreťazec. Ak sa počiatočná pozícia rovná nule, podreťazec začína od prvého znaku reťazca. Počiatočná_pozícia môže byť iba pozitívna. Aj keď v iných databázových systémoch, ako je MySQL, funkcia podreťazca môže prijať negatívnu počiatočnú pozíciu.
  • dĺžka je kladné celé číslo, ktoré určuje počet znakov, ktoré chcete extrahovať z reťazca začínajúceho na začiatku_pozície. Ak je súčet start_position a dĺžka väčší ako počet znakov v reťazci, funkcia podreťazca vráti celý reťazec začínajúci na start_position. Parameter dĺžky je voliteľný. Ak vynecháte parameter dĺžky, funkcia podreťazec vráti celý reťazec spustený na začiatku_pozície.

Príklady podreťazcov PostgreSQL

Pozrite si nasledujúce príklady:

V prvom príkaze extrahujeme podreťazec, ktorý má dĺžku 8 a začína sa od prvého znaku reťazca PostgreSQL. ako výsledok dostaneme PostgreS. Pozri nasledujúci obrázok:

V druhom príkaze extrahujeme podreťazec začatý na pozícii 8 a parameter dĺžky vynecháme. Podreťazec je reťazec začínajúci na 8, čo je SQL.

PostgreSQL poskytuje ďalšiu syntax funkcie podreťazca nasledovne:

V tejto podobe PostgreSQL dáva tri parametre do jedného. Pozrite si nasledujúci príklad:

Výsledky sú rovnaké ako v prvom príklade.

V nasledujúcom príklade dopytujeme údaje z tabuľky zákazníkov. Vyberieme stĺpec priezvisko a meno. Počiatočné meno získame extrahovaním prvého znaku v stĺpci first_name.


9 odpovedí 9

Tento podmnožinu s $ nemôžete urobiť. V zdrojovom kóde (R / src / main / subset.c) sa uvádza:

/ * Operátor podmnožiny $.
Musíme si byť istí, že vyhodnotíme iba prvý argument.
Druhý bude symbol, ktorý je potrebné porovnávať, nie hodnotiť.
*/

Druhý argument? Čo?! Musíte si uvedomiť, že $, rovnako ako všetko ostatné v R, (vrátane napríklad (, +, ^ atď.) Je funkcia, ktorá prijíma argumenty a je hodnotená. Df $ V1 by sa dalo prepísať na

. napríklad nikdy nebude fungovať, ani nebude nič iné, čo treba najskôr vyhodnotiť v druhom argumente. Môžete vložiť iba reťazec, ktorý je nikdy hodnotené.

Namiesto toho použite [(alebo [[ak chcete extrahovať iba jeden stĺpec ako vektor)).


Referencia:

Ak používate Oracle10g +, môžete použiť regulárny výraz cez REGEXP_SUBSTR.

To je možné vykonať pomocou REGEXP_SUBSTR ľahko.

kde STRING_EXAMPLE je tvoja struna.

Vyrieši to váš problém.

Musíte získať pozíciu prvého podčiarknutia (pomocou INSTR) a potom získať časť reťazca z 1. znaku na (pos-1) pomocou substr.

je správna odpoveď, ktorú zverejnil používateľ1717270

Ak použijete príkaz INSTR, dá vám pozíciu pre reťazec, ktorý predpokladá, že obsahuje znak „_“. Čo ak sa tak nestane? Odpoveď bude nulová. Preto, ak chcete vytlačiť reťazec, vytlačí sa NULL. Príklad: Ak chcete odstrániť doménu z domény „host.domain“. V niektorých prípadoch budete mať iba krátky názov, tj. „Hostiteľ“. S najväčšou pravdepodobnosťou by ste chceli vytlačiť „hostiteľa“. S nástrojom INSTR vám dá NULL, pretože nenašiel žiadny znak „.“, T. J. Vytlačí od 0 do 0. S programom REGEXP_SUBSTR získate vo všetkých prípadoch správnu odpoveď:

Ďalšou možnosťou by bolo použitie REGEXP_SUBSTR.

V prípade, že pozícia reťazca nie je pevná, potom príkazom Select môžeme získať očakávaný výstup.

Požiadavka - vyhľadajte reťazec ClientId v stĺpci KLIENT a vráťte zodpovedajúcu hodnotu. Páči sa mi od & quotclientId & quot: & quotcon-bjp & quot - & gt con-bjp (očakávaný výstup)

Pamätajte si to, ak všetky vaše reťazce v stĺpci nemajú podčiarknutie (alebo inak, ak bude výstupom nulová hodnota):


Dohľad nad RE

Bežným spôsobom, ako robiť extrakciu vzťahov pod dohľadom, je trénovať stohovaný binárny klasifikátor (alebo bežný binárny klasifikátor), aby zistil, či existuje špecifický vzťah medzi dvoma entitami. Tieto klasifikátory berú funkcie textu ako vstupné, a preto vyžadujú, aby bol text najskôr anotovaný ostatnými modulmi NLP. Typické vlastnosti sú: kontextové slová, tagy časti reči, cesta závislosti medzi entitami, značky NER, tokeny, vzdialenosť medzi slovami atď.

Trénovať a extrahovať by sme mohli:

  1. Ručne označte textové údaje podľa toho, či je veta pre konkrétny typ vzťahu relevantná alebo nie. Napr. pre vzťah „CEO“:
    "Generálny riaditeľ spoločnosti Apple Steve Jobs povedal Billovi Gatesovi." je relevantné
    "Bob, nadšenec koláča, povedal Billovi Gatesovi." nie je relevantné
  2. Ak vyjadrujú vzťah, príslušné vety ručne označte ako pozitívne / negatívne. Napr. „Generálny riaditeľ spoločnosti Apple Steve Jobs povedal Billovi Gatesovi.“:
    (Steve Jobs, CEO, Apple) je pozitívny
    (Bill Gates, CEO, Apple) je negatívny
  3. Naučte sa binárny klasifikátor, aby ste určili, či je veta relevantná pre typ vzťahu
  4. Naučte sa binárny klasifikátor pre príslušné vety, aby ste určili, či veta vyjadruje vzťah alebo nie
  5. Použite klasifikátory na zistenie vzťahov v nových textových dátach.

Niektorí sa rozhodnú netrénovať „klasifikátor relevantnosti“ a namiesto toho nechajú jeden binárny klasifikátor, aby určil obe veci naraz.

  • Vysoko kvalitný dohľad (zabezpečenie relevantnosti vzťahov, ktoré sa extrahujú)
  • Máme výslovné negatívne príklady
  • Nákladné označovať príklady
  • Drahé / ťažké pridať nové vzťahy (je potrebné zaškoliť nového klasifikátora)
  • Negeneralizuje sa dobre na nové domény
  • Je to možné iba pre malú množinu typov vzťahov

Analýza textových polí v Outlooku

Používateľ Outlooku chcel vedieť, ako získať časť poľa a vložiť ho do tela správy. Je to skutočne ľahké.

Musíte len nájsť miesto, kde sú oddeľovacie znaky (v tomto prípade znak @), a získavať písmená vpred alebo vzad.

Dobrá správa: Je to menej komplikované, ako to znie. Keď to získate, môžete ich vložiť do tela správy pomocou Item.Body = "Odkaz:" & reťazec . Príklad nájdete v časti Poslať správu kontaktu.

Môžete tiež použiť RegEx na vyhľadanie reťazcov. Viac informácií nájdete v časti Použiť program RegEx na analýzu textu správy

Môžete to použiť na viac než len na analýzu e-mailovej adresy. Ak dostanete e-mail obsahujúci jasne identifikované polia („E-mail: [email protected] Meno: Mary Priezvisko: Smith“), môžete pomocou tejto metódy údaje uložiť.

Aby ste to dosiahli, musíte použiť funkcie VBA Len, Správny, Vľavo, Mida InStr.

Len získa dĺžku reťazca, počnúc počiatočným bodom.

Ak používate test = Len ("diane"), test vráti 5.

Vľavo alebo správny získa znaky najviac vľavo alebo vpravo.

string = Left ("fráza", získajte tento počet znakov)
string = right ("phrase", get this many characters)

V test = vľavo ("diane", 3), test sa bude rovnať "dia", prvé 3 písmená. Správne („diane“, 3) by nám dalo „ane“.

Mid dostane slová uprostred frázy. Musíte zadať počiatočný bod a počet znakov.

string = Mid ("fráza", začiatok od, získajte tento počet znakov)

Ak použijeme test = stredná ("diane", 2, 3), začína sa od druhých znakov a získava ďalšie 3 za „ian“.

InStr získa pozíciu znaku v reťazci.

integer = InStr (začiatok, „fráza“, „znak alebo reťazec“)

Takže test = InStr (1, "diane", "i") nám hovorí, že pozícia i v diane je 2. 1 označuje, že má začať na začiatku reťazca alebo frázy.

Ak vieme, že požadovaný znak je v reťazci dvakrát, môžeme povedať, že sa má začať pozerať neskôr:
test = InStr (4, "slipstick", "i") mi hovorí, že v polohe 7 je i.

Môžeme hľadať aj východiskovú pozíciu viacznakových reťazcov: test = InStr (1, "slipstick", "ic") vráti 7.

Ak chcete použiť InStr v makre, napríklad hľadať jednu kategóriu, keď je položke priradených viac kategórií, použite tento formát:

Ak InStr (Item.Categories, "moja kategória"), potom

Zhoda veľkých a malých písmen

Veľké písmená v reťazci môžete ignorovať pomocou funkcie LCASE: LCASE (reťazec)

LCase (Item.Body) prevádza telo správy na všetky malé písmená. To umožňuje kódu fungovať, aj keď niekto používa veľké a malé písmená alebo všetky veľké písmená.

Táto ukážka napríklad vyhľadáva slovo „niečo“ ako prvé slovo v tele správy. Pretože používa LCASE, bude sa zhodovať s niečím, niečím, SOmethingom alebo NIEČOM.

Ak je vľavo (LCase (Item.Body), 9) = "niečo" potom
'urob niečo
Koniec Ak

Spojením týchto funkcií dokážeme rozdeliť polia Outlooku, skrátiť dĺžku polí alebo vyhľadať konkrétne znaky v poli.

Ďalej uvádzame niekoľko základných príkladov použitia týchto funkcií. Všeobecne platí, že chcete, aby sa každá premenná používala osobitne vo funkciách Left, Right alebo Mid, pretože to uľahčuje čítanie a hľadanie chýb.

Napríklad tento riadok funguje, ale je ťažšie čitateľný a zrozumiteľnejší. Tento kód získa väčšinu znakov vybratej e-mailovej adresy kontaktov až do polohy znaku @ (tj. Názvu domény):

strDomain = Right (oContact.Email1Address, Len (oContact.Email1Address) - InStr (1, oContact.Email1Address, "@"))

Tento kód robí to isté ako verzia vyššie, ale dá sa ľahšie sledovať.

Získajte polohu znaku @

intATsign = InStr (1, oContact.Email1Address, "@")

Zistite dĺžku adresy mínus pozícia znamienka @

intAddress = Len (oContact.Email1Address) - intATsign

Získajte čo najviac znakov z frázy

strDomain = Right (oContact.Email1Address, intAddress)

Tento kód ukazuje, ako použiť funkciu Stred na začatie počítania od polohy znaku a získanie ďalších xx znakov.

intATsign = InStr (1, oContact.Email1Address, "@")
intAddress = Len (oContact.Email1Address) - intATsign
strDomain = Mid (oContact.Email1Address, intATsign + 1, intAddress)

Aj keď nejde o jednu z funkcií, ktoré použijete na vyhľadanie a analýzu údajov, funkcia Orezať môže byť užitočná na odstránenie netlačiacich a úvodných a koncových medzier z textu.

string = Orezať (string)

Viac informácií

Extrahujte údaje zo štruktúrovaného textového bloku Príklad aplikácie Outlookcode.com, ktorý extrahuje údaje z ľubovoľného páru štítok-údaj, ktorý sa objaví v bloku textu, kde sú všetky páry štítok-údaj na samostatných riadkoch. Napríklad získate údaje z e-mailovej správy odoslanej pomocou webového formulára, kde má správa niekoľko riadkov, z ktorých každý má iný pár Popis: Údaje.

Súvisiace príspevky:

O Diane Poremsky

Diane, najuznávanejšia profesionálka v odbore Microsoft Outlook od roku 1999, je autorkou niekoľkých kníh, okrem iného aj knihy Outlook 2013 Absolute Beginners Book. Vytvorila tiež CD s video školeniami a online školiace kurzy pre Microsoft Outlook. Môžete ju nájsť online na fórach Outlooku, ako aj na fórach Microsoft Answers a TechNet.

Diane, hľadám vytvorenie udalosti preposlania e-mailu zo slov v e-maile. môžete s tým pomôcť, čo by ste si účtovali?

Závisí to presne od toho, čo chcete urobiť, a či mám zverejnené makro, ktoré funguje ako základ a sú potrebné iba prispôsobenia. Spravidla je to 100 - 200 dolárov za vylepšenie existujúceho makra, ale môže byť nižšia, ak sú vylepšenia jednoduché. (A vyššie, ak potrebujem pracovať od nuly.)

Takže v podstate chcem vziať e-mail, ktorý v tele e-mailu hovorí CompanyName: @ companyname.com, ktorý chcem chytiť, a potom ho nechať preposlať e-mailom na [email protected]

Ahoj Diane,
Môžete mi pomôcť s podobným prípadom?
Dostávam viac e-mailov z automatizovaného servera s rovnakým predmetom, ale telo e-mailu obsahuje inú položku #. Potrebujem na spustenie skript (nastavím pravidlo na spustenie skriptu pre nové e-maily od konkrétneho odosielateľa), ktoré nájde položka č. (číslice) v tele e-mailu, upravte predmet a zmeňte ho na položka č. a uložiť.

tu je príklad:
1. prijatý e-mail:
Od: [email protected]
Predmet: Nový email
Toto položka č. je pre teba. bla bla bla.

2. Spustiť pravidlo:
a. from: [email protected] & amp Subject: New email
b. Spustiť skript:
i. Nájsť : položka #
ii. Nastaviť predmet e-mailu na: položka č.
iii. Uložiť e-mail.

3. Výsledok:
Od: [email protected]
Predmet: položka č.
Toto položka č. je pre teba. bla bla bla.

myReply.HTMLBody = "Ahoj" & amp Mid $ (Item.SenderName, InStr (1, Item.SenderName, "")) & amp "," & amp vbCrLf & amp myReply.HTMLBody

Vyššie uvedený riadok kódu mi pomohol vrátiť meno príjemcu e-mailu do tela e-mailu. Problém, ktorý mám, je, že tento aktuálny riadok kódu vracia stredné počiatočné meno „Space“.

Z formátu e-mailového mena Schneider, Brent T dostávam Brent T.

Chcel by som dostať iba krstné meno, aby sa v tele e-mailu zobrazovalo ako Hello Brent, namiesto Hello Brent T.

Verím, že s kombináciou funkcií Mid $, Right $, Len, InStr, InStrRev v riadku by som bol schopný dostať to, čo chcem, ale som v strate.

Akákoľvek pomoc by bola veľmi ocenená,
Brent Schneider

Dostal by som brent t do premennej, potom by som ho rozdelil do medzery, buď pomocou nástroja instr, ako ste teraz, alebo pomocou funkcie split. Alebo môžete skúsiť použiť instrrev na rozdelenie celého mena na poslednú medzeru - ale ak chcete iba krstné meno, budete ho musieť spracovať dvakrát (myslím).


2. Súradnicové referenčné systémy

Podporované sú štyri súradnicové referenčné systémy (CRS), z ktorých každý spadá do jedného z dvoch typov: geografické súradnice modelovacie body na zemi, príp kartézske súradnice modelovanie bodov v euklidovskom priestore:

WGS-84: zemepisná dĺžka, šírka (x, y)

WGS-84-3D: zemepisná dĺžka, šírka, výška (x, y, z)

Údaje v rôznych súradnicových systémoch sú úplne neporovnateľné a nemožno ich implicitne prevádzať z jedného do druhého. Platí to, aj keď sú kartézske alebo geografické. Ak napríklad hľadáte 3D body pomocou rozsahu 2D, nezískate žiadne výsledky. Môžu sa však objednať, ako je podrobnejšie rozobrané v časti Objednávanie a porovnanie hodnôt.

2.1. Referenčné systémy zemepisných súradníc

Podporované sú dva geografické súradnicové referenčné systémy (CRS), ktoré modelujú body na Zemi:

2D geografický bod v WGS 84 CRS je určený jedným z dvoch spôsobov:

zemepisná dĺžka a šírka (ak sú špecifikované a crs nie je, potom sa crs považuje za WGS-84)

xay (v tomto prípade musí byť zadaný crs, alebo sa bude považovať za karteziánsky)

Špecifikáciu tohto CRS je možné vykonať buď pomocou názvu „wgs-84“, alebo SRID 4326, ako je opísané v bode (WGS-84).

3D geografický bod v WGS 84 CRS je určený jedným z dvoch spôsobov:

zemepisná dĺžka, šírka a buď výška alebo z (ak sú špecifikované a crs nie je, potom sa crs považuje za WGS-84-3D)

x, yaz (v tomto prípade musí byť zadaný crs, alebo bude považovaný za kartézsky 3D)

Špecifikáciu tohto CRS je možné vykonať buď pomocou názvu „wgs-84-3d“, alebo SRID 4979, ako je opísané v bode (WGS-84-3D).

Jednotky polí zemepisnej šírky a dĺžky sú v desatinných stupňoch a je potrebné ich zadať ako čísla s pohyblivou rádovou čiarkou pomocou literálov Cypher. Nie je možné použiť žiadny iný formát, napríklad „stupne, minúty, sekundy“. Jednotky výškového poľa sú v metroch. Keď sa geografické body odovzdajú funkcii vzdialenosti, výsledok bude vždy v metroch. Ak súradnice sú v inom formáte alebo jednotke, ako sú podporované, je potrebné ich výslovne previesť. Napríklad ak je prichádzajúcou výškou $ pole reťazca v kilometroch, budete musieť napísať height: toFloat ($ height) * 1000. Rovnako, ak sa očakáva vrátenie výsledkov funkcie vzdialenosti v kilometroch, je potrebný výslovný prevod. Napríklad: NÁVRATNÁ vzdialenosť (a, b) / 1 000 AS km. Príkladom demonštrácie prevodu na prichádzajúce a odchádzajúce hodnoty je:


Ďalším vynikajúcim príkladom toho, prečo bude definovanie riadku pre „čisté“ otázky v jazyku Python ťažké: Používanie premennej v SelectByAttribute_management.

Na najnižšej možnej úrovni je to čisto problém so syntaxou v jazyku Python.

Uvedená chyba by však naznačovala chybu mimo Pythonu v rámci ArcGIS API:

Chyba za behu Traceback (posledný hovor posledný): Súbor "", riadok 1, v súbore "c: program files (x86) arcgis desktop10.1 arcpy arcpy management.py", riadok 6435, v SelectLayerByAttribute raise e ExecuteError: ERROR 000358: Neplatný výraz sa nepodarilo vykonať (SelectLayerByAttribute).

Ak vyhľadáte túto chybovú správu, nájdete:

Výraz SQL je neplatný.

Na pochopenie toho, v čom je problém a aké by malo byť riešenie, je potrebná znalosť ArcGIS aj Pythonu.

Otázka teraz znie, mám na to odpovedať? Je to vlastne dosť jednoduché a tvorbe tejto odpovede som už strávil viac času, ako by to bolo potrebné.
Mohol by som hlasovať aj za to, aby to bolo uzavreté mimo témy. Ale vzhľadom na skutočnosť, že som si už našiel čas na prečítanie a pochopenie tejto otázky, ja tiež vedieť riešenie, skutočne zlepšujem túto komunitu hlasovaním o uzavretí tejto otázky?

Prinajmenšom verím, že pokus definovať, čo je „čistý“, bude Python pohyblivým cieľom a s čím bude táto komunita neustále zápasiť.

Poskytnem odpoveď na základe príkladnej otázky, ktorá bola odvtedy odstránená používateľom komunity: https://gis.stackexchange.com/questions/167074/using-a-text-file-to-create-shapefile-with -atribúty.

Používam to s programami Python a Arcpy

Než začnem kódovať, napadlo ma, či je možné vziať súbor .txt a extrahovať prvý riadok ako hodnoty poľa a ďalšie riadky súradníc extrahovať.

Exmapl súboru .txt je taký:

Mal by som už vytvorený tvarový súbor a všetko, čo by som musel urobiť, je vytvoriť súbory mnohouholníkov pomocou súradníc a vyplniť tabuľku atribútov hodnotami nad ním.

Je toto možnosť pomocou Pythonu a Arcpy a akým smerom sa mám uberať?

Táto otázka z Hlavného obsahuje dve otázky. Druhá otázka (vytváranie geometrií pomocou ArcPy) sa jednoznačne týka témy (ale pravdepodobne je to duplikát), zatiaľ čo prvá otázka sa týka spôsobu čítania riadkov z textového súboru pomocou jazyka Python.

Hlasoval som za pozastavenie otázky, pretože žiadateľ nezahrnul útržok kódu, ktorý by ukazoval, čo vyskúšali a kde uviazli. Keby však obsahovali útržok kódu, ktorý by sa týkal spôsobu čítania riadkov z textového súboru pomocou Pythonu, a nie časti s geometriou, potom by som hlasoval za to, aby bol pozastavený ako lepšie preskúmaný / požiadaný v Stack Overflow .

Ak otázka prestane byť o tom, ako čítať riadky z textového súboru pomocou Pythonu a stane sa iba vytváraním geometrií pomocou ArcPy, budem to pre GIS SE považovať za vysoko tematické a budem pripravený poskytnúť odpoveď alebo uviesť duplikát .


Logické konštanty

Logické konštanty môžete použiť vo výrazoch Looker. Tieto konštanty sú vždy písané malými písmenami a majú nasledujúci význam:

Neustále Význam
Áno Pravdaže
č Falošné
nulový Bezcenné

Upozorňujeme, že konštanty áno a nie sú špeciálne symboly, ktoré vo výrazoch Looker znamenajú true alebo false. Naproti tomu použitie úvodzoviek ako „áno“ a „nie“ vytvorí doslova reťazce s týmito hodnotami.

Logické výrazy sa vyhodnotia ako pravdivé alebo nepravdivé bez toho, aby sa vyžadovala funkcia if. Napríklad toto:

Môžete tiež použiť null na označenie žiadnej hodnoty. Môžete napríklad zistiť, či je pole prázdne, alebo v určitej situácii priradiť prázdnu hodnotu. Tento vzorec nevracia žiadnu hodnotu, ak je pole menšie ako 1, alebo hodnotu poľa, ak je viac ako 1:


Funkcie programu Excel: 7 spôsobov, ako používať textové funkcie na správu údajov

Textové funkcie programu Excel sú veľkým šetričom času, ak vaša práca vyžaduje správu rozsiahlych údajov, najmä údajov importovaných z iných zdrojov. Našťastie sa všetky údaje ASCII importujú ľahko, ale formát týchto importovaných údajov sa môže drasticky líšiť od jedného zdroja k druhému.

Polia môžu byť napríklad ohraničené, napríklad tabulátormi, medzerami, čiarkami alebo bodkami. Všetky ostatné znaky sú lepšie ako medzery. Je to tak preto, lebo medzery neexistujú iba medzi poľami, ale aj separujú slová v rámci polí, čo robí z triedenia polí skutočnú výzvu. To je miesto, kde sú nasledujúce textové funkcie veľmi užitočné.

A. Pomocou funkcie SUBSTITUTE môžete nahradiť jeden reťazec textu iným

Syntax funkcie: Syntax (alebo štruktúra vety) funkcie SUBSTITUTE je táto:

= SUBSTITUTE (text, starý text, nový text, [číslo inštancie]).

Poznámka: Ak nezadáte číslo inštancie, každý výskyt starého textu sa zmení na nový text. Ak zadáte číslo inštancie, nahradí sa iba výskyt starého textu. Napríklad zadanie čísla „1“ znamená, že chcete zmeniť iba prvý výskyt daného slova v reťazci.

1. Zadajte niektoré frázy do stĺpca A (od A2 do A13).

2. Do stĺpca B zadajte slovo alebo frázu, ktorú chcete zmeniť.

3. Do stĺpca C zadajte slovo alebo frázu, ktorou chcete nahradiť starý text.

4. Do buniek D2 až D7 (alebo do polovice databázy) zadajte nasledujúci vzorec: = SUBSTITUTE (A2, B2, C2,1)

Toto zmení / nahradí iba prvý výskyt starého textu na nový text.

5. Ďalej zadajte tento vzorec do zvyšných buniek (v našom prípade D8 až D13): = SUBSTITUTE (A2, B2, C2). Toto zmení / nahradí všetky výskyty starého textu na nový text.

Poznámka: Táto funkcia rozlišuje veľké a malé písmená, takže ak výsledky nefungujú, zmeňte text na všetky rovnaké veľké a malé písmená.

01 Pomocou funkcie SUBSTITUTE môžete nahradiť jeden reťazec textu iným

B. Extrahujte posledné slovo v textovom reťazci pomocou ZÁSTUPU TRIM, DOPRAVA a ZADARMO

V tomto príklade je cieľom objektu extrahovať posledné slovo - teda priezvisko, z reťazca textu (celé mená zoznamu klientov).

1. Do stĺpca A zadajte niektoré mená: meno, priezvisko a prostredné mená alebo iniciály.

2. Zadajte tento vzorec do B2: = TRIM (PRAVÝ (NÁHRADA (A2, ““, REPT (““, 50)), 50)).

3. Skopírujte vzorec z B2 na B3 až B1000 (alebo na koniec svojej databázy). V tomto príklade predpokladáme, že vaša databáza obsahuje 1 000 záznamov.

4. Tento vzorec funguje, pretože funkcia SUBSTITUTE vyhľadá všetky medzery v textovom reťazci a potom nahradí každú jednu medzeru 50 medzerami. Funkcia RIGHT odstráni 50 znakov (sprava doľava) a funkcia TRIM vymaže všetky nadbytočné medzery, pričom ponechá iba posledné slovo. Ak máte dlhšie reťazce textu, skúste nahradiť 50 a 50 hodnôt vo vyššie uvedenom vzorci 100 alebo viac.

Extrahuje posledné slovo v reťazci textu

Ďalšie školenie o programe Excel

Ak si chcete prehĺbiť svoje zvládnutie Excelu, existuje množstvo online kurzov na rozšírenie vašich znalostí. Tu sú naše najlepšie tipy na začiatok:

C. Pomocou reťazca LEFT & amp SEARCH extrahujte prvé slovo / meno v textovom reťazci

Tento vzorec funguje, keď potrebujete oddeliť krstné meno od stredného a priezviska v zozname klientov.

1. Zadajte niektoré mená do stĺpca A (alebo použite rovnaké mená z predchádzajúceho cvičenia).

2. Zadajte tento vzorec do B2 až B1000: = DOLEVA (A2, SEARCH (““, A2) -1), aby ste extrahovali krstné meno každého klienta do samostatného stĺpca.

Extrahujte prvé slovo / meno v textovom reťazci

D. Extrahujte všetko okrem prvé slovo v reťazci textu s použitím NÁSTUPU ZOŠTÍVAŤ, ZPRÁVA, ZNOVU a ZADAŤ

Účelom tohto cvičenia je odstrániť honorifics zo zoznamu mien klientov. Títo klienti poskytujú dôverné informácie z prieskumu, takže spoločnosť nechce, aby tituly a pozdravy každého jednotlivca ovplyvňovali geodetov.

1. Do stĺpca A zadajte ďalšie mená (alebo použite rovnaké mená z predchádzajúceho cvičenia). Pred každé meno zadajte nejaké honorifiky, napr. Pán, Slečna, Pani, Pani, Dr., Sir, Lord, Lady, Capt., Atď.

2. Zadajte tento vzorec v B2 až B1000: = TRIM (PRAVÝ (SUBSTITUTE (TRIM (A2), ““, REPT (““, 60)), 180)) na extrahovanie celých mien všetkých klientov mínus honorifics.

3. A ak chcete z nejakého dôvodu extrahovať honorifics, zadajte tento vzorec do C2 až C1000: = LEFT (A2, SEARCH (““, A2) -1).

Extrahujte všetko OKREM prvého slova v reťazci textu

E. Extrahujte mená z e-mailových adries pomocou NÁBYTKU VĽAVO, NÁJDETE A ZADAJTE

Najhoršou úlohou dňa je tráviť hodiny manuálnym prepisovaním mien klientov alebo domén z e-mailových adries, najmä ak je ich zoznam viac ako 5 000 mien. Pomocou nasledujúcich vzorcov môžete túto úlohu dokončiť v priebehu niekoľkých minút.

1. V stĺpci A zadajte niektoré e-mailové adresy.

2. Zadajte tento vzorec v B2 až B5000: = LEFT (A2, FIND (“@”, a2) -1), aby ste extrahovali celé mená všetkých klientov.

3. Zadajte tento vzorec do C2 až C5000, aby ste odstránili podčiarknutie medzi menom a priezviskom: = SUBSTITUTE (B2, ”“, ”_”).

4. Presuňte sa do bunky F2. Vyberte Vzorce & gt Text & gt. Typ C2 v poli Textové pole na dialógovom okne Funkcie Argumenty alebo kliknite na bunku C2 a potom kliknite na Ok. Tento vzorec prevádza mená na veľké a malé písmená (tj prvé písmeno krstného mena a priezviska veľké, všetky ostatné malé písmená).

5. Skopírujte vzorec z F2 na F3 až F5000 a stlačte Zadajte.

Extrahujte mená z e-mailových adries

G. Extrahujte domény z e-mailových adries pomocou Orezať, Zľava, Nahradiť, Mid, Nájsť, LEN a amp REPT

1. Zadajte tento vzorec do D2 až D5000, aby ste extrahovali názvy domén z e-mailových adries:

= TRIM (VĽAVO (NÁHRADA (STRED (A2; FIND („@“, A2), LEN (A2)), ”“, REPT („“, 100)), 100))

2. A nakoniec, zadajte tento vzorec do E2 až E5000, aby ste z extrahovaných názvov domén odstránili znaky @: = SUBSTITUTE (D2, ”@”, ””).

Extrahujte domény z e-mailových adries

JD Sartain je technologický novinár z Bostonu. Píše stĺpce Maximálna produktivita pre PCWorld, mesačný stĺpec pre CIO a pravidelné články o sieťach pre sieť World World.