Adunare campuri hh:mm

Informatii despre cum se utilizeaza Microsoft Excel 2007. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
RomeoB
Mesaje: 24
Membru din: Mie Feb 29, 2012 11:15 am

Exemplu concret

Mesaj de RomeoB » Mie Oct 24, 2012 11:16 am

In fis test-pivot.xlsx am datele primare in sheetul test-pivot; un exemplu de pivot table cu valorile reale considerate ca zile (si nu ore) in sheetul numere-reale, si un pivot table cu coloana adaugata in sheetul CAMP-CALCULAT (Formula de calcul: = TIME(INT(ore); ( ore-INT(ore))*100; 0) iar Number Format [h]:mm )

Se vede ca se face trunchiere la 24 ore pe totaluri.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

RomeoB
Mesaje: 24
Membru din: Mie Feb 29, 2012 11:15 am

pana la urma s-a rezolvat

Mesaj de RomeoB » Mie Oct 24, 2012 12:18 pm

Am transformat orele in fractiuni de zi, lucrand cu numere reale cu 15 zecimale folosind formula:
INT(ore)/24+(ore-INT(ore))*100/(24*60) De exeplu ora 9,16 devine dupa acest algoritm: 0,386111111111111

Apoi in pivot table, campul sum of ore (din Suma values) a avut setat Number format-ul cu [h]:mm

Catalin B.
Moderator
Moderator
Mesaje: 813
Membru din: Vin Sep 09, 2011 4:05 pm
Localitate: Iaşi

Re: Adunare campuri hh:mm

Mesaj de Catalin B. » Mie Oct 24, 2012 6:37 pm

Mai explica-ne, ca eu cel putin inteleg mai greu...
9,16/24 fac 0,381666666666667, numar care, daca se formateaza caseta ca [h]:mm va fi afisat ca : 9:09 (9 ore si 9 minute) (mai erau si 36 secunde, care nu se afiseaza, dar vor fi luate in calcul la adunari)
RomeoB scrie:INT(ore)/24+(ore-INT(ore))*100/(24*60) De exeplu ora 9,16 devine dupa acest algoritm: 0,386111111111111
Rezultatul nu are nici o logica, nu inteleg de ce apare 100/60 in calculul minutelor... :( , astfel se majoreaza artificial numarul minutelor , rezultatul corect este 0,381666...
Ca sa afli orele , minutele si secundele dintr- un numar zecimal :
=INT($B$2) pentru Ore
=INT(($B$2-INT($B$2))*60) pentru minute
=(($B$2-INT($B$2))*60-INT(($B$2-INT($B$2))*60))*60 pentru secunde
Ca sa transformi in fractie din zi,se aduna rezultatul celor 3 formule de mai sus si se imparte la 24 (nu la 100/(24*60) )
Rezultatul va fi identic cu cel de la inceput, de la impartirea 9,16/24...
Probleme să fie, că soluţii se găsesc...

RomeoB
Mesaje: 24
Membru din: Mie Feb 29, 2012 11:15 am

Re: Adunare campuri hh:mm

Mesaj de RomeoB » Joi Oct 25, 2012 6:48 am

In celula Excel, 9.16 inseamna 9 zile si 16 sutimi centesimale de zi.
De aceea ora 9.16 [ora=60 minute] trebuie exprimata in zile si sutimi centesimale de zi.
9/24 reprezinta orele exprimate in fractii de zi
16*100/(24*60) reprezinta minutele exprimate in fractii de zi
Numarul 0,386111111111111 reprezinta 9.16 exprimat in fractii de zi (numere reale chioare in foaia Excel), iar aplicare formatului [h].mm il afisaza ca 9.16 (ore.minute obisnuite 1 ora = 60 minute)

Alta solutie nu am gasit pt adunarile pe coloana in Pivot Table - cand apar valori (insumate) mai mari de 24 de ore.

Catalin B.
Moderator
Moderator
Mesaje: 813
Membru din: Vin Sep 09, 2011 4:05 pm
Localitate: Iaşi

Re: Adunare campuri hh:mm

Mesaj de Catalin B. » Joi Oct 25, 2012 12:57 pm

Sistemul implicit in care este construit Excel este sistemul zecimal. Asta inseamna ca partea fractionara a numarului 9,16 reprezinta zecimi, si nu sutimi centezimale, sau sutimi pentale, ori zecimi octale sau hexagesimale... 16 zecimi dintr-o ora inseamna 9 minute, nu 16 minute. Si ca sa fie mai clar, daca avem 9,5 unitati in sistem zecimal, asta inseamna ca avem 9 ore si 30 minute in sistem sexagesimal, si nu 9 ore si 50 minute , asa cum ar afisa formula ta... Cu acel 100/60 de fapt faci transformare din sistem sexagesimal in centezimal... Problema e ca orele nu au 100 minute, deci nu ai nici o treaba cu sistemul centezimal. Degeaba afisezi acel rezultat ca [h]:mm, e gresit... Daca trebuie sa platesti oamenii dupa orele calculate cu formula ta, s-ar putea sa iesi in pierdere :)
Probleme să fie, că soluţii se găsesc...

Închis

Înapoi la “Intrebari despre Excel 2007”