› Excel e gli applicativi Microsoft Office › Calcolo imposta di soggiorno
-
AutoreArticoli
-
ciao gianfranco
ho scaricato il tuo file con la formula da tre poposta , ma alcuni dati non mi risultano anche fatti a mano su un foglio
vedi la prima data dove a te risulta 5 notti ma fatte a mano sono sei
altro record il 7 dove la data di nascita e' l'anno 1958 qundi questi ha 65 anni e bisogna calcolare 8 notti
posto il file dove ho inserito 2 tipi di UDF per fare questo calcolo si trovano in colonna H e I
vengono riportate le notti valida da trascorrere
ciao a tutti
Allegati:
You must be logged in to view attached files.Dalle immagini che hai mostrato, non è corretto dire che "salta tutto". Le formule funzionano bene, solo che manca uno dei parametri (la data di nascita) e la formula restituisce un valore di errore. Puoi ignorare tranquillamente questa situazione, a condizione che se tu inserisci una data di nascita il calcolo venga poi fatto correttamente.
In realtà l'immagine 1 una data ce l'ha quindi dovrebbe dare il totale di un solo ospite invece da Valore. Nell'immagine 2 invece ho cancellato una sola data quindi ci sono 6 ospiti e cmq da VALORE. CON QUELLO che ho scritto intendevo che il file sembra ti costringa ad inserire 7 ospiti se ne togli 1 non funziona.
mister x
vedi la formula che io uso per rilevare l'età e avrai delle sorprese
=SE(E2>0;DATA.DIFF($E2;$B$2;"Y");"")
ok la formula va bene ora stavo facendo qualche prova ed il file funziona bene ha dei problemi sui calcoli. Ad esempio funziona bene quando la data del compleanno è all'interno della data di soggiorno e gli anni di nascità sono 1957 oppure 2011 oppure se la data di nascita è fuori dal range soggiorno. funziona male con tutti gli anni diversi da 2011 e 1957 se la data di nascita capita nel range soggiorno. allego una foto per farvi vedere ed il file con tutte le date inserite
Allegati:
You must be logged in to view attached files.vedi la prima data dove a te risulta 5 notti ma fatte a mano sono sei
mister la data di uscita non si conta come notte. nella prima riga compie gli anni il 10/06/2023 vuol dire che non pagherà la tassa per i giorni 7-8-9 e pagherà la tassa per i giorni 10-11-12-13-14.
ciao a tutti i partecipanti
la notte porta consiglio , quindi su indicazione di frost ho rivisto e corretto la udf di N_giorni
questa adesso e' nin questo modo in quanto per il calcolo bisogna tener conto dei bisestili principalmente
quando si giunge al 65 anno
Option Explicit Function N_giorni(D_in As Date, D_out As Date, D_na As Date) As Long Dim i As Long, ng As Long, G_cal As Long, A_bis As Long For i = 0 To D_out - D_in - 1 If Year(D_in + i - D_na) - 1900 = 65 Then A_bis = 2 Else A_bis = 1 End If G_cal = Year((D_in + i - D_na) + A_bis) - 1900 If G_cal >= 12 And G_cal <= 65 Then ng = ng + 1 End If Next i N_giorni = ng End Functionfatto i calcoli adesso vengono esatti
rimetto il file con modifiche
ciao a tutti
Allegati:
You must be logged in to view attached files.E' un lavoro di precisione
=SE(E2>0;DATA.DIFF($E2;$B$2;"Y");"")
Ragazzi una correzione a questo file e dovrebbe andare bene io ho provato ma nulla. Vi vedo spenti ahahhaha
Vi vedo spenti
Nonostante tre pagine di post? Una cosa che si vede non molto spesso e tu li chiami spenti?
io ho provato ma nulla
Cos'è che hai provato a fare per correggere?
Naturalmente era ironico.
Ho provato ad inserire qualcosa in più nella formula ma nulla. Ma diciamo che sulle formule sono zero spaccato e pure sul resto ahahahah
Mi avete abbandonato 🤣🤣🤣🤣
ciao
=SE(DATA.DIFF($E2;$A$2;"Y")=DATA.DIFF($E2;$B$2;"Y");SE(O(F2>65;F2<12);"";$C$2*$J$1);SE(O(F2>66;F2<=11);"";SE(DATA(ANNO($B$2);MESE($E2);GIORNO($E2))=MEDIANA(DATA(ANNO($B$2);MESE($E2);GIORNO($E2));$A$2;$B$2);SE($F2=12;($C$2-(GIORNO(E2)-GIORNO($A$2)))*$J$1;SE(F2>65;($C$2+(GIORNO(E2)-GIORNO($B$2)))*$J$1;$C$2*$J$1));SE($E2>$B$2;"";$C$2*$J$1))))
Allegati:
You must be logged in to view attached files.ciao
Il file sembra funzionare correttamente a parte gli scherzi vari ("vi vedo spenti, mi avete abbandonato, etc) sono cosciente che ognuno di noi ha i suoi impegni e che nessun aiuto è dovuto ed è proprio per questo che ringrazio tutti per la bella discussione di gruppo che ha portato oltretutto a vari risultati.
Grazie davvero a tutti!!!!
=SE(DATA.DIFF($E2;$A$2;"Y")=DATA.DIFF($E2;$B$2;"Y");SE(O(F2>65;F2<12);"";$C$2*$J$1);SE(O(F2>66;F2<=11);"";SE(DATA(ANNO($B$2);MESE($E2);GIORNO($E2))=MEDIANA(DATA(ANNO($B$2);MESE($E2);GIORNO($E2));$A$2;$B$2);SE($F2=12;($C$2-(GIORNO(E2)-GIORNO($A$2)))*$J$1;SE(F2>65;($C$2+(GIORNO(E2)-GIORNO($B$2)))*$J$1;$C$2*$J$1));SE($E2>$B$2;"";$C$2*$J$1))))
Ma se volessi trasformare questa mega formula in codice VBA, secondo voi è Possibile?
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )secondo voi è Possibile?
(Quasi) tutto è possibile 😉
Ma quello che si era già proposto non andava bene? 🙂
Ma quello che si era già proposto non andava bene?
Si che andava bene, era solo una mia curiosita(che cerchero di esaudire)
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )ciao
albatros per il vba ho gia proposto una UDF molto semplice
senza vba ma con una colonna di appoggio per le date e la funzione matr.somma.prodotto propongo questa soluzione in base ai dati in mio possesso
colonna Q sviluppo le date da controllare di permanenza
colonna K la seguente formula
=MATR.SOMMA.PRODOTTO((DATA.DIFF(E2;$Q$2:INDIRETTO("Q"&$Q$1);"y")>11)*(DATA.DIFF(E2;$Q$2:INDIRETTO("Q"&$Q$1);"Y")<66))
allego il file con questa inserita per il controllo
Ps x Frost queste formule le devi interpretare e imparare tu
ciao Misterx
Allegati:
You must be logged in to view attached files.Ciao mister nonostante abbia guardato tutti i vostri lavori il file di Gianfranco è quello più adatto allo scopo che serve per un controllo ed essendo senza VBA mi permette di inserire i dati e verificare. Ad ogni modo avete fatto tutti un gran lavoro e vi ringrazio. Andrò ad approfondire tutte le varie soluzioni
senza vba ma con una colonna di appoggio per le date e la funzione matr.somma.prodotto propongo questa soluzione in base ai dati in mio possesso
non per essere pignolo,pero mi sembra che ci sia una incongruenza nelle celle "J3" e "J7", che hanno lostesso valore , e che secondo me non lo dovrebbero avere, perchè "E7" compie gli anni 65 il "10/06/1958" e siccome non pagano chi ha piu di 65 anni, "E7" dovrebbe pagare per intero gli Otto pernottamenti.Forse sbaglio nel mio ragionamento?
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )ciao albatros
gli anni , come detto in alto alla spiegazione
maggiore di 65 quindi bisogna stabilire anni 66 compiuti , nato nel 1958 ne compie 66 nel 2024
J3 nato nel 1957 alla data del 10/6/1957 ma il soggiorno parte in data 7/6/2023 quindi per 3 giorni questi a ancora 65 anni, e quindi compie 66 anni il giorno 10/6/2023, e qui scatta la regola dei 66
lo stesso discorso ma al contrario per i minori di 12 anni
questo e' quello che ho inteso in base alla spiegazione, se non e' cosi basta modificare le formule in questi valori di riscontro
ciao da Misterx
spero di aver spiegato bene per il calcolo
maggiore di 65 quindi bisogna stabilire anni 66 compiuti , nato nel 1958 ne compie 66 nel 2024
quindi se lui compie 66 nel 2024, per tutto il 2023 ha 65 anni , OP dice che chi ha superato i 65 anni non paga,quindi, secondo il mio ragionamento ,nel file che hai postato "E7" deve pagare € 12 e non € 4,5 o sbaglio.
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )ciao Albatros
nella colonna E le formule non sono le mie ma quelle di Gianfranco le mie sia con UDF che con formula di excel sono in colonne H I K e nel foglio2 trovi alcune valutazioni che ho fatto per prove
io non ho messo nessun conto ma solo calcolato giornate da pagare, per i conteggi basta moltiplicare tali valori per 1,50 e il gioco e' fatto
comunque da come ho capito e mi ripeto penso che si debba avere 66 anni compiuti per non pagare la tassa,come per pagare per i minori devono avere il 12dicesimo anno compiuto per pagare questa
vediamo se ci danno un chiarimento a riguardo.
ciao da MisterX
penso che si debba avere 66 anni compiuti per non pagare la tassa,come per pagare per i minori devono avere il 12dicesimo anno compiuto per pagare
Sì, tenendo presente che il giorno del compleanno è escluso, per cui se il compleanno si sovrappone al soggiorno e scatta il 66° anno di età, la tassa è dovuto fino al giorno prima. Quindi i nonni pagano da data_inizio_soggiorno fino a data_compleanno - 1. Ragionamento inverso per il 12° anno: il bambino paga da data_compleanno fino a data_fine_soggiorno.
Sì, tenendo presente che il giorno del compleanno è escluso, per cui se il compleanno si sovrappone al soggiorno e scatta il 66° anno di età, la tassa è dovuto fino al giorno prima. Quindi i nonni pagano da data_inizio_soggiorno fino a data_compleanno - 1. Ragionamento inverso per il 12° anno: il bambino paga da data_compleanno fino a data_fine_soggiorno.
giustissimo, il ragionamento è valido, pero quello che non mi torna è nel file postato #38349, perchè secondo me , c'è discrepanza tra la cella "E3" e la cella "E/", forse sbaglio qualcosa?
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )ciao Albatros
ma se guardiamo bene le date nella cella E3 abbiamo 10/06/1957 quindi nell'anno 2023 facciamo i 66 anni, mentre nella cella E7 abbiamo 10/06/1958 quindi nel 2023 facciamo i 65 e non i 66 anni
quindi in questo caso non esiste nessuna discrepanza di valutazione
certo se dobbiamo valutare con dati al 65quesimo quindi raggiunto e superato , avremo per E3 nessun pagamento e per E7 un pagamento di 3 giorni pari a €4.50 perche questi il 10/06/2023 compie 65 anni, pagando solo per le giornate di 7--8--9 /06/2023
ciao e buona serata
-
AutoreArticoli
