Condividi:        

formula matrice a cella singola

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: formula matrice a cella singola

Postdi giorgioa » 13/08/15 07:12

Salve Anthony47 e buona giornata,

:lol: chiarisco che la function che mi hai scritto da me non sarà manomessa
nel modo più assoluto.

Quello che chiedo adesso è si attinente la function come formula ma ha un ragionamento
a parte, i numeri che saranno calcolati saranno sempre 20 per riga e su tutto l'archivio,
come esempio dimostrativo mi sono dovuto appoggiare ad un solo numero
altrimenti non avrei ottenuto lo stesso risultato dell'esempio 5.

Secondo te, ti ho fatto fare tutto quel popò di lavoro per poi dirti che devi
calcolare da 20 numeri ora ad un numero?

Ho chiesto che la formula di XYZ di tutto l'archivio mi desse il risultato da una cella,
quindi così ho evitato di usare la prima formula per 145 righe e questo confermo
OTTIMAMENTE era quello che volevo e voglio e quindi la Function non si tocca.
Ora sotto la prima formula x6-y6-z6 devo usare le altre formule, quello che ho voluto far
notare con l'esempio è che scrivendo altre formule faccio fare alla funzione
gli stessi calcoli.
Ecco il perchè di avere una formula che rappresenti le altre.
Di quelle tre formule di XYZ invece di utilizzarne 3 ne utilizzerei una.

Se come ragionamento sto facendo confusione non insisto a continuare.

Buon prosieguo di giornata
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Sponsor
 

Re: formula matrice a cella singola

Postdi giorgioa » 13/08/15 14:25

Ciao Anthony47,

prima ho risposto un pò frettolosamente che come mio solito
incorro in inesattezze e conseguentemente in confusione.
Qui non intendo fare braccio di ferro anche perchè chi sta dall'altra
parte non conosco la presenza fisica.
A prescindere, io faccio questo calcolo manuale e correggimi se sbaglio " no problem".
il calcolo verte solo su c6, c7, c8 (mi è scappato c1) il cui numero vale per tutti e 3 UNO 1,
la formula è
1)+2*1+2 :
passaggio 1)1+2=3;
passaggio 2)3*1=3;
passaggio 3)3+2=5 e qui siamo daccordo;
insieme:(((1+2)*1)+2)=5

2)+2*2+89 :
passaggio 1)1+2=3;
passaggio 2)3*2=6;
passaggio 3)6+89=95-90=5;
insieme:(((1+2)*2)+89)=95-90=5
3)+2*3+86:
passaggio 1)1+2=3;
passaggio 2)3*3=9;
passaggio 3)9+86=95-90=5.
insieme (((1+2)*3)+86)=95-90=5

Solo una domanda: la function fa questo calcolo?
se non è così occorre rivedere il calcolo.

per chiarimento, l'1 iniziale del calcolo è il numero che sta in C6-C7,C8.
E poi col calcolo finale se esso supera il 90 sottrarre a questo 90.

A volte da una ulteriore richiesta potrebbe chiarire meglio la questione precedente.
Salve
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi giorgioa » 14/08/15 07:52

Salve Anthony e buona giornata,

intervengo per dire che il calcolo così come l'ho esposto su un singolo numero
la funzione deve cmq fare il calcolo per i 20 numeri.

Il mio esempio è valso come dimostrativo sul singolo numero per agganciare il discorso
di ciò che vorrei delle formule per non far ripetere lo stesso calcolo alla formula e poi
per non avere le stesse statistiche-dati.

Poi ho notato che in xyz-1 hai + + *, se il calcolo manuale che fai rispetta questi operatori
non puoi trovarti con i miei calcoli. Però ho visto che nella funzione gli operatori sono
posti come li voglio io cioè + * +.

:D dopo divertiti che domani è ferragosto che poi domani "Rossella Hoara" disse
" domani è un altro giorno" certo che un giorno è sempre diverso dall'altro.

Buoni tuffi, ciao
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi giorgioa » 15/08/15 08:36

Salve Anthony47,

per qualche dollaro pardon parentesi in meno...

Buon ferragosto che domani è un altro giorno :D :lol: :D

Oggi niente :idea: , tranquillo....
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi Anthony47 » 16/08/15 23:23

Rieccomi... Ma continuo a non capire...
Nel senso che la function, sull'archivio di 20 colonne *145 righe, fa 2900 calcoli; che senso ha confrontare 1 (uno) di questi 2900 componenti? Il risultato di una formula sarebbe il duplicato di una formula precedente solo se ognuno dei 2900 elementi di una riga fosse uguale ai 2900 elementi di un calcolo successivo, esaminati nello stesso ordine.
Una probabilita' infinitesimale, direi...

giorgioa ha scritto: A prescindere, io faccio questo calcolo manuale e correggimi se sbaglio " no problem".
il calcolo verte solo su c6, c7, c8 (mi è scappato c1) il cui numero vale per tutti e 3 UNO 1,
la formula è
1)+2*1+2 :
passaggio 1)1+2=3;
passaggio 2)3*1=3;
passaggio 3)3+2=5 e qui siamo daccordo;
insieme:(((1+2)*1)+2)=5
NO, NON SIAMO D'ACCORDO
La funziona calcola
C6+X6*Y6+Z6
Per le regole dell'aritmetica, se C6, X6, Y6 e Z6 sono rispettivamente 1, 2, 1, 2 allora il calcolo sara'
1+ (2*1) + 2 = 1+2+1=5

Se C6, X6, Y6 e Z6 sono rispettivamente 1, 2, 2, 89 allora il calcolo sara'
1+ (2*2)+89 = 1+4+89 = 94
Da cui 94-90 = 4

Infine se C6, X6, Y6 e Z6 sono rispettivamente 1, 2, 3, 86 allora il calcolo sara'
1 + (2*3) + 86 = 1+6+86 = 93
Da cui 93-90=3
In questi esempi le parentesi le ho inserite solo per ricordare l'ordine e la priorita' di elaborazione definite dalle regole di aritmetica.

