Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

una funzione personalizata

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

una funzione personalizata

Postdi aldox » 18/10/08 11:27

Salve tutti,e complimenti per il forum.. chi mi puo aiutare devo creare una funzione che mi mi restituisca la posizione di un numero . esempio della funzione POS (<estrazione>, <ruota>, <numero>)
saluti e grazie anticipatamente

esempio

BAri 61 19 43 5 65
il numero 61 posizione 1
il numero 19 posizione 2
ecc..
come potrei fare ho provato ma nn ci riesco...
aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12

Sponsor
 

Re: una funzione personalizata

Postdi aldox » 18/10/08 17:30

toc..toc c'è nessuno???? :cry: :cry: :cry: :cry:
aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12

Re: una funzione personalizata

Postdi Anthony47 » 19/10/08 00:58

Ciao aldox e benvenuto nel forum
Devi portare pazienza, i volenterosi sono come i numeri del lotto, si manifestano a caso.
Se hai una conoscenza del vba puoi sviluppare una "udf" che faccia quello che chiedi; se "non ancora", allora fallo con le formule:
-i tuoi estratti sono in col A (estrazione), B (ruota), e C:G (numeri)
-in I1 metti il numero dell' estrazione, in J1 metti la ruota su cui vuoi cercare, in K1 il numero che vuoi esaminare
-poi usi la formula
Codice: Seleziona tutto
=CONFRONTA($K$1;SCARTO(B1;CONFRONTA($J$1;SCARTO(B1;CONFRONTA($I$1;A:A;0)-1;0;22;1);0)+CONFRONTA($I$1;A:A;0)-2;1;1;5);0)

che ti restituisce l' informazione richiesta.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: una funzione personalizata

Postdi aldox » 19/10/08 07:10

Salve.!!! Grazie ,Anthony47 ,simpaticissimo e centilissimo ...ma...!! la funzione che avevo chiesto era prorio in vba s'è possibile mi potresti aiutare grazie aspetto tua risposta
aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12

Re: una funzione personalizata

Postdi Cedamido » 19/10/08 18:26

Scusa l'invadenza, poichè è interessante, ho provato non funziona, forse non ho capito dove va inserita la formula.
Scusa il disturbo
excel 2003
Cedamido
Utente Senior
 
Post: 234
Iscritto il: 17/08/08 23:26

Re: una funzione personalizata

Postdi Anthony47 » 19/10/08 18:35

Per aldox:
E' un lavoro inutile fare con una udf quello che puoi fare 10-100 volte piu' velocemente con le funzioni native.
Comunque prova questa:
Codice: Seleziona tutto
Function Estraz(Zona As Range, Es As Integer, Ruo As String, Numr As Integer) As Integer
'Es di chiamata: =Estraz(A1:G2000;2;"bari";23)
'   che significa:
'   Tabella dati in A1:G2000; Seconda estrazione; Bari; Numero 23)
'In tabella: 1° col=Estrazione, 2° col=ruota, 3°-7° col = estratti
'   Le righe di una stessa estrazione devono essere contigue
'
Set RngEs = Zona.Range("A:A")
EstrOff = Application.WorksheetFunction.Match(Es, RngEs, 0)
Set RngRuo = Intersect(Zona.Range("B:B"), Zona.Range(EstrOff & ":" & EstrOff + 30))
EstrRuo = Application.WorksheetFunction.Match(Ruo, RngRuo, 0)
Set RngNumr = Intersect(Zona.Range("C:G"), Zona.Range(EstrOff + EstrRuo - 1 & ":" & EstrOff + EstrRuo - 1))
Estraz = Application.WorksheetFunction.Match(Numr, RngNumr, 0)
End Function


Per Cedamido:
la formula la inserisci in una cella libera; se di occupato hai le colonne A:G la metti ad esempio in I2 (I1:K1 sono state occupate per i dati di input). Nota che se il dato non esiste la formula (come pure la funzione) non ti dice "Riprova, sarai piu' fortunato" ma restituisce #N/D; se vuoi un messaggio basta annidare la formula proposta in un test tipo "Se(Val.errore", es =Se(Val.errore(formula proposta);"Frase di dato missing";formula proposta).

Ciao, fatevi sentire.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: una funzione personalizata

Postdi aldox » 19/10/08 20:38

ANTONIO GRAZIE DEL IMPEGNO , MA.. SCUSAMI MI POTRESTI FARE UN ESEMPIO ANTONIO COME LA DEVO IMPOSTARLA CIAO
aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12

Re: una funzione personalizata

Postdi Anthony47 » 19/10/08 22:47

MI POTRESTI FARE UN ESEMPIO ANTONIO COME LA DEVO IMPOSTARLA

Veramente l' ho gia' scritto:
'Es di chiamata: =Estraz(A1:G2000;2;"bari";23)
' che significa:
' Tabella dati in A1:G2000; Seconda estrazione; Bari; Numero 23)
'In tabella: 1° col=Estrazione, 2° col=ruota, 3°-7° col = estratti
' Le righe di una stessa estrazione devono essere contigue


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: una funzione personalizata

Postdi aldox » 22/10/08 04:29

Ciao Antonio ma mi da errore valore come mai?? ti allegato il file zipato vedi se puoi corregere grazie ciao.
Allegati

[L’estensione zip è stata disattivata e non puó essere visualizzata.]

aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12

Re: una funzione personalizata

Postdi Anthony47 » 22/10/08 10:01

Intanto la formula usata sul foglio allegato e' sintatticamente diversa da quanto la funzione richiede:
Usata =Estraz(A1:G11;A1:A11;B1;K2)
Richiesta: =Estraz(A1:G2000;2;"bari";23), cioe' =Estraz(Area;Estrazione;Ruota;Numero)

Ho sottolineato, nella formula usata e nella formula richiesta , i parametri sballati.

Poi, "estrazione" ho assunto che ci fosse un numero inferiore a 32000; vedo che usi invece una data: allora userai come prima riga questa:
Codice: Seleziona tutto
Function Estraz(Zona As Range, Es As Single, Ruo As String, Numr As Single) As Integer


La ruota e' la prima volta che la vedo sotto forma di numero: mettila come stringa e la formula andra' bene, oppure modifica sempre la prima riga come segue:
Codice: Seleziona tutto
Function Estraz(Zona As Range, Es As Single, Ruo, Numr As Single) As Integer


Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: una funzione personalizata

Postdi aldox » 22/10/08 12:06

Anto scusami , forse sono io che nn capisco ma mi da sempre errore valore mi potresti mandare l'allegato cosi capisco megli grazie tanto gentilissimo..
aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12

Re: una funzione personalizata

Postdi Anthony47 » 22/10/08 13:53

Dopo aver fatto la seconda modifica suggerita, ad esempio potresti usare la formula
Codice: Seleziona tutto
=Estraz(A1:G11;A2;B2;K2)


Ok?
Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: una funzione personalizata

Postdi aldox » 22/10/08 15:14

ok grazie sembra tutto a posto ... ;)
aldox
Newbie
 
Post: 7
Iscritto il: 18/10/08 11:12


Torna a Applicazioni Office Windows


Topic correlati a "una funzione personalizata":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti