Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Θέλω να φτιάξω ένα ψιλο Monte-Carlo στο Excel

 

Στα κελιά ας πούμε A1:A1000 έχω τον τύπου Rand().

 

στα B1:B1000 αντίστοιχα έχω "Available" ή "unavailable" αν ας πούμε η τιμή του rand είναι πάνω ή κάτω από ένα ποσοστό

στα κελιά Z1:Z1000 υπολογίζεται ένα νούμερο για κάθε αντίστοιχο βήμα

 

αυτά στο φύλλο υπολογισμού

 

Έχω ένα άλλο φύλλο όπου

 

στο Α1 πχ θα δίνω των αριθμό απανήψεων (πχ 10.000)

στο Α2 θα διαβάζεται το ελάχιστο από τα Ζ1:Ζ1000 του φύλλου υπολογισμού

 

και από την VBA που θα τρέχει τις επαναλήψεις το κελί

 

C1 θα αυξάνει κατά ένα αν το Α2 είναι αρνητικό (δηλαδή με ενδιαφέρει σε πόσες από τις επαναλήψεις το minimum στα Z1:Z1000 του φύλλου υπολογισμού είναι αρνητικό).

 

Ποιό είναι το πρόβλημά μου

 

Από την VBA με τις 1-2 εντολές που ξέρω (ότι θυμάμαι από BASIC δηλαδή) μπορώ να αλλάζω την τιμή του B1 με For next για τις 10.000 επαναλήψεις οπότε τα 1.000 rand() θα αλλάζουν κάθε φορά , όλα καλά μέχρι εδώ.

 

το θέμα είναι ότι όταν υπολογίζεται το minimum στο Α2 ή όποτε πάω να γράψω σε ένα κελί μεσω VBA τα κελία με τα rand() αλλάζουν.

 

Αυτό που θέλω είναι κάτι σαν το παρακάτω

 

 

for i=1 το 10000

 

cells (1,7) =i 'Κάτι σαν counter και για να αλλάζουν τα rand() σε κάθε επανάληψη

 

εδώ κάτι που να παγώνει την αλλαγή των rand()

 

εδώ να κάνω ότι γουστάρω, να γράφω, αλλάζω κελιά κλπ μέσα από τη VBA

 

εδώ κάτι που να ξε-παγώνει την αλλαγή των rand()

 

next i

 

 

δε ξέρω αν το εξήγησα καλά ...

μπορώ να ανεβάσω και κανα excelaκι για να καταλάβετε τι εννωω.

Δημοσ.

Αυτό που πρέπει να κάνεις είναι να βάλεις τον υπολογισμό στο αυτόματο. Κάθε φορά που ένα κελί αλλάζει σε ένα φύλλο Excel το οποίο έχει formulas το Excel χτίζει τα dependencies από την αρχή και υπολογίζει τα κελιά (συμπεριλαμβανομένων και αυτών που έχουν τα rand()).

 

Εσύ πρέπει να πάς στα Excel Options και να βάλεις Calculation=Manual.

 

Μπορείς να το κάνεις και με την VBΑ ως εξής:

 

application.Calculation=xlCalculationManual

 

μετά να υπολογίζεις το φύλλο επίσης χειροκίνητα με:

 

Activesheet.calculate

 

και μετά να πέρνεις τις τιμές που θέλεις. Προσοχή όμως, όταν τελειώσεις με τα Monte Carlo να βάλεις πάλι τον υπολογισμό στο αυτόματο ώστε όταν θα ξανα-χρησιμοποιήσεις Excel να μην είναι στο χειροκίνητο.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...