giorgioa ha scritto:Solo una domanda: la function fa questo calcolo?
Per quanto appena detto, la function non fa il calcolo che tu stai dicendo, ma fa il calcolo come era impostata nella formula nel file a suo tempo pubblicato:
Codice: Seleziona tutto
=SE(CONTA.SE($C8:$V8;(RESTO(SOMMA($C7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($D7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($E7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($F7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($G7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($H7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($I7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($J7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($K7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($L7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($M7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($N7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($O7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;((RESTO(SOMMA($P7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($Q7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($R7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($S7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($T7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($U7)+$X$3*$Y$3+$Z$3;90)))+CONTA.SE($C8:$V8;(RESTO(SOMMA($V7)+$X$3*$Y$3+$Z$3;90))))=$AA$1;1;"")
(solo che la fa su tutte le 145 righe).

giorgioa ha scritto: se non è così occorre rivedere il calcolo
Se hai cambiato idea rispetto a quanto facevi nel file a suo tempo pubblicato, bastera' rivedere l'istruzione
mycrit = (myAll.Cells(I - 1, J).Value + (my3.Cells(1, 1) * my3.Cells(1, 2)) + my3.Cells(1, 3)) Mod 90

I 4 termini presenti sono rispettivamente l'equivalente delle colonne C, X, Y e Z; variando le parentesi si possono imporre nuove priorita' di elaborazione per modificare quelle standard dell'aritmetica.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula matrice a cella singola

Postdi giorgioa » 17/08/15 05:09

Salve Anthony,

mi dispiace che le vacanze sono terminate ma è un piacere risentirti.

Possiamo tagliare la testa al toro?

Se puoi farsi che il calcolo fa che:
che a C6 addiziona il primo numero e poi a questo moltiplica il 2° e poi ancora addiziona il terzo,
quindi questo stesso calcolo va fatto per tutti i 20 numeri di riga.

(ero convinto che le parentesi erano messe diversamente e le ho cambiato più volte per via di far
riconoscere, quando lo trovava lo ZERO in 90).

Per quanto riguarda le formule, eliminazione delle rappresentative, così le ho chiamate,
è che cerco un algoritmo che statisticamente dia risultati superiori rispetto ad un'altra formula.
Ma provando e riprovando, penso di aver notato che alla fine, facendo calcoli, il risultato
lo si può ottenere sulla frequenza del numero o meglio dei numeri nel suo insieme.

Se qualche idea buon pro.
Grazie e felice di averti risentito.
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi By Sal » 17/08/15 09:32

Ciao a tutti, volevo scaricare il file per cercare di capire, ma non è più disponibile, se lo puoi inserire di nuovo, mi sarebbe utile a capire.

parli di 20 numeri, ma si tratta del gioco 10elotto? o 10elotto5?

se è cosi cosa ti serve?, perchè non si è capito molto, almeno io non ho compreso cosa vuoi trovare.

Ciao By Sal (8-D
A rileggerci By Sal
Avatar utente
By Sal
Utente Junior
 
Post: 83
Iscritto il: 27/08/06 14:40

Re: formula matrice a cella singola

Postdi giorgioa » 17/08/15 09:46

Salve By Sal

ecco il file in questione


http://www.filedropper.com/formulainmatrice2

Salve
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi giorgioa » 17/08/15 15:13

Ciao By Sal,

si parla del 10elotto abbinato ai numeri lotto;

a cosa serve:

cerco uno o più algoritmi come segnato nelle colonne xyz;
attraverso uno o più di questi filtri quali sono quelli che hanno
dato una resa di vincite.
In altro loco questi filtri scelti fra i migliori danno dei numeri,
Come nell'esempio il filtro calcolato su C6 da un numero poi calcolato
su D6 sempre con lo stesso filtro da un altro numeri ecc fino a V.
Dei numeri ottenuti si fa un confronto con l'estrazione successiva e si
contano quanti numeri sono presenti -
Fai attenzione che i numeri ottenuti dal rigo 6 si confrontano con quelli del rigo 7,
poi si ricomincia il calcolo del rigo 7 e i numeri ottenuti li confronta sul rigo 8
eccetera poi i punti ottenuti nelle colonne aa, ab, ecc si prenderebbero quelli con valori
più alti ...
spero mi darai un aiuto.
Grazie dell'interessamento

Salve
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi By Sal » 17/08/15 17:24

Ciao Giorgio, da alcuni controlli fatti, conviene giocare 5 numeri, e le massime frequenze dei 5 numeri delle precedenti 36 estrazioni.

Premesso che non gioco, ma mi piace vedere le possibilità, sia con i ritardi che con le frequenze, per i ritardi poi bisognerebbe calcolare quale sia il massimo ritardo dello sfaldamento(uscita) della combinazione giocata.

dopo quel ritardo incominciare a giocare la combinazione.

una volta stabilita quale sia la combinazione da giocare, la controllo per tutto il giorno, non cambio ogni volta i numeri, altrimenti per effetto delle probabilità partiresti sempre da 0zero

il tuo algoritmo, però, non l'ho capito ancora.

ma mi sembra troppo breve la distanza che consideri, la riga attuale con la precedente

ti allego un immagine del file che ho creato per i controlli, certo sono solo test, sto ancora cercando di finirlo, ma non ho mai tempo.

http://i57.tinypic.com/2lscf1x.jpg

se mi spieghi meglio il tuo algoritmo vedo applicandolo che risultati mi da.

Ciao By Sal (8-D
A rileggerci By Sal
Avatar utente
By Sal
Utente Junior
 
Post: 83
Iscritto il: 27/08/06 14:40

Re: formula matrice a cella singola

Postdi giorgioa » 17/08/15 18:02

Salve Anthony47,
:( :cry:
è un accorgimento dopo lo sviluppo,
NON MI DARE COLPA.
si tratta di questo quando fa i calcoli
per via delle addizioni, moltiplicazione e
escludendo il resto dopo 90 si vengono a trovare
numeri uguali ora la funzione quando fa il confronto
con la riga successiva avendo 2 numeri uguali fa
il conteggio doppio se nella successiva riga trova il
numero doppio calcolato sul rigo precedente. .
Riporto i dati di una estrazione completa di calcoli
dove segnata la X i numeri sono singoli,
dove segnata la y e z i valori uguali sono 2 e aggiungo
che potrebbero essere anche di più:
Il filtro usato è +2*3+86 cioè ((c6+2)*3+86)
5 = 17 x
7 = 23 x
11 = 35 x
20 = 62 x
21 = 65 z
25 = 77 x
27 = 83 x
29 = 89 x
40 = 32 x
44 = 44 x
47 = 53 y
51 = 65 z
56 = 80 x
60 = 2 x
61 = 5 x
72 = 38 x
75 = 47 x
77 = 53 y
83 = 71 x

Nella funzione credo di aver posto le parentesi al posto giusto
ma un tuo controllo è ben accetto ma anche una strigliata va bene lo stesso

Function BZzz(ByRef myAll As Range, ByRef my3 As Range, ByVal myComp As Long) As Long
'Vedi viewtopic.php?f=26&t=105141
Dim I As Long, J As Long, myTot As Long
'
For I = 1 To myAll.Rows.Count
For J = 1 To myAll.Columns.Count
'sistemate le parentesi
mycrit = (((myAll.Cells(I - 1, J).Value + my3.Cells(1, 1)) * my3.Cells(1, 2)) + my3.Cells(1, 3)) Mod 90[/color]
'la vecchia
' mycrit = (myAll.Cells(I - 1, J).Value + (my3.Cells(1, 1) * my3.Cells(1, 2)) + my3.Cells(1, 3)) Mod 90
If mycrit = 0 Then mycrit = 90
myTot = myTot + Application.WorksheetFunction.CountIf( _
Application.WorksheetFunction.Index(myAll, I, 0), mycrit)
Next J
If myTot = myComp Then BZzz = BZzz + 1
myTot = 0
Next I
End Function
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi giorgioa » 17/08/15 18:40

Ciao By Sal,

faccio subito una premessa:
ALT!!! lungi da me il gioco 10elotto 5'
Ho avuto la fortuna di vincere quasi presto con un programma che aveva scritto
il bravissimo FLASH, 2-3 vincite che mi avevano fatto superare i 1000 €.
Ingolosito dalle vincite, per fortuna, ho il vizio di tenermi i calcoli aggiornati:
se non mi fermavo con quel che avevo vinto mi stavano rimanendo le briciole.

Cmq su questo gioco è corretto fare queste osservazioni che hai riportato
ma c'è un MA: non il tempo di fare questi calcoli, e siccome non ho mai
avuto la tentazione di iscrivermi ad un gioco ... lascio perdere.

Ora il ragionamento che mi hai riportato sul gioco 10elotto 5'
lo riportiamo su quello abbinato al lotto/serale
qui purtroppo vale solo una parte di quello che consigli cioè
applicare la frequenza dei numeri e vale anche il numero di
estrazioni che hai indicato cioè 36 circa è un'ottima scelta.
Mentre sui ritardi l'unico indizio che consiglio anche a chi legge
questo post di utilizzare il ritardo a partire dal 17esimo.

Ma di questo ne ho preso tantissime volte visione ma
ne sto venendo a capo che per fare queste giocate devi
utilizzare delle progressioni, ma fare delle progressioni ad esempio
5 numeri consigliati devi fare la progressione sul terno ma la resa
è a dir poco bassa. Ti aiuta nella progressione quando sui 5 numeri
ne escono 2 e così recuperi la giocata.

Alla fine ho convenuto ad un altro progetto che è questo degli algoritmi
o non so filtri.
Cerco 3-4 algoritmi/filtri che danno un buon punteggio di frequenza.
Aggiungo che per ogni estrazione non uso mai le stesse giocate,
dal calcolo potrebbe anche capitare che si propongono gli stessi numeri
ma è casuale.
Se hai bisogno di qualche altra notizia che ti può essere utile ad aiutarmi
spiegami in che cosa non mi sono spiegato.

Per algoritmo intendo quei numeri in rosso nelle colonne x z y che servono a dei calcoli
matematici da cui si ricavano dei numeri ...
Vale come chiacchierata ma se ritieni di approfondirla aspetto

Ciao By Sal
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi By Sal » 17/08/15 19:49

Ciao Giorgio, come ho premesso non gioco, mi serve solo per passatempo.

do un occhiata meglio al tuo metodo e ne riparliamo

non voglio occupare spazio che non è Excel.

Ciao By Sal (8-D
A rileggerci By Sal
Avatar utente
By Sal
Utente Junior
 
Post: 83
Iscritto il: 27/08/06 14:40

Re: formula matrice a cella singola

Postdi Anthony47 » 18/08/15 10:02

Questo forum non e' contro i giochi, ma noi sappiamo che nei giochi a estrazione quello che conta e' il caso, e "il caso" non guarda indietro.
Inoltre le regole del gioco sono studiate perche' il banco vinca molto piu' spesso del giocatore.

L'unico programma che conosco in grado di avvantaggiare il giocatore si chiama "BottaDiQulo.exe": cercatelo sul vosto Pc, magari e' gia' installato; ma se non c'e' allora sappiate che non e' in vendita.

Rispondero' aI QUESITI TECNICI PENDENTI piu' tardi.

Ciao a tutti

PS: C'e' un messaggio di By Sal prima di questo.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula matrice a cella singola

Postdi By Sal » 18/08/15 11:24

Ciao Antony, Giusto hai ragione "Il Caso", ma ci sono le probabilità, siamo circondati da probabilità ogni giorno.

Quel programma ce l'hanno poche persone, perchè viene rilasciato "Ad Personam".

il fatto che il banco vince sempre, anche qui non posso che darti ragione, specialmente nel Lotto o altri giochi, di base 1/3 viene incassato, quello che si vince non sono altro che i 2/3 rimasti, ed a volte nemmeno quello, perchè ci caricano anche le spese di gestione e tasse.

facciamo un caso, logico che più lungo è il periodo più aumentano le probabilità, diciamo che nell'arco di 5 anni, come base prendiamo 2 numeri, sono usciti diverse volte, se vediamo che nell'arco di questo periodo la distanza massima fra un uscita ed un altra sia stata di 100 estrazioni, ed abbiamo attualmente un ritardo di 100 estrazioni dei 2 numeri, con una probabilità del 60% uscirà nelle prossime estrazioni a breve, è inevitabile.

Cosa ben diversa se ogni volta cambiamo i 2 numeri, o facciamo calcoli nel breve periodo.

Ciao By Sal (8-D
A rileggerci By Sal
Avatar utente
By Sal
Utente Junior
 
Post: 83
Iscritto il: 27/08/06 14:40

Re: formula matrice a cella singola

Postdi Anthony47 » 18/08/15 17:07

@bySal
Caro Giorgio, giocate e continuate a giocare con piacere, ma (ripeto) "il caso" non guarda indietro e quindi le probabilita' di un evento casuale avra' sempre lo stesso valore, oggi, domani, la prossima settimana, il prossimo mese, etc etc (etc etc).

@giorgioa
Hai correttamente messo le parentesi nell'istruzione che ti avevo indicato affinche' il calcolo diventasse (C6+X6)*Y6+Z6; quindi "bravo!".

Continui invece a parlare del fatto che la funzione "quando fa il confronto con la riga successiva avendo 2 numeri uguali fa il conteggio doppio"; ma ripeto: la funzione fa 2900 calcoli su 20 + 20 + 3 numeri, secondo te e' possibile che i 2900 calcoli siano tutti uguali tra una riga e un'altra?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula matrice a cella singola

Postdi giorgioa » 18/08/15 17:46

Salve Anthony47,

fra i numeri calcolati ve ne sono alcuni uguali, come il caso di quei due
annotati e quando va a fare il confronto con la riga sotto e trova i 2 numeri
non farebbe l'addizione di 5 punti (è un esempio) ma sposta il conteggio nella colonna
a 7 punti.
Poniamo il caso che sulle 145 righe nel calcolo trova per 1/3 un numero uguale a conteggio
e contemporaneamente (per Ku.o) l'1/3 dei numeri si trovano nella riga di confronto
mi falsificherebbe la statistica nelle colonne punti.
Se questo dato si può correggere .... altrimenti non ....vinco per colpa della statistica

Grazie del bravo, sai tra schiaffi e calci in bocca ogni tanto il boxer si sente risollevato
... diciamo che qualche pugno pur essendo un pugno a riceverlo diventa più un piacere
che un dispiacere.
Se puoi sistemarlo. :mmmh: :D

Salve
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi Anthony47 » 19/08/15 00:07

Forse (forse) ho capito: la tua preoccupazione non e' per i calcoli tra una riga e le successive, ma nell'ambito della stessa riga.
Se e' cosi', allora forse (forse) questa variante della Function potrebbe tenerne conto:
Codice: Seleziona tutto
Function CZzz(ByRef myAll As Range, ByRef my3 As Range, ByVal myComp As Long) As Long
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=105141
Dim I As Long, J As Long, myTot As Long, myCz(0 To 90) As Long
'
For I = 1 To myAll.Rows.Count
'Erase myCz
    For J = 1 To myAll.Columns.Count
        mycrit = (myAll.Cells(I - 1, J).Value + (my3.Cells(1, 1) * my3.Cells(1, 2)) + my3.Cells(1, 3)) Mod 90
        If mycrit = 0 Then mycrit = 90
        If myCz(mycrit) <> I Then
'        Debug.Print myCz(mycrit)
            myTot = myTot + Application.WorksheetFunction.CountIf( _
                Application.WorksheetFunction.Index(myAll, I, 0), mycrit)
            myCz(mycrit) = I
        End If
    Next J
    If myTot = myComp Then CZzz = CZzz + 1
    myTot = 0
Next I
End Function


Ovviamente nella formula successiva si usera' CZzz e non piu' BZzz.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula matrice a cella singola

Postdi giorgioa » 19/08/15 07:55

Salve Anthony e buona giornata,

speriamo, qui c'è tanto di sole che
usiamo dire che ti spacca le pietre.

A prescindere, ti riporto anche il file e qui cerco di chiarire l'argomento.
Ai fini del calcolo con numeri uguali ho fatto un paio di prove e a volte ci siamo a volte pare
di no (numero uguale ottenuto dal calcolo che non deve contarlo doppio se lo trova anche sotto) però
se a volte non ci siamo sul numero uguale potrebbe (?) anche dipendere da quanto sto per esporre.

Per tutta la distribuzione delle formule ho portato in esse l'archivio a controllare un solo rigo e cioè
c6:v7;x6 ecc, poi c7:v8;x7 ecc e quindi distribuite per aa6:af18.
Come risultato nelle colonne punti per ogni riga non posso avere 2 risultati per il fatto che ho impostato
rigo corrente e controllo su rigo successivo.
Dovrei avere un risultato per riga, questo accorciamento
dell'archivio nelle formule l'ho fatto per controllare
i punteggi volta per volta.

Le righe evidenziate in giallo il problema ma andrebbe sistemata la function? Vedi da cosa dipende.

Ancora buona giornata





http://www.filedropper.com/formulainmatrice2_1
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: formula matrice a cella singola

Postdi Anthony47 » 19/08/15 15:48

Mi pare che il ragionamento tuo e' che non ci dovrebbero essere su un rigo due diverse risposte, come invece capita in questi esempi: Immagine
image hosting
Tuttavia partimmo da una formula che calcolava, riga per riga, quante volte una certa conta era pari al valore impostato in AA1 e adiacenti; la formula veniva ripetuta per tutte le N righe della tabella e venivano sommati (per ogni colonna) i risultati ottenuti.
La "Userfunction" ha consentito di inserire in una sola cella tulle gli N calcoli.
Ora, se questo calcolo non da sempre lo stesso valore e' perche' un tot di volte da 0, un tot altro di volte dara' 1, un tot altro dara' 2, e cosi' via.
Insomma non ci trovo nulla di strano che (caso della riga 9) 1 volta il calcolo restituisce 4 e un'altra volta restituisce 7...
Quale di questi due calcoli secondo te e' errato e perche'? Perche' continuo ad avere il sospetto che della tua richiesta complessiva non ho capito una cippa.

PIUTTOSTO, nella "penultima" versione di userfunction (CZzz) ho omesso le esatte parentesi nel calcolo di mycrit, per cui il calcolo effettuato e' tornato a essere Cy+(Xy*Yy)+Zy.
Inoltre ho voluto provare a velocizzare il tutto.
Ho pertanto prodotto questa nuova "penultima versione", decisamente piu' veloce della precedente, oltre ad avere riposizionato le parentesi per ottenere (Cy+Xy)*Yy+Zy.
Codice: Seleziona tutto
Function EZzz(ByRef myAll As Range, ByRef my3 As Range, ByVal myComp As Long) As Long
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=105141
Dim I As Long, J As Long, myTot As Long, myCz(0 To 90) As Long, myCrit As Long, K As Long
Dim myAArr, mAALb1 As Long, mAALb2 As Long, mAAUb2 As Long, myACC As Long, my3A
'=0.17/20
myAArr = myAll.Value
my3A = my3.Value
mAALb1 = LBound(myAArr, 1)
mAALb2 = LBound(myAArr, 2)
mAAUb2 = UBound(myAArr, 2)
myACC = myAll.Columns.Count
'
For I = 1 To myAll.Rows.Count
    For J = 1 To myACC
        If I = 1 Then
            myCrit = ((myAll.Cells(I - 1, J).Value + my3A(1, 1)) * my3A(1, 2) + my3A(1, 3)) Mod 90
        Else
            myCrit = ((myAArr(I - 1, J) + my3A(1, 1)) * my3A(1, 2) + my3A(1, 3)) Mod 90
        End If
        If myCrit = 0 Then myCrit = 90
        If myCz(myCrit) <> I Then
'        Debug.Print myCz(mycrit)
            For K = mAALb2 To mAAUb2
                If myAArr(mAALb1 + I - 1, K) = myCrit Then myTot = myTot + 1
            Next K
            myCz(myCrit) = I
        End If
    Next J
    If myTot = myComp Then EZzz = EZzz + 1
    myTot = 0
Next I
End Function

Per evitare di confondermi sulle versioni, questa si chiama EZzz; quindi nelle tue formule sostituisci CZzz con EZzz.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "formula matrice a cella singola":


Chi c’è in linea

Visitano il forum: Nessuno e 91 ospiti