|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
17-03-2017, 17.52.54 | #1 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Conta.Se (Excel home 2016)
La formula =CONTA.SE(A38:A45;">=150") restituisce correttamente il valore 6. La formula =CONTA.SE(A38:A45; E(">=150"; "<=160" ) ) restituisce erroneamente 0 (zero). La formula =E(CONTA.SE(A38:A45;">=150"); CONTA.SE(A38:A45;"<=160") ) restituisce "VERO" (?) La domanda è: c'è modo di fare una semplice formula per ottenere quanti valori sono compresi tra 150 e 160, cioè 4? Grazie Riccardo |
17-03-2017, 22.03.13 | #2 | |
Senior Member
WT Expert
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
|
Rif: Conta.Se (Excel home 2016)
Quota:
comunque puoi farlo in questo modo Codice:
=CONTA.SE(A38:A45;">=150")-CONTA.SE(A38:A45;">160") Codice:
=CONTA.PIÙ.SE(A38:A45;"<=160";A38:A45;">=150")
___________________________________
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale - |
|
18-03-2017, 11.39.04 | #3 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
Grazie Alexsandra, si ovviamente i valori sono 3, ma quello è una mia svista non c'entra con le formule.
Le tue formule funzionano entrambe (ovviamente) quindi grazie ancora. Ciao, Riccardo |
18-03-2017, 12.23.39 | #4 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
A questo punto (l'appetito vien mangiando, dice un vecchio proverbio), vorrei proporre un altro questito sulla scia del precedente:
si potrebbe fare una formula analoga che trovasse gli stessi valori, compresi in un intervallo, se i valori fossero stringhe di testo? Ad es. la stringa di testo "232abc" è minore di "253cde" ed è maggiore di "167zzz", assunto che la stringa di testo cominci sempre con la parte numerica (232, 253, 167, eccetera). grazie |
18-03-2017, 21.41.54 | #5 | |
Senior Member
WT Expert
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
|
Rif: Conta.Se (Excel home 2016)
Quota:
quello che chiedi ora è di elaborare una stringa di testo, per cui non riusciamo e stabilire i valori minimo e massimo. possiamo trovare quante volte compare il valore "150" in una stringa ma non riusciamo a stabilire quante occorrenze ci sono in un intervallo tra i valori 150 e 160. si dovrebbe fare una prima elaborazione ed estrarre i primi 3 caratteri es. SINISTRA("160";3) e poi applicare la formula vista precedentemente. comunque faccio delle prove ma non credo che si riesca
___________________________________
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale - |
|
19-03-2017, 10.21.46 | #6 | |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
Quota:
P.S. mi sono scaricato il tuo corso di VBA, bellissimo! Chissà che non riesca a combinare qualcosa anche io .... ! Grazie Riccardo |
|
19-03-2017, 10.37.12 | #7 | |
Senior Member
WT Expert
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
|
Rif: Conta.Se (Excel home 2016)
Quota:
sulla stringa da elaborare è meglio usare la forma numerica tagliando le lettere (123sde) Se usiamo la parte di stringa numerica (123), dopo averla convertita, possiamo usare gli operatori di confronto <>= e fare le operazioni che chiedi. In questo modo si semplifica notevolmente il tutto, mentre valutare la forma abc e stabilire un confronto <> rispetto a ghi diventa molto più complicato. concludendo con vba stabilire che 123abc è minore di 124def non è un problema, diventa più complicato confrontare abc con def fai sapere come vuoi proseguire
___________________________________
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale - |
|
19-03-2017, 11.39.01 | #8 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
Grazie ancora Alexsandra, ma non voglio farti "impazzire" per una questione che non è di vitale importanza, visto che hai già risolto brillantemente per il formato numerico.
Tuttavia, se posso approfittare ancora della tua disponibilità, quando avrai del tempo, potresti provare a risolvere la questione utilizzando le stringhe, le più generiche possibili; in tal modo ingloberemmo qualsiasi formato, dal più generico, al più particolare. Cioè: una funzione VBA che confrontasse i valori di stringa qualsiasi sarebbe valida sia per il formato "123abc" che per il formato "abc123" e ciò mi parrebbe una soluzione universale e definitiva: sempre che sia possibile tecnicamente. Io credo che la stringa sia valutata in funzione dei caratteri ASCII da cui è composta: ad es. "1" vale 48 nella tabella ASCII, "A" vale 65, per cui è > di "1" e così via. Grazie ancora. Cordialmente, Riccardo |
19-03-2017, 16.45.10 | #9 | |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
Quota:
Ho provato ad elaborare questa formula, scopiazzando qua e là, ma non funziona............... Chiedo suggerimenti, grazie Ciao Function ComparaStringheArea(AreaValori As Range, Criterio As String, Riferimento As String) ' Crietrio può assumere solo i valori: "=", ">", "<", ">=", "<=" Dim cella As Range 'If Criterio = ">" Then MsgBox ("criterio = " & Criterio) On Error Resume Next For Each rng In AreaValori Set cella = Cells(rng.Row, AreaValori.Column) If Criterio = "=" Then If StrComp(cella, Riferimento) = 0 Then Res = Res + 1 End If ElseIf Criterio = ">=" Then If StrComp(cella, Riferimento) >= 0 Then Res = Res + 1 End If ElseIf Criterio = "<=" Then If StrComp(cella, Riferimento) <= 0 Then Res = Res + 1 End If ElseIf Criterio = "<" Then If StrComp(cella, Riferimento) < 0 Then Res = Res + 1 End If ElseIf Criterio = ">" Then If StrComp(cella, Riferimento) > 0 Then Res = Res + 1 End If End If Next ComparaStringheArea = Res End Function |
|
19-03-2017, 17.13.53 | #10 | |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
Quota:
Che ne dite? Riccardo |
|
21-03-2017, 19.33.08 | #11 |
Senior Member
WT Expert
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
|
Rif: Conta.Se (Excel home 2016)
in sostanza cosa devi fare?
___________________________________
- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale - |
22-03-2017, 14.38.28 | #12 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
La funzione conteggia i valori delle celle di una area, passata come parametro, che soddisfino il criterio "<=>" anch'esso passato come parametro, di un valore di riferimento passato come parametro. I valori delle celle sono stringe di testo qualsiasi.
Ho qualche difficoltà a far riconoscere e saltare dal conteggio le celle vuote. Però tutto questo lavoro è forse inutile, perché nel frattempo mi sono accorto che anche le semplici funzioni CONTA.SE e CONTA.PIU.SE funzionano benissimo anche con valori testuali. Però mi piacerebbe comunque un giudizio sulla funzione che ho elaborato per saper se è formalmente corretta oppure come dovrei modificarla per renderla tale. Bé grazie comunque. Riccardo |
22-03-2017, 17.40.13 | #13 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Conta.Se (Excel home 2016)
Quota:
Incolonna un po questi valori: abc abc123 123abc 0abc e poi ordinali in modo crescente o decrescente. Che criterio usa se le stringhe ASCII non sono tutte numeriche ? E che razza di ordinamento crescente esegue sui nomi dei files ?
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
|
23-03-2017, 10.29.37 | #14 |
Sospeso
Registrato: 25-03-2008
Messaggi: 247
|
Rif: Conta.Se (Excel home 2016)
Non credo di aver capito bene la tua domanda. Comunque l'ordinamento crescente della sequenza da te proposta è:
0abc 123abc abc abc123 Ciò corrisponde esattamente al criterio dei valori ASCII crescenti essendo: 0 < 1 (48 < 49) 1 < a (49 < 122) abc < abc123 (essendo uguali le prime 3 lettere) Grazie |
23-03-2017, 11.34.13 | #15 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Conta.Se (Excel home 2016)
Mi risulta un po diversa in Calc:
abc 0abc 123abc abc123 La sequenza abc123 è in fondo per entrambi, ma oltre alla posizione di ogni singolo carattere nella tabella ASCII che corrisponde ad un valore ordinato in modo crescente, ci dev'essere qualcos altro che interviene nell'ordinamento...a me sembra più corretto Calc. Tu cosa dici ?
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Excel 2016 e Vba "Ricerca file" | kilow | Office suite | 5 | 06-01-2017 11.13.52 |
Corso VBA | Alexsandra | Guide | 85 | 16-11-2016 12.11.51 |
Europei di Calcio 2016 con Excel | Alexsandra | Office suite | 30 | 25-06-2016 00.14.08 |
Laboratorio di VBA: Programmi e file sorgenti | Alexsandra | Guide | 17 | 16-03-2016 21.33.27 |