Vai al contenuto principale

Come estrarre la prima lettera di ogni parola dalla cella?

Immagina di avere un elenco di nomi di paesi nel tuo foglio di lavoro e di voler estrarre la prima lettera di ogni parola in questi nomi. Excel non fornisce una funzionalità diretta per estrarre le lettere iniziali di ogni parola in una cella. Tuttavia, introdurrò alcuni metodi pratici per svolgere questo compito in modo efficiente, rendendo il processo semplice ed efficace.


Estrai la prima lettera di ogni parola dalla cella con la formula

Per ottenere la prima lettera di ogni parola all'interno di una cella, la seguente formula di matrice può aiutarti.

1. Copia la seguente formula in una cella vuota in cui desideri ottenere il risultato, quindi premi CTRL + MAIUSC + INVIO tasti insieme per ottenere il primo risultato.

=CONCAT(LEFT(FILTERXML("<a><b>"&SUBSTITUTE(A2," ","</b><b>")&"</b></a>","//b"),1))

2. Successivamente, trascina verso il basso la formula per riempire le altre celle. Questa azione estrarrà automaticamente la prima lettera di ogni parola in ogni cella tutta in una volta. Vedi schermata:

Spiegazione di questa formula:
  • SOSTITUTO(A2," "," "):Questa funzione sostituisce ogni spazio nel testo nella cella A2 con . Ciò separa efficacemente ogni parola nel testo con questi tag XML. Ad esempio, se A2 contiene "Hello World", questa parte della formula lo trasforma in "Hello World".
  • " "&...&" ": Questa parte racchiude il risultato della funzione SUBSTITUTE all'inizio e alla fine. Continuando con l'esempio, la stringa ora diventa Hello World , formando una struttura XML valida in cui ogni parola è racchiusa all'interno di tag.
  • FILTROXML(...,"//b"): FILTERXML viene utilizzato per analizzare la stringa XML creata nei passaggi precedenti. La query XPath //b seleziona tutti gli elementi all'interno dei tag, cioè ogni parola nella stringa originale. Utilizzando il nostro esempio, FILTERXML restituirebbe un array con due elementi: "Hello" e "World".
  • SINISTRA(...,1): La funzione LEFT viene quindi applicata a ciascun elemento dell'array restituito da FILTERXML, estraendo la prima lettera di ogni parola. Nell'esempio risulterebbe "H" e "W".
  • CONCAT(...): Infine, la funzione CONCAT concatena tutti gli elementi dell'array in un'unica stringa. Per il nostro esempio "Hello World", concatena "H" e "W" per produrre "HW".

Estrai la prima lettera di ogni parola da Cell con Kutools AI Aide

Estrai rapidamente la prima lettera di ogni parola in una cella con Assistente AI di Kutools. Non sono necessarie formule complesse; l'assistente AI automatizza l'attività per te, rendendo l'elaborazione dei dati semplice ed efficiente. Semplifica il flusso di lavoro di Excel e semplifica il tuo lavoro. Tentativo Assistente AI di Kutools e sperimenta le operazioni intelligenti di Excel!

Note:: Per utilizzare questo Assistente AI di Kutools of Kutools for Excel, Per favore scarica e installa Kutools per Excel prima.

Dopo aver installato Kutools per Excel, fare clic su Kutools AI > Aiutante dell'AI per aprire il Assistente AI di Kutools Pannello:

  1. Seleziona l'elenco dei dati, quindi digita la tua richiesta nella casella di chat e fai clic Invia pulsante o premere entrare chiave per inviare la domanda;
  2. Dopo l'analisi, fare clic su Eseguire pulsante per eseguire. Kutools AI Aide elaborerà la tua richiesta utilizzando l'intelligenza artificiale e restituirà i risultati direttamente in Excel.


Estrai la prima lettera di ogni parola dalla cella con la funzione definita dall'utente

Estrarre la prima lettera di ogni parola da una cella è un'attività che può essere notevolmente ottimizzata utilizzando una funzione definita dall'utente (UDF) in Excel. Questa sezione esplora come creare e utilizzare una UDF per eseguire in modo efficiente questa attività.

1. Tieni premuto il ALT + F11 chiavi per aprire il Finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Modulie incolla il codice seguente nel file Finestra del modulo.

Function GetFirstLetters(rng As Range) As String
'Updateby Extendoffice
    Dim arr
    Dim I As Long
    arr = VBA.Split(rng, " ")
    If IsArray(arr) Then
        For I = LBound(arr) To UBound(arr)
            GetFirstLetters = GetFirstLetters & Left(arr(I), 1)
        Next I
    Else
        GetFirstLetters = Left(arr, 1)
    End If
End Function

3. Quindi salva e chiudi questo codice, torna indietro nel foglio di lavoro e inserisci questa formula = GetFirstLetters (A2) in una cella vuota. Quindi trascina il quadratino di riempimento sulle celle a cui desideri applicare questa formula. E tutte le prime lettere sono state estratte dalla serie di parole, vedi screenshot:


Articoli correlati:

  • Estrai le prime o le ultime due o n parole dalla stringa di testo
  • Se si dispone di un elenco di stringhe di testo separate da spazio e ora, si desidera estrarre le prime o le ultime tre o n parole dal valore della cella per ottenere il seguente risultato dello screenshot. In questo articolo, introdurrò alcune formule per estrarre le prime o le ultime due o n parole dalla stringa di testo in Excel.
  • Estrai l'indirizzo email dalla stringa di testo
  • Quando importi alcuni indirizzi e-mail dal sito Web al foglio di lavoro Excel, contiene sempre testo irrilevante, ma ora vuoi solo estrarre gli indirizzi e-mail puri dalla stringa di testo (vedi schermate seguenti). Come hai potuto ottenere rapidamente solo gli indirizzi email dal testo della cella?
  • Estrai la stringa tra due caratteri diversi
  • Se hai un elenco di stringhe in Excel di cui devi estrarre parte della stringa tra due caratteri da come mostrato nell'immagine sottostante, come gestirlo il più rapidamente possibile? Qui, presento alcuni metodi per risolvere questo lavoro.

I migliori strumenti per la produttività in ufficio

🤖 Assistente AI di Kutools: Rivoluziona l'analisi dei dati basandosi su: Esecuzione intelligente   |  Genera codice  |  Crea formule personalizzate  |  Analizzare i dati e generare grafici  |  Richiama le funzioni di Kutools...
Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Strumenti (aggiungi testo, Rimuovi personaggi, ...)   |   50+ Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Strumenti (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Strumenti (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Strumenti (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo.  Fai clic qui per ottenere la funzionalità di cui hai più bisogno...

Descrizione


Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
Comments (18)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hello, If the the nth Word is enclosed in a (), it is returning the ( since it comes before the First Letter.

Example:
Word Word (Word)

How to return WWW instead of WW( ?
This comment was minimized by the moderator on the site
Hello, Sharmane
Maybe the following code can help you:
Function GetFirstLetters(rng As Range) As String
    Dim arr() As String
    Dim i As Long
    
    arr = VBA.Split(rng.Value, " ")
    
    For i = LBound(arr) To UBound(arr)
        If Left(arr(i), 1) <> "(" And Right(arr(i), 1) <> ")" Then
            GetFirstLetters = GetFirstLetters & Left(arr(i), 1)
        ElseIf Left(arr(i), 1) = "(" And Right(arr(i), 1) = ")" Then
            GetFirstLetters = GetFirstLetters & Mid(arr(i), 2, 1)
        End If
    Next i
End Function


Please have a try, thank you!
This comment was minimized by the moderator on the site
Another suggestion if using Microsoft 365: =TEXTJOIN("",,LEFT(TEXTSPLIT(D9," "),1)) where the source string is in B9.
Wrap in UPPER function to enforce uppercase: =UPPER(TEXTJOIN("",,LEFT(TEXTSPLIT(D9," "),1)))
@Pradeep Gyawali -> add space: =UPPER(TEXTJOIN(" ",,LEFT(TEXTSPLIT(D9," "),1)))
This comment was minimized by the moderator on the site
Wondering how to add this into the existing formula I have that works to bring the value over from a cell in another sheet? I only want to bring over the first character in each cell. Here's the formula

=IF(LOOKUP(2,1/(OriginalSubmission!D:D<>""),ROW(OriginalSubmission!D:D))=ROW(OriginalSubmission!D4),"",INDIRECT("OriginalSubmission!D5:"&"D"&(LOOKUP(2,1/(OriginalSubmission!D:D<>""),ROW(OriginalSubmission!D:D)))))
This comment was minimized by the moderator on the site
Hello, SARAH
Do you mean extracting each first character in cells from another worksheet? If so, you just need to copy and paste the code in this article, and then apply this formula into another sheet.
=GetFirstLetters(OriginalSubmission!D4)


Note: OriginalSubmission is the sheet name that you want to extract charatcers from.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
How to create space between the letters?

South Korea= S K
This comment was minimized by the moderator on the site
Hi, Gyawali
If you want to add space for each character, please apply the following VBA code:
Function GetFirstLetters(Rng As Range) As String
'Updateby Extendoffice
    Dim xStr
    Dim arr
    Dim I As Long
    xStr = " "
    arr = VBA.Split(Rng, " ")
    If IsArray(arr) Then
        For I = LBound(arr) To UBound(arr)
            GetFirstLetters = GetFirstLetters & Left(arr(I), 1) & xStr
        Next I
    Else
        GetFirstLetters = Left(arr, 1) & xStr
    End If
End Function


After insert the code, and then apply this formula: =GetFirstLetters(A2) to get the result you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Why is this giving me the first 2 letters in each word?
This comment was minimized by the moderator on the site
This is awesome. Such a time saver
This comment was minimized by the moderator on the site
This code is good for upto five words, where D20 is the cell with data.



=IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",
$D$20)+1)+1)+1)+1,1)),IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)),
IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)),
IF(ISERR(LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)),
IF(ISERR(LEFT($D$20,1)),"",LEFT($D$20,1)),LEFT($D$20,1)
&MID($D$20,SEARCH(" ",$D$20)+1,1)),LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)),
LEFT($D$20,1)&MID($D$20,SEARCH(" ",$D$20)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)),LEFT($D$20,1)
&MID($D$20,SEARCH(" ",$D$20)+1,1)&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)+1)+1,1)
&MID($D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20,SEARCH(" ",$D$20)+1)
+1)+1)+1,1))
This comment was minimized by the moderator on the site
Подскажите пожалуйста, можно ли модифицировать код чтобы забиралась не первые а Заглавные буквы?
This comment was minimized by the moderator on the site
i think it has one bug, it's automatically removed from module when sheet is closed, need to again every time when open sheet same process to be required, please advice how to save this formula in excel permanently.
This comment was minimized by the moderator on the site
Pls save excel as Excel Macro-Enablel work book.
This comment was minimized by the moderator on the site
Please include this part: If you create a function called DISCOUNT in a workbook called Personal.xlsb and you call that function from another workbook, you must type =personal.xlsb!discount(), not simply =discount(). https://support.office.com/en-us/article/Create-Custom-Functions-in-Excel-2007-2f06c10b-3622-40d6-a1b2-b6748ae8231f
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations