Condividi:        

Excel: funzione TIR.X

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

Excel: funzione TIR.X

Postdi damage » 05/01/17 19:15

Ciao a tutti
Devo utilizzare la funzione TIR.X , la funzione mi chiede un intervallo di celle per i valori ed un intervallo di celle per le date.
Il problema è che per altre esigenze i dati sono sparsi su più righe, ad esempio ho i valori sull'intervallo di celle A1:A10 e sull'intervallo B1:B10 e le date su C1:C10 e su D1:D10
Come faccio a dare in pasto più selezioni a TIR.X ?
Grazie mille a chi voglia aiutarmi
damage
Utente Junior
 
Post: 22
Iscritto il: 05/02/15 12:02

Sponsor
 

Re: Excel: funzione TIR.X

Postdi cromagno » 05/01/17 20:56

Ciao,
sarebbe stato meglio allegare un piccolo file d'esempio per poter testare le prove....
comunque, potresti provare scrivendo la formula in questo modo:

=TIR.X(A1:A10:B1:B10;C1:C10:D1:D10)
Windows 10 + Office 2013 64bit(ita)
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Avatar utente
cromagno
Utente Junior
 
Post: 66
Iscritto il: 08/10/16 16:33
Località: Sardegna

Re: Excel: funzione TIR.X

Postdi damage » 06/01/17 14:43

Ciao, innanzitutto grazie per la risposta
Allego un file di esempio più calzante, i dati sono disposti in maniera diversa ma il succo non cambia
Ho usato la funzione TIR.X con il tipo di sintassi che mi hai scitto, ma purtroppo restituisce errore
Grazie ancora

https://www.dropbox.com/s/r5gwpyv9lilatti/Cartel1.xlsx?dl=0
damage
Utente Junior
 
Post: 22
Iscritto il: 05/02/15 12:02

Re: Excel: funzione TIR.X

Postdi cromagno » 06/01/17 15:44

damage ha scritto:...i dati sono disposti in maniera diversa ma il succo non cambia...


Ciao,
beh, il succo cambia eccome :-?
sia perchè i range con dati uguali (date e valori) non sono adiacenti, sia perchè i range con dati diversi si intersecano.

A parte questo, anche disponendo i dati del file allegato in un modo che venga accettato dalla funzione, il risultato è sempre un errore... e desumo che il problema sia questo:
Guida Excel ha scritto:TIR.X prevede almeno un valore di flusso di cassa positivo e uno negativo. In caso contrario, TIR.X restituirà il valore di errore #NUM!.


premettendo che non ho mai usato la funzione TIR.X() prima d'ora e che "ad occhio" non so so i dati sottoposti siano corretti, prima di cercare una soluzione, allega un file accertandoti che i dati utilizzati restistuiscano un risultato valido (e scrivi questo risultato manualmente in un cella... in modo da poter avere subito un termine di paragone per le prove che si faranno).

Ciao
Tore
Windows 10 + Office 2013 64bit(ita)
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Avatar utente
cromagno
Utente Junior
 
Post: 66
Iscritto il: 08/10/16 16:33
Località: Sardegna

Re: Excel: funzione TIR.X

Postdi damage » 06/01/17 18:08

Scusa, hai ragione, errore mio
Ti allego un esempio reale
Sul Foglio1 ci sono i dati disposti in maniera non adiacente, mentre sul Foglio2 ci sono gli stessi dati disposti in maniera adiacente ed il corretto risultato della funzione TIR.X
Grazie mille

https://www.dropbox.com/s/p47jim9x16al5dx/Cartel1.xlsx?dl=0
damage
Utente Junior
 
Post: 22
Iscritto il: 05/02/15 12:02

Re: Excel: funzione TIR.X

Postdi Anthony47 » 07/01/17 00:06

Io non sono riuscito a usare la TIR.X con intervalli cosi' discontinui; pertanto mi sono fatto la mia funzione ad hoc, che corrisponde a questo codice:
Codice: Seleziona tutto
Function myTIRX(ByRef myVers As Range, ByRef myDates As Range, Optional ByVal Appr As Single = 0.1) As Variant
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=108028
'Funzione TIR.X per intervalli discontinui
'Uso:
'     =myTIRX((IntervalloVers1,IntervalloVers2,...);(IntervalloDate1,IntervalloDate2,...); [opzionale:Approssimazione])
'
'Esempio:     =myTIRX((A2:I2;A7:F7);(A1:I1;A6:F6))       
'
Dim VArr() As Double, DArr() As Long, mVal As Range
'Vers in array:
ReDim VArr(1 To myVers.Count)
For Each mVal In myVers
    i = i + 1
    VArr(i) = mVal.Value
Next mVal
'Date in array:
i = 0
ReDim DArr(1 To myDates.Count)
For Each mVal In myDates
    i = i + 1
    DArr(i) = mVal.Value
Next mVal
myTIRX = Application.Xirr(VArr, DArr, Appr)
End Function
Il codice va inserito in un modulo standard del vba; per questo, partendo da Excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato

Poi sul foglio Excel scriverai una formula del tipo
=myTIRX((IntervalloVers1,IntervalloVers2,...);(IntervalloDate1,IntervalloDate2,...);[opzionale:Approssimazione])
Esempio:
Codice: Seleziona tutto
=myTIRX((A2:I2;A7:F7);(A1:I1;A6:F6))

Le aree discontinue vanno inserite tra parentesi; il parametro Approssimazione e' opzionale (potrebbe servire a velocizzare i calcoli, ma meglio lasciar fare a Excel che usara' il valore standard 0,1)
Le aree Versamenti e Date possono essere discontinue anche in modo differente tra loro, l'importante e' che la sequenza indicata in formula sia corretta (accoppiamento versamento /data) e il numero di voci sia lo stesso.

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

Re: Excel: funzione TIR.X

Postdi damage » 07/01/17 11:39

Fenomenale Anthony
Funziona. Grazie mille

Grazie anche a cromagno per la disponibilità
damage
Utente Junior
 
Post: 22
Iscritto il: 05/02/15 12:02

Re: Excel: funzione TIR.X

Postdi Gianca532011 » 15/01/17 10:07

Scusate se mi inserisco con una domanda off topic per Anthony, tu usi questo metodo per l'archiviazione di macro significative/interessanti ? il dubbio mi sorge dal fatto che hai inserito il rif. nella macro principale, quindi mi sono immaginato una sorta di "elenco dei riferimenti significativi" utili in futuro.


Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: Excel: funzione TIR.X

Postdi Anthony47 » 16/01/17 14:34

Scusate se mi inserisco con una domanda off topic per Anthony, tu usi questo metodo per l'archiviazione di macro significative/interessanti ?

Hummm... Non so a cosa fai riferimento, ma nel messaggio non c' e' il metodo con cui mantengo traccia di quel che sviluppo.
Se ti riferisci alla riga Vedi http://www.pc-facile.com/etc etc e' solo un modo per chiedere all'utente di dichiarare l'origine della soluzione che adottano.

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


Torna a Applicazioni Office Windows


Topic correlati a "Excel: funzione TIR.X":


Chi c’è in linea

Visitano il forum: Nessuno e 57 ospiti