LL_NEO Δημοσ. 22 Ιουνίου 2006 Δημοσ. 22 Ιουνίου 2006 Λοιπόν αν κάποιος μπορεί να με διευκολύνει θα του ήμουν υπόχρεος σε βαθμό αηδίας. Έχω 50 μετοχές και τις μηνιαίες αποδόσεις τους για 5 χρόνια. Επιπλέον έχω και τo market return για την ίδια περίοδο. Επειδή λοιπόν θέλω να κάνω regression με εξαρτώμενη μεταβλητή την απόδοση της κάθε εταιρίας και ανεξάρτητη την απόδοση της αγοράς, θα ήθελα να με βοηθήσει κάποιος στο πως να το κάνω αυτό αυτοματοποιημένα. Cheers...
djapal Δημοσ. 23 Ιουνίου 2006 Δημοσ. 23 Ιουνίου 2006 egw proswpika exw idea apo VBA alla den katalaba sxedon tpt apo osa eipes. mallon prepei na to theseis pio algorithmika to zhthma man! kalh tyxh!
LL_NEO Δημοσ. 23 Ιουνίου 2006 Μέλος Δημοσ. 23 Ιουνίου 2006 Sub Macro2() ' ' Macro2 Macro ' Macro recorded 22/06/2006 by Daprezident ' ' Application.Run "ATPVBAEN.XLA!Regress", ActiveSheet.Range("$C$6:$C$65"), _ ActiveSheet.Range("$B$6:$B$65"), False, False, , ActiveSheet.Range("$A$1") _ , True, True, False, False, , False End Sub Πρόσεξε να δεις τι θέλω... α) ActiveSheet.Range("$C$6:$C$65") Αν υποθέσουμε ότι το Active Sheet ονομάζεται ExReturn με κάποιο τρόπο να γίνονται 50 regressions για τις περιοχές ExReturn.Range ("$C$6:$C$65") έως ("$AZ$6:$AZ$65") (50 στήλες ActiveSheet.Range("$A$1") Αυτό δηλώνει το Output του regression. Θέλω λοιπόν το πρώτο output να πάει στο φύλλο RegOut.Range("$A$1") το δεύτερο στο RegOut.Range("$A$89") το τρίτο στο RegOut.Range("$A$177") κοκ Βασικά απο ότι διάβασα στο inet κάτι πρέπει να κάνω με for next αλλά έλα που δε σκαμπάζω...
alkisg Δημοσ. 23 Ιουνίου 2006 Δημοσ. 23 Ιουνίου 2006 Δεν ανεβάζεις ένα Excelόφυλο με τους τύπους που θες, και σε δυο γραμμές παρακάτω να μας έχεις το regression που θες πάλι με τύπους; Έτσι θα καταλάβουμε καλύτερα τι θες για να σε βοηθήσουμε...
LL_NEO Δημοσ. 23 Ιουνίου 2006 Μέλος Δημοσ. 23 Ιουνίου 2006 Στο πρώτο φύλλο (ExReturn) είναι τα δεδομένα μου. Σε κάθε regression η στήλη Β παραμένει σταθερή ως η ανεξάρτητη μεταβλητή και κάθε φορά αλλάζει η εξαρτώμενη απο C στο πρώτο regression έως ΑΖ στο 50κοστό. Στο δεύτερο φύλλο (RegOutput) μπαίνει το output της regression (το οποίο btw γίνεται απο tools-> data analysis -> regression. Όπως είπα θέλω όλα τα output να μπουν στο ίδιο φύλλο με απόσταση 89 σειρών (για να μην επικαλύπτεται το output της μια regression με αυτό της άλλης) Τέλος ορίστε και το κουτί με την regression όπου έχω περάσει τα δεδομένα της πρώτης απο τις 50 example.zip
alkisg Δημοσ. 23 Ιουνίου 2006 Δημοσ. 23 Ιουνίου 2006 Ουσιαστικά δηλαδή το μόνο που ρωτάς είναι πως γίνεται ένα for; For i = 1 To 10 ActiveSheet.Cells("A" & i & ":C" & i) = i Next Αυτό βάζει στις 10 πρώτες γραμμές (και στις στήλες Α ως C) τους αριθμούς 1 ως 10. Δηλαδή αρκεί να βάζεις "γράμμα στήλης", & για συνένωση, και μετά τον αριθμό... Π.χ. για το ActiveSheet.Range("$A$1") θα έπρεπε να γράψεις ActiveSheet.Range("$A$" & (88*(i-1) + 1)) αφού ο τύπος 88*(i-1)+1 δίνει 1, 89, κτλ δηλαδή τις γραμμές που θες.
LL_NEO Δημοσ. 23 Ιουνίου 2006 Μέλος Δημοσ. 23 Ιουνίου 2006 και αν θέλω με το i να αντικαταστήσω συμβολισμό στήλης ( Α, Β, C κτλ) πάλι έτσι παίζω; For i = A To G ActiveSheet.Cells (i & "1" : i & "20) θα επιλέγει διαδοχικά τις περιοχές Α1:Α20 έως και G1:G20 ?
LL_NEO Δημοσ. 23 Ιουνίου 2006 Μέλος Δημοσ. 23 Ιουνίου 2006 For i = C To G For k = 1 To 5 Application.Run "ATPVBAEN.XLA!Regress", ExReturn.Cells("$" & i & "$6:$" & i & "$65"), _ ExReturn.Range("$B$6:$B$65"), False, False, , RegOutput.Range("$A$" & (90 * (k - 1) + 1)) _ , True, True, False, False, , False Next k Next i End Sub Ας πούμε εδώ, προσπαθώ να κάνω τα εξής regressions: C6:C65 με B6:B65 στο φύλλο ExReturn και εγγραφή αποτελέσματος στο κελί A1 του φύλλου RegOutput D6:D65 με B6:B65 στο φύλλο ExReturn και εγγραφή αποτελέσματος στο κελί A91 του φύλλου RegOutput E6:E65 με B6:B65 στο φύλλο ExReturn και εγγραφή αποτελέσματος στο κελί A181 του φύλλου RegOutput κοκ Το θέμα είναι ότι μου πετάει Run Time error 424 Object required. Που κάνω κοτσάνα;
Dionisos Δημοσ. 24 Ιουνίου 2006 Δημοσ. 24 Ιουνίου 2006 και αν θέλω με το i να αντικαταστήσω συμβολισμό στήλης ( Α' date=' Β, C κτλ) πάλι έτσι παίζω;For i = A To G ActiveSheet.Cells (i & "1" : i & "20) θα επιλέγει διαδοχικά τις περιοχές Α1:Α20 έως και G1:G20 ?[/quote'] To For loop afto grafetai ws e3hs: > For row = 1 to 7 For column = 1 to 20 Msgbox ActiveSheet.Cells(row, column).value Next column Next row H synarthsh Cells syntasetai me 2 ari8mous gia arguments, o prwtos pou einai to row kai o defteros pou einai to column. To parapanw apla deixnei se ena msgbox tis times apo to A1 ews to G20, omadopoihmenes kata grammh (row).
LL_NEO Δημοσ. 24 Ιουνίου 2006 Μέλος Δημοσ. 24 Ιουνίου 2006 αυτό ομολογώ πως δεν το κατάλαβα. Αν θες κοίτα το ποστ που έκανα μετά απο αυτό που παρέθεσες και πες μου αν μπορείς που έχω κάνει λάθος...
alkisg Δημοσ. 24 Ιουνίου 2006 Δημοσ. 24 Ιουνίου 2006 Επειδή είναι γράμματα, θα πρέπει να τα βάλεις σε αυτάκια: for i = 'C' to 'G' Αν χρειαστεί να φτάσεις σε στήλες με δύο γράμματα (π.χ. IA) θέλει διαφορετικό χειρισμό, αν το χρειαστείς το ξανασυζητάμε.
LL_NEO Δημοσ. 30 Ιουνίου 2006 Μέλος Δημοσ. 30 Ιουνίου 2006 σαν καλός μαλάκας ξέχασα να σας ευχαριστήσω παιδιά. Σόρρυ και cheers!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.