Sommare celle contenenti valori numerici e testi + valori numerici

Anonimo
2025-04-25T05:15:34+00:00

Buongiorno, cerco un sistema che mi permetta di sommare tutti i valori presenti nelle celle comprese quelle con presente anche un testo. Utilizzo la versione Excel 2016. Come da Esempio Foglio Ore, ci possono essere anche delle situazioni di 1+1, e mi servirebbe che non diventassero un 2, ma che nella somma totale risultino.

Grazie Mille

Microsoft 365 e Office | Excel | Altro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2025-04-28T16:06:55+00:00

Ciao,

prova con questa versione

Function Somma_ValoriNumerici_Alfanumerici(Intervallo As Range) As Double 

   Dim v As Range, v2 As Variant 

   Dim str As String 

   Dim sum As Double 

   For Each v In Intervallo 

      str = v.Value 

      str = Replace(Replace(str, ")", ""), "(", "+") 

      For Each v2 In Split(str, "+") 

         If IsNumeric(v2) Then 

            sum = sum + CDbl(Trim(v2)) 

         End If 

      Next v2 

   Next v 

   Somma_ValoriNumerici_Alfanumerici = sum 

End Function 

Dovrebbe gestire in automatico anche stringhe del tipo "Testo (2)".

Sostituisce alla ")" un carattere "nullo" e alla "(" il "+" in modo da "splittare" le stringhe in base al "+".

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2025-04-25T09:44:33+00:00

Ciao,

devi aggiungere al progetto VBA della cartella di lavoro un modulo standard e all'interno di quello copiare il codice.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2025-04-25T08:18:13+00:00

Una possibile soluzione tramite VBA e l'utilizzo di una FDU (funzione definita dall'uente):

Function Somma_ValoriNumerici_Alfanumerici(Intervallo As Range) As Double 

   Dim v As Range, v2 As Variant 

   Dim sum As Double 

   For Each v In Intervallo 

      For Each v2 In Split(v.Value, "+") 

         If Not IsNumeric(Trim(v2)) Then 

            sum = sum + 0 

         Else 

            sum = sum + CDbl(Trim(v2)) 

         End If 

      Next v2 

   Next v 

   Somma_ValoriNumerici_Alfanumerici = sum 

End Function 

Il file va salvato in formato ".xlsm" (con attivazione di macro).

Il codice va salvato in un modulo vba standard.

La funzione va utilizzata in una cella come una normale funzione Excel assegnando come argomento l'intervallo di celle per le quali si desidera effettuare la somma.

Vedi se ti può essere utile.

ciao

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

10 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2025-04-25T10:30:14+00:00

    Ciao,

    devi aggiungere al progetto VBA della cartella di lavoro un modulo standard e all'interno di quello copiare il codice.

    Immagine

    Immagine

    Gentilissimo grazie mille!! ha funzionato! sarebbe troppo complicato se volessi sommare anche una cifra fra parentesi? esempio: Pollicino (2) + 1 con un totale di 3?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2025-04-25T09:25:29+00:00

    Una possibile soluzione tramite VBA e l'utilizzo di una FDU (funzione definita dall'uente):

    Function Somma_ValoriNumerici_Alfanumerici(Intervallo As Range) As Double 
    
    
    
       Dim v As Range, v2 As Variant 
    
    
    
       Dim sum As Double 
    
    
    
       For Each v In Intervallo 
    
    
    
          For Each v2 In Split(v.Value, "+") 
    
    
    
             If Not IsNumeric(Trim(v2)) Then 
    
    
    
                sum = sum + 0 
    
    
    
             Else 
    
    
    
                sum = sum + CDbl(Trim(v2)) 
    
    
    
             End If 
    
    
    
          Next v2 
    
    
    
       Next v 
    
    
    
       Somma_ValoriNumerici_Alfanumerici = sum 
    
    
    
    End Function 
    

    Il file va salvato in formato ".xlsm" (con attivazione di macro).

    Il codice va salvato in un modulo vba standard.

    La funzione va utilizzata in una cella come una normale funzione Excel assegnando come argomento l'intervallo di celle per le quali si desidera effettuare la somma.

    Immagine

    Vedi se ti può essere utile.

    ciao

    Grazie mille della risposta, già senza macro sono poco pratico, con sono completamente inesperto. Ho provato a fare come mi hai detto, ma mi da un errore quindi non so dove ho sbagliato, ti allego due immagini magari riesci nuovamente ad essermi d'aiuto. Grazie mille.

    La risposta è stata utile?

    0 commenti Nessun commento