› Excel e gli applicativi Microsoft Office › Somma celle con valori Alfanumerici
-
AutoreArticoli
-
buona sera a tutti,
chiedo il vostro aiuto a risolvere e darmi una mano per una formula che mi permette di sommare celle contenenti numeri e lettere, quindi alfanumerici.
ipotizziamo che nel range G7:G11 ho una serie di celle contenenti in alcune solo numeri, in altre numeri e lettere e in altre solo lettere.
di mia conoscenza conosco solo la formula che posto;
=MATR.SOMMA.PRODOTTO(G7:G11)
qualcuno di voi può darmi una mano con la formula?
allego anche un file esempio dove ho utilizzato la formula, e nella cella G16 il risultato che invece dovrei ottenere.
ringrazio per l'aiuto
Allegati:
You must be logged in to view attached files.Ciao Alfredo
Grazie per la risposta; scusami e non mi ero accorto di aver commesso un errore di digitura, la somma e' 26 Quindi 6+5+5+10
Grazie
Buona giornata, @dodi;
una possibile soluzione potrebbe essere:
- Selezionare il Range G7:G11
- Dalla "Barra multifunzione Dati", "Strumenti Dati", "Testo in colonne"
- "Delimitato", "Altro", +
- "Fine"
Risultato in Cella "G13" anche con:=SOMMA($G$7:$G$11)Giuseppe
Giuseppe buongiorno
E grazie per i tuoi suggerimenti,
Non ho avuto ancora il modo di provare quanto da te suggerito, ma volevo farti una domanda, esiste un modo con una formula? Anche perché se in futuro mi ricapita una cosa del genere difficilmente mi ricorderei tutti i passaggi, invece una formula una volta capita mi resta impressa di più nella mente.
Se è possibile te ne sarei grato per il tuo prezioso aiuto.
Giuseppe ho avuto modo di provare il tuo suggerimento, ma ho visto che con il tuo metodo mi scompone i contenuti nelle celle e mi sposta le lettere sullela colonna a dx.
Ma non vorrei che fa questo perché il file che ho allegato era in esempio.
In realtà nelle colonne F e H ci sono altri valori. Quindi la soluzione proposta non mi andrebbe bene.
Resto in attesa di tuo ulteriore aiuto e se qualche altro utente possa essermi di aiuto.
Grazie mille
Buon pomeriggio, @dodi;
temo serva un Codice VBA ma prima di farti perdere tempo credo sarebbe utile e opportuno avere un File, senza dati sensibili, ma che rappresenti tutte le possibili situazioni.Buon fine settimana.
Giuseppe
Giuseppe ciaoo
ho provato a vedere su tutti i forum se c'era un caso simile, ma niente.
ma avrei trovato un codice VBA da inserire in un modulo e richiamare con comando "=Sommarenumeri(range dove ci sono i dati da sommare)" in una cella da me scelta.
se vedi il file che ho allegato,
in vba nel modulo1 ho incollato un codice vba che ho trovato in un forum,
e poi nella cella E12 del foglio 1 (dove c'è scritto "#Nome?") dovrei avere il risultato.
nella cella E12 il codice vba verrebbe richiamato con "=Sommarenumeri(range dove ci sono i dati da sommare)".
Andrebbe adeguato al mio caso.
oppure avere una cosa del genere, cioè un codice vba da inserire in un modulo e nella cella dove vorrei il risultato dovrei richiamarlo con una stringa di codice.
spero di esser stato chiaro nella spiegazione.
resto in attesa di chiarimenti o di tua soluzione.
grazie
Allegati:
You must be logged in to view attached files.Avevo già inviato questa risposta ma non ne vedo traccia, provo a inviarla nuovamente.
Buon pomeriggio a Tutti.
Nel caso in cui la struttura del File sia quella proposta nel tuo allegato va benessimo la Formula proposta da @D@nilo, che saluto, ma se devi gestire stringhe diverse del tipo:
- CIG+5 al posto di 5+CIG
oppure
- P+6 al posto di 6+PServe un Codice VBA.
Poi, ovviamente, vedi tu.
Buon fine settimana.
Giuseppe
buona sera a tutti,
rispondo a Danilo che mi ha postato il codice.
l'ho provato ma mi da come risultato "15" invece il risultato finale delle celle nel range deve essere 26. e cioè
6+5+5+10.
in pratica deve sommare anche i numeri con la presenza delle lettere.
quindi deve prendere in considerazione anche le celle alfanumeriche.
rispondo al quesito di Giuseppe, il formato non cambia ed è, e sarà cosi come li ho scritti e cioè 5+CIG ; 6+P
il codice così come postato mi fa la sola somma dei numeri senza lettere,
sembra che fa la stessa cosa del codice che avevo postato nell'inizio della discussione e cioè:
=MATR.SOMMA.PRODOTTO(E6:E11) ma
forse sbaglio io ad utilizzare il codice di Danilo.
resto in attesa di riscontro.
intanto ringrazio per l'aiuto.
Buona sera,@Dodi;
la Formula è "Matriciale" quindi va confermata con CTRL+SHIFT+INVIOIn pratica ti comparirà la Formula con parentesi graffa aperta all'inizio della Formula e parentesi graffa chiusa alla fine della Formula.
Buona serata.
Giuseppe
Giuseppe grazie per il suggerimento.
Se non mi dicevi che era una formula matricole non avrei trovato il modo per farla funzionare.
Perché quando Danilo ha postato la formula ho provato poi a fare ctrl+shift+invio non veniva fuori nulla ma mi dava sempre come risultato 15.
Siete sempre preziosi con i vostri aiuti.
Grazie mille.
Volevo scrivere Matriciale.
Buon giorno.
In merito al codice postato da Danilo, che saluto e ringrazio per la soluzione ho notato una cosa.
Che se per errore clicco nella cella del risultato il Matriciale si disattiva è mi tocca disattivarlo con il ctrl+shift+invio.
A quando sembra oltre alla soluzione di Danilo non c'e altro modo con codice, ma la soluzione sarebbe il vba.
Qualcuno può essermi di aiuto per un codice vba che faccia la stessa cosa del codice di Danilo.
Possibilmente un codice da inserire in un modulo e richiamarlo nella cella dove voglio il risultato con una stringa di codice che attiva la macro.
Esempio: =sommarenumeri( range delle celle che vorrei sommare)
Il file che ho allegato ieri ha un codice vba sul modulo 1. Ma quel codice mi fa la somma dei numeri in una cella ad esempio : 4P+5CIG
Mi da come risultato "9"
Magari bisogna adegualro al mio caso e cioè fare la somma di più celle alfanumeriche.
Se rileggete la mia risposta #27635 delle 15:17 di ieri capite cosa intendo.
Ve ne sarei grato per l'aiuto
Ringrazio anticipatamente tutti
Ciao
Prova con questa UDF
'Marius44 Function SommaNumeri(rng As Range) For Each C In rng a = a + Val(C) Next SommaNumeri = a End FunctionNella cella dove vuoi il risultato scrivi =SommaNumeri( ) e dentro le parentesi seleziona l'intervallo interessato
Ciao,
Mario
Allegati:
You must be logged in to view attached files.Marius Grazie mille
perfetto proprio quello che cercavo
un saluto a tutti. perdonate la mia intrusione/curiosità. pensavo di approfittare dello scritto di Marius.
mi sono accorto che la udf non somma i numeri che non cominciano per un numero. somma 4a+4b. non somma
a4+b4. puoi inventare qualcosa ?
grazie.
Ciao
Prova quest'altra
'Marius_bis Function SommaNumeri2(rng As Range) For Each C In rng If IsNumeric(C.Value) Then a = a + C.Value Else nn = Split(C, "+") On Error Resume Next For i = 0 To UBound(nn) a = a + Val(nn(i)) Next i End If Next SommaNumeri2 = a End Functionil seguito come prima però per l'intervallo B7:B11
Ciao,
Mario
Allegati:
You must be logged in to view attached files.Ciao
Riflettendoci forse è meglio così
'Marius_bis Function SommaNumeri2(rng As Range) For Each C In rng If IsNumeric(C.Value) Then a = a + C.Value Else On Error Resume Next nn = Split(C, "+") For i = 0 To UBound(nn) a = a + Val(nn(i)) Next i On Error GoTo 0 End If Next SommaNumeri2 = a End FunctionCiao,
Mario
-
AutoreArticoli
