Professional Documents
Culture Documents
Analiza Wrażliwości VBA
Analiza Wrażliwości VBA
Analiza Wrażliwości VBA
nowe_wagi("Cena") = gradesToAnalize(0)
nowe_wagi("Godziny otwarcia") = 0.05
nowe_wagi("Dostępność różnego rodzaju kwiatów") = gradesToAnalize(1)
nowe_wagi("Jakość kwiatów") = gradesToAnalize(2)
nowe_wagi("Zakres usług dodatkowych") = 0.1
nowe_wagi("Ubezpieczenie w zakresie towaru / Reklamacje / Zwrot") = 0.05
nowe_wagi("Obszar dostawy kwiatów") = 0.05
nowe_wagi("Obsługa klienta") = 0.05
silesia_flo("Cena") = 0
silesia_flo("Godziny otwarcia") = 100
silesia_flo("Dostępność różnego rodzaju kwiatów") = 0
silesia_flo("Jakość kwiatów") = 0
silesia_flo("Zakres usług dodatkowych") = 0
silesia_flo("Ubezpieczenie w zakresie towaru / Reklamacje / Zwrot") = 0
silesia_flo("Obszar dostawy kwiatów") = 0
silesia_flo("Obsługa klienta") = 0
roza_spZoo("Cena") = 60
roza_spZoo("Godziny otwarcia") = 95
roza_spZoo("Dostępność różnego rodzaju kwiatów") = 80
roza_spZoo("Jakość kwiatów") = 90
roza_spZoo("Zakres usług dodatkowych") = 80
roza_spZoo("Ubezpieczenie w zakresie towaru / Reklamacje / Zwrot") = 50
roza_spZoo("Obszar dostawy kwiatów") = 0
roza_spZoo("Obsługa klienta") = 40
slaska_gielda_kwiatowa("Cena") = 100
slaska_gielda_kwiatowa("Godziny otwarcia") = 0
slaska_gielda_kwiatowa("Dostępność różnego rodzaju kwiatów") = 100
slaska_gielda_kwiatowa("Jakość kwiatów") = 100
slaska_gielda_kwiatowa("Zakres usług dodatkowych") = 0
slaska_gielda_kwiatowa("Ubezpieczenie w zakresie towaru / Reklamacje / Zwrot")
= 50
slaska_gielda_kwiatowa("Obszar dostawy kwiatów") = 0
slaska_gielda_kwiatowa("Obsługa klienta") = 60
jmp_flowers("Cena") = 80
jmp_flowers("Godziny otwarcia") = 5
jmp_flowers("Dostępność różnego rodzaju kwiatów") = 60
jmp_flowers("Jakość kwiatów") = 80
jmp_flowers("Zakres usług dodatkowych") = 100
jmp_flowers("Ubezpieczenie w zakresie towaru / Reklamacje / Zwrot") = 100
jmp_flowers("Obszar dostawy kwiatów") = 100
jmp_flowers("Obsługa klienta") = 100
slaskie_centrum_florystyczne_rekpol("Cena") = 40
slaskie_centrum_florystyczne_rekpol("Godziny otwarcia") = 97
slaskie_centrum_florystyczne_rekpol("Dostępność różnego rodzaju kwiatów") = 40
slaskie_centrum_florystyczne_rekpol("Jakość kwiatów") = 50
slaskie_centrum_florystyczne_rekpol("Zakres usług dodatkowych") = 90
slaskie_centrum_florystyczne_rekpol("Ubezpieczenie w zakresie towaru /
Reklamacje / Zwrot") = 0
slaskie_centrum_florystyczne_rekpol("Obszar dostawy kwiatów") = 100
slaskie_centrum_florystyczne_rekpol("Obsługa klienta") = 30
Dim i As Long
Dim numIterations As Long
numIterations = Range("N126").Value
' pętla, w której najpierw jest ustawiana wartość początkowa dla tablicy z
wartościami wag do analizy po czym wywoływany jest funkcja ShuffleValues
' następnie nowe wartości wag są przypisane do objektu ze wszystkimi wagami
' przy każdej iteracji dla każdej giełdy jest dodawana wartość wygenerowanej
wagi
For i = 1 To numIterations
gradesToAnalize = Array(0.2, 0.2, 0.5)
ShuffleValues gradesToAnalize
nowe_wagi("Cena") = gradesToAnalize(0)
nowe_wagi("Dostępność różnego rodzaju kwiatów") = gradesToAnalize(1)
nowe_wagi("Jakość kwiatów") = gradesToAnalize(2)
' dla każdej giełdy jest brana suma wag podzielona przez ich ilość
' następnie ta średnia jest brana i ograniczana do dwóch miejsc po przecinku i
wyświetalana w tabeli wyników
Dim averageFor_silesia_flo As Double
averageFor_silesia_flo = 0
For i = 1 To numIterations
averageFor_silesia_flo = averageFor_silesia_flo +
(silesia_flo_gradesList(i) / numIterations)
Next i
averageFor_silesia_flo = Round(averageFor_silesia_flo, 2)
Range("AF133").Value = averageFor_silesia_flo
' tutaj dodaje lub odejmuje dzięki funckji GetRandomSign wartości z adjustments
Dim randomSign As Integer
randomSign = GetRandomSign()
For i = LBound(listToShuffle) To UBound(listToShuffle)
listToShuffle(i) = listToShuffle(i) - (adjustments(i) * randomSign)
Next i
' iteruj przez kolejne klucze i wartości w obu objektach i obliczam sumę
For Each key In dictToEvaluate.Keys
sum = sum + dictToEvaluate(key) * gradeWeight(key)
Next key
CalculateFinalGrade = sum
End Function