MixalisX Δημοσ. 14 Οκτωβρίου 2005 Δημοσ. 14 Οκτωβρίου 2005 Xreiazomai oso to dynaton mia lysh sto exis problima mou dioti exei na kanei me tin diplomatiki mou. Exo mia lista me as poume 1000 times. Kai thelo enan tropo na mou upologizei se mia allh lista ton meso oro ana 100 times. Gia paradeigma tha exo stin proth grammh ton meso oro ton proton 100 timon stin deuterh grammh ton meso oro ton epomenon 100 timon. Tha exo diladi sto telos mia lista me 10 times. Dokimasa diaforous tropous opos px na to kano me to xeri 2 fores kai na ''trabixo'' pros ta kato ta kelia gia na to epanalabei omos den douleuei etsi sosta. Den akoloutha to bhma pou thelo (mesos oros ana 100 times). Mou milisan gia macro entoles.Ego san asxetos tin epsaxa alla den xero pos na grapso dikia mou macro. Opoios exei idea as bohthisei giati 3 meres tora me auto paleuo.
yannis27gr Δημοσ. 14 Οκτωβρίου 2005 Δημοσ. 14 Οκτωβρίου 2005 Me macro entoles den ksero pos na to kaneis. Alla manually ginetai eukola. As poume oti h sthlh A apo to A1 os to A1001 exeis tis times. Pas sto B2 keli kai grafeis =AVERAGE(A1:A100), sto B3 =AVERAGE(A101:200), k.o.k. Ama einai gia 10 times, de tha sou parei pano apo 5 lepta. Tora an exeis kati barbato, px na bgaleis 500 mesous orous, xreiazesai sigoura kapoio tropo na to kaneis automata.
gerontas Δημοσ. 14 Οκτωβρίου 2005 Δημοσ. 14 Οκτωβρίου 2005 Νομίζω, θα γίνει πολύ πιό εύκολο, με μια βοηθητική στήλη δίπλα στις τιμές των μέσων όρων με τιμές 1,2,3,...,10. Με μακροεντολή φτιάχνουμε μια User Defined Function, π.χ. SubAvg με παραμέτρους αυτές τις διπλανές τιμές και το Range των 1000 αριθμών, κάπως έτσι: > Function SubAvg(n As Integer, Whole_Range As Range) As Single Const N_row = 100 Dim Sub_Range As Range Set Sub_Range = Range(Whole_Range.Cells((n - 1) * N_row + 1, 1), Whole_Range.Cells(n * N_row, 1)) SubAvg = Application.WorksheetFunction.Average(Sub_Range) End Function Εστω, ότι το range είναι το A3..1002, οι βοηθητικές τιμές στο διάστημα L3..L12 και θέλουμε τους ΜΟ στα κελιά M3..M12. Γράφουμε στο M3: > =SubAvg(L3;$A$3:$A$1002) και αντιγράφουμε τη σχέση στα κελιά από κάτω. Ολο το ζήτημα είναι να δούμε ότι η αρχή και το τέλος κάθε εκατοντάδας, ορίζονται σαν συνάρτηση του "διπλανού" αριθμού, που παριστάνει ταυτόχρονα για ποιά ομάδα μιλάμε (1η, 2η κλπ). Με τον ίδιο τρόπο, θα μπορούσε να γίνει και με κλασσικές functions, αλλά οι macro είναι λιγότερο επικίνδυνες και μου αρέσουν περισσότερο
MixalisX Δημοσ. 14 Οκτωβρίου 2005 Μέλος Δημοσ. 14 Οκτωβρίου 2005 Νομίζω' date=' θα γίνει πολύ πιό εύκολο, με μια βοηθητική στήλη δίπλα στις τιμές των μέσων όρων με τιμές 1,2,3,...,10.................[/quote'] Geronta 1000 euxaristo gia ton kopo sou alla dystixos prepei na sou po oti you lost me . Gia na eimai akribhs loipon tha po akribos pos exei to pragma opote an grafeis kapoion kodika na min xreiazetai na ton allaxo simfona me ta dedomena mou. Loipon. Exo stin sthlh C 65536 times. Arxizontas me proth timh stin C1. Thelo na upologiso dipla se mia sthlh tous mesous orous anna 60 times. diladi na ''meiwso'' ousiastika tin sthlh auth apo 65536 se 1092 times. Signomh pou sas pedeuo me tin agnia mou alla pote ws tora den piastika me programmatismo gia to excel.
EPa Δημοσ. 15 Οκτωβρίου 2005 Δημοσ. 15 Οκτωβρίου 2005 Πήγαινε πχ. στη διπλανή στήλη D στο 1ο κελί και γράψε: =AVERAGE(OFFSET(C$1;(CELL("row";D1)-1)*60;0;60;1)) Τράβα προς τα κάτω όσο θες (1092 φορές για όλα (-κάποια) όπως είπες) και τέλειωσες. Προφανώς όπου C η στήλη με τους αριθμούς σου, $1 επειδή ο 1ος βρίσκεται στην 1η γραμμή (προσοχή το $ είναι σημαντικό), D1 αν υποθέσουμε ότι θέλεις οι μέσοι όροι σου να υπολογίζονται από το κελί D1 και κάτω, και 60 επειδή θέλεις 60άδες..
MixalisX Δημοσ. 15 Οκτωβρίου 2005 Μέλος Δημοσ. 15 Οκτωβρίου 2005 Πήγαινε πχ. στη διπλανή στήλη D στο 1ο κελί και γράψε: =AVERAGE(OFFSET(C$1;(CELL("row";D1)-1)*60;0;60;1)) Τράβα προς τα κάτω όσο θες (1092 φορές για όλα (-κάποια) όπως είπες) και τέλειωσες. EPa me esoses!!!! Ton efarmosa ton typo kai kai doulepse apsoga! Den fantasesai poso bohthises man. Xilia euxaristo!!!!!!!!!!!!!!! :)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.