Telefonino.net network
 
| 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 » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 17-03-2017, 17.52.54   #1
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Conta.Se (Excel home 2016)

Ho una tabellina di esempio A38:A45 , ma destinata a crescere per impieghi reali, contenente i seguenti valori: 141, 147, 150, 164, 157, 170, 165, 160.

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
riccardonard non è collegato   Rispondi citando
Vecchio 17-03-2017, 22.03.13   #2
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
..... 141, 147, 150, 164, 157, 170, 165, 160.

La domanda è: c'è modo di fare una semplice formula per ottenere quanti valori sono compresi tra 150 e 160, cioè 4
è sbagliato il valore 4. tra 150 e 160 ci sono 3 valori .... 150 - 157 e 160

comunque puoi farlo in questo modo
Codice:
=CONTA.SE(A38:A45;">=150")-CONTA.SE(A38:A45;">160")
in pratica fai una sottrazione di valori, usando l'indice max e min. oppure
Codice:
=CONTA.PIÙ.SE(A38:A45;"<=160";A38:A45;">=150")
e ti riporta il valore 3
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 18-03-2017, 11.39.04   #3
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 18-03-2017, 12.23.39   #4
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 18-03-2017, 21.41.54   #5
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
....la stringa di testo "232abc" è minore di "253cde" ed è maggiore di "167zzz"...
Il problema è che prima abbiamo cercato un valore numerico, per cui è stato possibile estrarre il valore minimo e massimo dell'intervallo.

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 -
Alexsandra non è collegato   Rispondi citando
Vecchio 19-03-2017, 10.21.46   #6
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da Alexsandra Visualizza messaggio
Il problema è che prima abbiamo cercato un valore numerico, per cui è stato possibile estrarre il valore minimo e massimo dell'intervallo.

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
Ti ringrazio dell'interessamento Alexsandra: io pensavo, ma non sono capace di farlo con un programmino VBA, che si potesse fare una comparazione di stringhe e sabilire che la strinca "abc" è minore della stringa "fgh", di conseguenza valutare un ordine di Maggiore/Minore fra le stringe e quindi stabilire che la stringa "cde" è compresa fra "abc" e "hij" ad esempio; quindi contare quante stringe sono comprese fra due estremi passati come parametri ad una funzione che esamina un'area di valori (es. A1:B10). Che poi nella stringa ci siano o meno caratteri numerici, dovrebbe risultare assolutamente ininfluente, no?
P.S. mi sono scaricato il tuo corso di VBA, bellissimo! Chissà che non riesca a combinare qualcosa anche io .... !
Grazie
Riccardo
riccardonard non è collegato   Rispondi citando
Vecchio 19-03-2017, 10.37.12   #7
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
.....sabilire che la strinca "abc" è minore della stringa "fgh", di conseguenza valutare un ordine di Maggiore/Minore fra le stringe e quindi stabilire che la stringa "cde" è compresa fra "abc" e "hij" ....
Se usiamo VBA il discorso cambia, possiamo fare una funzione e richiamarla nel foglio come formula, oppure elaborare tutto in vba in base ad un evento o al clik su un pulsante.

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 -
Alexsandra non è collegato   Rispondi citando
Vecchio 19-03-2017, 11.39.01   #8
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 19-03-2017, 16.45.10   #9
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
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


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
riccardonard non è collegato   Rispondi citando
Vecchio 19-03-2017, 17.13.53   #10
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
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
In realtà funziona (avevo sbagliato sintassi di chiamata), è solo molto brutta dal punto di vista formale, però dopo alcune prove sul campo funziona; per avere dei valori compresi fra due estremi bisognerà esegire la differenza come nella funzione CONTA.SE proposta prima da Alexsandra.
Che ne dite?
Riccardo
riccardonard non è collegato   Rispondi citando
Vecchio 21-03-2017, 19.33.08   #11
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Conta.Se (Excel home 2016)

in sostanza cosa devi fare?
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 22-03-2017, 14.38.28   #12
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 22-03-2017, 17.40.13   #13
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: Conta.Se (Excel home 2016)

Quota:
Inviato da riccardonard Visualizza messaggio
...
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.
Però...niente male.
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
LoryOne non è collegato   Rispondi citando
Vecchio 23-03-2017, 10.29.37   #14
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
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
riccardonard non è collegato   Rispondi citando
Vecchio 23-03-2017, 11.34.13   #15
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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
LoryOne non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

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

Orario GMT +2. Ora sono le: 01.23.17.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.