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 23-03-2017, 12.29.05   #16
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

Sei certo di non aver erroneamente indicato la prima riga come intestazione (quindi in posizione fissa)? Altrimenti non saprei che dire, però l'ordine ASCII non può che essere quello che ho indicato sopra, basta consultare la tabella dei valori ASCII.
R.
riccardonard non è collegato   Rispondi citando
Vecchio 23-03-2017, 13.12.35   #17
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
Sei certo di non aver erroneamente indicato la prima riga come intestazione (quindi in posizione fissa)? ...
Assolutamente no.
Ho creato un range di selezione definendo una matrice monodimensionale i cui estremi sono la prima e l'ultima riga: Sull'intera matrice costituita da valori alfanumerici ho effettuato un ordinamento di tipo crescente.
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Vecchio 23-03-2017, 17.32.43   #18
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

A questo proposito non so che dire di più.
Ma, tornando all'oggetto primario di questa discussione, debbo dire che le funzioni CONTA.SE e CONTA.PIU.SE funzionano egregiamente trovando all'interno di aree di celle sia numeriche sia alfanumeriche gli elementi che corrispondono ai criteri "<=>", superando quindi la necessità di funzioni esterne, come avevo provato a fare io.
Grazie a tutti per gli interventi.
Ric
riccardonard non è collegato   Rispondi citando
Vecchio 23-03-2017, 21.18.22   #19
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)

Excel ordina i numeri in base ai loro valori e le parole in ordine alfabetico, inoltre prende in considerazione criteri di ordinamento come:

