Forum » Programiranje » Funkcija v Excelu
Funkcija v Excelu
[SpydeR] ::
V Excelu delam eno tabelo, pa ne vem kako bi se lotil naslednje funkcije: imam pet vrstico petih polj s podatki. Iz teh podatkov moram izračunati povprečje - vendar pri tem upoštevati naslednje pogoje: če je vrednost vsaj treh polj < 12 povprečja ne računa ampak vrne vrednost 12. V nasprotnem primeru pa izpračuna povprečje tako, da izpusti največjo in najmanjšo vrednost (torej vzame povprečje srednjih treh vrednosti).
(nisem vedel kam naj postavim tole temo, tako da jo naj moderator premakne drugam, če ne paše sem.)
(nisem vedel kam naj postavim tole temo, tako da jo naj moderator premakne drugam, če ne paše sem.)
- spremenil: [SpydeR] ()
StratOS ::
Evo z makrom, na hitro :
Tabelo (podatke) imaš v A7 x E11
( 5 x 5 podatki v celicah )
Rezultati v I7-I11 (Po zagonu makra)
Program lahko še zelo pohitriš !
Tabelo (podatke) imaš v A7 x E11
( 5 x 5 podatki v celicah )
Rezultati v I7-I11 (Po zagonu makra)
Program lahko še zelo pohitriš !
Sub Median()
Dim Max As Long
Dim Min As Long
Dim i, a, rmax, rmin, curr, vsota3, temp, temps, a1, a2 As Integer
a = 7
Again:
rmax = 0
rmin = 10000
For i = 1 To 5
curr = Sheet1.Cells(a, i)
If curr > rmax Then rmax = curr
If curr < rmin Then rmin = curr
Next i
vsota3 = Sheet1.Cells(a, 1) + Sheet1.Cells(a, 2) + Sheet1.Cells(a, 3)
If vsota3 < 12 Then
Sheet1.Cells(a, 9) = "12"
Else
temps = 0
a1 = 0
a2 = 0
For i = 1 To 5
temp = Sheet1.Cells(a, i)
'Za iste številke
If temp = rmax And a1 = 0 Then temp = 0: a1 = 1
If temp = rmin And a2 = 0 Then temp = 0: a2 = 1
temps = temps + temp
Next i
Sheet1.Cells(a, 9) = temps
End If
a = a + 1
If a = 12 Then Exit Sub
GoTo Again
End Sub
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
[SpydeR] ::
Hvala ti za odgovor!
Sam vidm da sem premal natančno definiral problem.
Podatki so pozitivna cela števila med 10 in 20 (tole verjetno ni preveč pomembno..). Ko makro preverja ali so vrednosti manjše od dvanajst sem mislil takole: če je vrednost v vsaj treh poljih < 12, potem izpiše 12 - se pravi da preveri (če je to možno kako izvest) ali se v treh poljih pojavi vrednost < 12.
Prosu bi te, če se ti da ta makro dopolnit s tem zgoraj napisanim. Oz. če ma kdo kakšno drugo rešitev - prav tako dobrodošel.
Hvala!
Sam vidm da sem premal natančno definiral problem.
Podatki so pozitivna cela števila med 10 in 20 (tole verjetno ni preveč pomembno..). Ko makro preverja ali so vrednosti manjše od dvanajst sem mislil takole: če je vrednost v vsaj treh poljih < 12, potem izpiše 12 - se pravi da preveri (če je to možno kako izvest) ali se v treh poljih pojavi vrednost < 12.
Prosu bi te, če se ti da ta makro dopolnit s tem zgoraj napisanim. Oz. če ma kdo kakšno drugo rešitev - prav tako dobrodošel.
Hvala!
StratOS ::
Sub Median()
Dim Max As Long
Dim Min As Long
Dim i, a, rmax, rmin, curr, vsota3, temp, temps, a1, a2 As Integer
a = 7
Again:
rmax = 0
rmin = 10000
'Pregled min in max številke v poljih
For i = 1 To 5
curr = Sheet1.Cells(a, i)
If curr > rmax Then rmax = curr
If curr < rmin Then rmin = curr
Next i
'Pregled če je v vsaj 3 poljih vrednost < 12
vsota3 = 0
For a1 = 1 To 5
If Sheet1.Cells(a, a1) < 12 Then vsota3 = vsota3 + 1
Next a1
If vsota3 >= 3 Then
'Vrednost v vsaj treh poljih < 12
Sheet1.Cells(a, 9) = "12"
Else
'Izračunaj povprečje treh polj (brez polj z max in min številko)
temps = 0
a1 = 0
a2 = 0
For i = 1 To 5
temp = Sheet1.Cells(a, i)
'Izločitev max in min številke (Pazi, če jih je več enakih)
If temp = rmax And a1 = 0 Then temp = 0: a1 = 1
If temp = rmin And a2 = 0 Then temp = 0: a2 = 1
temps = temps + temp
Next i
Sheet1.Cells(a, 9) = temps / 3
End If
a = a + 1
If a = 12 Then Exit Sub
GoTo Again
End Sub
link Tukaj
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
"It works better if you plug it in."
"The one who is digging the hole for the other to fall in is allready in it."
Zgodovina sprememb…
- spremenila: StratOS ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | excel IF funkcijaOddelek: Programska oprema | 6554 (3561) | Cofko Cof |
» | kako v excelu avtomatsko obarvati celiceOddelek: Programska oprema | 4171 (3944) | smetko |
» | [Excel]Kako izvleči vrednost?Oddelek: Programiranje | 3782 (3505) | Mobidick |
» | [EXCEL] Pogojno kopiranje na drug listOddelek: Programiranje | 1776 (1698) | StratOS |
» | rabim pomoč v exceluOddelek: Programska oprema | 1375 (1268) | nodrim |