1) prima le cifre da 0 a 9
2) Poi lo spazio
3) quindi i caratteri speciali e i segni di punteggiatura come !$%&/*@[ <=> etc.

Il problema di ordinamento che ha manifestato LoryOne a mio avviso è dovuto a una diversa "personalizzazione" dei criteri si ordinamento in Calc.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 23-03-2017, 22.21.42   #20
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)

Tornando al quesito posto ....... hai detto:

abbiamo usato la funzione SE per contare quante volte un valore è presente in un intervallo di celle e che soddisfi un determinato criterio (es. > 150), ossia quanti valori sono presenti in un range di celle che siano maggiori di 150

Dopo hai chiesto

Quota:
Inviato da riccardonard
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).
e successivamente

Quota:
Inviato da riccardonard Visualizza messaggio
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.
Non ho ancora capito cosa si deve fare

contare quante volte una stringa è presente in un intervallo?? (abc)
contare quante volte una stringa alfanumerica è presente in un intervallo?? (123abc)
confrontare delle stringhe in un intervallo e ordinarle?? (582kya)

dobbiamo fare una funzione/sub vba con un criterio di ricerca per sapere in un intervallo di celle quante volte è presente la "voce" zkw953 ????

non capisco cosa serve sapere "232abc" è minore di "253cde" ed è maggiore di "167zzz" se cerchiamo zkw953 ???

io non ho ancora capito

sarebbe opportuno una spiegazione più dettagliata.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 24-03-2017, 12.23.29   #21
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)

Riccardo vuole semplicemente contare quante volte, all'interno di un range di valori, un altro valore passato come parametro è > oppure = oppure < oppure <= oppure >= rispetto ad ogni valore nel range.
Per far questo, aveva in precedenza prodotto una sua funzione in VBA, ma poi si è accorto che Excel ha già cio che gli serviva.
Nello scrivere la funzione, però, ha fatto riferimento a StrComp che mette in comparazione due sequenze alfanumeriche; Da li in poi, si è chiesto in che modo funzionasse tale funzione ed ha dedotto:
"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"
48 è '0', 49 è '1', 65 è 'A', 97 è 'a' (cioè 65+32),ecc,ecc
Dando validità alla sua asserzione, avendo stabilito che due parametri p1 e p2 messi in correlazione producono un risultato secondo il quale p1 è maggiore di p2 o viceversa, volendo fornire un più ampio margine applicativo alla logica algoritmica di comparazione, ho proposto di effettuare un ordinamento crescente o decrescente di differenti valori alfanumerici, riscontrando diversità tra il risultato proposto da Excel e quello di Calc ed attribuendo a quest'ultimo, a mio avviso, un migilor risultato a parità di condizione.
___________________________________

Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice
LoryOne non è collegato   Rispondi citando
Vecchio 24-03-2017, 12.35.57   #22
riccardonard
Sospeso
 
Registrato: 25-03-2008
Messaggi: 247
riccardonard promette bene
Rif: Conta.Se (Excel home 2016)

E' perfetto LoryOne, hai interpretato perfettamente tutta la storia, partita dal confronto numerico ed estesa successivamente al confronto di stringhe.
Non resta che affidarsi fiduciosamente alle funzioni integrate in excel per verificare che esse conteggiano effettivamente quanti valori sono compresi fra gli estremi desiderati, quindi ogni altra discussione sull'ordinamento crescente/decrescente è puramente accademica.
Tuttavia questa discussione, per me, è stata veramente interessante ed illuminante rispetto a tutti i punti toccati.

Grazie veramente a tutti i partecipanti.
Riccardo
riccardonard non è collegato   Rispondi citando
Vecchio 24-03-2017, 21.19.43   #23
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)

stiamo parlando di una cosa accademica???

No perchè determinare il valore < o > in un range ha un senso logico, stiamo parlando di numeri, Excel è un foglio di calcolo.
Trovare con gli stessi criteri in un range di stringhe è illogico.
una stringa può essere comparata con altre stringhe, ma mai con un valore numerico.
posso contare quante volte un determinato carattere compare in un range, quante stringhe uguali ci sono etc... e questo ha un senso logico, numeri con numeri e stringhe con stringhe, ma mescolare le 2 cose con criteri numerici è un conflitto.

IMHO
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 25-03-2017, 16.33.22   #24
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: Conta.Se (Excel home 2016)

Numeri e stringhe si confrontano quando devi ordinare dei valori alfanumerici. In questo caso non puoi fare a meno di trovare un modo che permetta di valutare cosa venga prima o dopo.
Questo modo, di norma, è il confronto della codifica ascii (o unicode) del carattere: sia quelli numerici che quelli alfabetici ne hanno una, è un numero e può essere ordinata. E in questo caso i numeri vengono prima delle lettere.

In soldoni, se la tua domanda è: "viene prima la parola cisco o la parola 3com?", un modo per risolvere il problema va trovato.
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 26-03-2017, 00.31.33   #25
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)

@borgata
si ma i criteri di precedenza in un ordinamento è stabilito dalle regole di VB, come avevo citato qualche post sopra, è il metodo più stabile e affidabile da estrapolare.

A mio avviso usare la conversione Ascii non è affidabile in quanto se usiamo il codice vba come una funzione abbiamo sempre l'operatore (< > =) che può falsare il valore ascii della stringa in esame.

penso che la strada da seguire sia la funzione StrComp che aveva presentato riccardo, e che ho modificato. Questa funzione confronta 2 stringhe e restituisce un valore che può essere:

-1 se la stringa1 è minore della stringa2
0 se la stringa1 è uguale alla stringa2
1 se la stringa1 è maggiore della stringa2

Ora facendo un test, per cui parliamo di codice in versione beta, ho ottenuto questo



facendo un confronto tra la stringa in A1 e quella in A2 sappiamo subito (tra le 2) quale sia < > o =
come si vede in colonna C.
Il codice è questo

Codice:
Sub test1()
Dim conf, i As Integer
Dim string1, string2 As String

For i = 1 To 7
    string1 = Range("A" & i)
    string2 = Range("A" & i + 1)
    conf = StrComp(string1, string2, vbTextCompare)
    
    Select Case conf
        Case 0
            Range("C" & i) = "uguale"
        Case 1
            Range("C" & i) = "è maggiore"
            Case -1
            Range("C" & i) = "è minore"
    End Select
Next i

End Sub
A mio avviso si dovrebbe lavorare su questa funzione e nel ciclo For (che dopo sarà un For Each) passare il valore di confronto (la stringa da cercare ..... dfr256)

????
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 26-03-2017, 20.09.39   #26
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
Rif: Conta.Se (Excel home 2016)

Aspetta... stai confondendo il metodo di confronto con il metodo di ordinamento.

Quello di cui si parlava mi pare fosse il metodo di confronto, ossia stabilire quando una stringa viene prima di un'altra nell'ordinamento.

Come dicevamo, il metodo "standard" per stabilire questo ordinamento è utilizzare la codifica ascii/unicode del carattere (a seconda della codifica utilizzata), che può essere facilmente confrontata e da un risultato tipicamente accettato da tutti.

Ovviamente nulla ci vieta di creare un nostro criterio di confronto qualora ce ne fosse la necessità, ma non mi pare questo il caso.

Oltretutto se non ricordo male il problema è dovuto al fatto che incomprensibilmente Excel ordina le stringhe in maniera non standard, a differenza di Calc che esegue l'ordinamento in modo corretto.
Il problema dove sta quindi? Si vuole ricreare con Excel la codifica ottenuta con Calc?
___________________________________

La risposta è dentro di te...
e però, è sbagliata!
borgata non è collegato   Rispondi citando
Vecchio 27-03-2017, 11.18.37   #27
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)

no, stavo solo facendo un ragionamento "accademico" sul metodo da usare. (StrComp)
confrontando 2 stringhe con StrComp possiamo ottenere quello che cerchiamo, cioè una stringa può essere maggiore, minore o oguale della stringa di comparazione.
per cui se cerchiamo quanti valori sono compresi tra 2 indici (> e <) possiamo usare il valore che restituisce StrComp.

Ma questo ancora Sabato, ieri ho avuto un po' di tempo e ho visto che convertendo in ascii la stringa si semplifica notevolmente il lavoro di programmazione ricavando un codice più affidabile.

Poi parlando di ordinamento, che in questo contesto io lo farei, in Excel viene eseguito dando la precedenza a:

1) prima le cifre da 0 a 9
2) Poi lo spazio
3) quindi i caratteri speciali e i segni di punteggiatura come !$%&/*@[ <=> etc.
4) poi i valori stringa.

e i metodi di confronto tra le stringhe seguono lo stesso criterio dell'ordinamento

Mentre invece convertendo la stringa in ascii viene semplificato il tutto in quanto diventando un numero basta solo applicare il metodo usato dalla funzione SE per avere il conteggio delle occorrenze tra 2 indici.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 27-03-2017, 23.34.53   #28
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)

Lasciando perdere l'accademico ...... tutto finisce con la stessa formula

=CONTA.SE(A2:A8; ">="&"BC350")

=CONTA.PIÙ.SE(A18:A24;"<="&"FR3500";A18:A24;">="&" BC350")
oppure
=CONTA.PIÙ.SE(A18:A24;"<=FR3500";A18:A24;">=BC350" )

funziona anche con i valori numerici dopo la stringa

=CONTA.PIÙ.SE(E18:E24;"<="&"350BC";E18:E24;">="&"3 500FR")

in questo caso si devono invertire gli estremi della ricerca.

___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra 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: 12.56.27.


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.