Živijo!
Potrebovala bi pomoč pri malo bolj elegantni izpeljavi problemov in sicer:
1. Imam seznam datumov rojstnih dni ljudi z različnimi letnicami rojstva. Rada bi postavila formulo, da mi v naslednjo celico izpiše mesec rojstva - npr. če ima en rojstni dan 15.1., se mi izpiše JANUAR
2. pa bi rada označevala te iste ljudi po astroloških znamenjih: torej, če ima rojstni dan 15.1., da se mi izpiše, da je KOZOROG
Saj vem, da se da to reševati tako po kmečko, vendar pa tovzame veliko časa, še posebej, če gre to za stalno mesečno prakso - pa če imaš seznam par tisoč ljudi, je še toliko teže.
Hvala za kakršnokoli pomoč!
datumi - izračun par zadev
- V sosedno celico zapišite formulo:
kjer je A1 pač seveda celica z datumom rojstva. S tem boste v celici dobili mesec rojstva. Da bi se namesto številke izpisal tekst pa izberite celico z rezultatom in meni Oblika/Celice - izberite zavihek 'Številke' in v padajočem seznamu izberite opcijo 'Po meri', ter vnesite obliko 'mmmm' (brez narekovajev - samo 4x mali m)
Koda: Izberi vse
=MONTH(A1) - Za rešitev drugega problema pa boste najprej morali vnesti posebno tabelo, za katero boste porabili dve koloni. V prvo kolono boste vnesli prvi datum znamenja v drugo pa znamenje. Nad to tabelo boste uporabili funkcijo VLOOKUP, o kateri si lahko več preberete tudi v tem forumu.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Glede astroloških znamenj:
Spodnjo kodo skopirajte v Modul vašega zvezka s spiskom oseb. Saj veste Alt+F11...Če Modula še ni, potem enega vstavite! (Insert Modul)
Sedaj imate na voljo dve funkciji; prva je Znak_zodiaka in druga Dan_v_letu, ki prvi samo pomaga, čeprav je uporabna tudi sama. Bolj pomembna za vas je prva. Sedaj predpostaviva, da se vaš spisek z imeni oseb, nahaja od druge vrstice naprej in imate v stolpcu A osebe, v stolpcu B rojstne datume, želite pa imeti astrološko znamenje v stolpcu C. Torej v celico C2 vstavite funkcijo Znak_zodiaka, oz. vpišite:
in dobili boste astrološko znamenje za izbrani datum. Zdaj samo skopirajte celico C2 do konca vašega spiska in v trenutku boste imeli znamenja horoskopa za kompleten spisek oseb.
Pa veliko uspeha pri "šloganju"
Spodnjo kodo skopirajte v Modul vašega zvezka s spiskom oseb. Saj veste Alt+F11...Če Modula še ni, potem enega vstavite! (Insert Modul)
Koda: Izberi vse
Public Function Znak_zodiaka(Rojstni_dan As Date) As String
Dim iDan_v_letu As Integer
iDan_v_letu = Dan_v_letu(Rojstni_dan)
If Year(Rojstni_dan) Mod 4 = 0 And iDan_v_letu > 59 Then
iDan_v_letu = iDan_v_letu - 1
End If
If iDan_v_letu < 20 Then
Znak_zodiaka = "Kozorog"
ElseIf iDan_v_letu < 50 Then
Znak_zodiaka = "Vodnar"
ElseIf iDan_v_letu < 81 Then
Znak_zodiaka = "Ribi"
ElseIf iDan_v_letu < 111 Then
Znak_zodiaka = "Oven"
ElseIf iDan_v_letu < 142 Then
Znak_zodiaka = "Bik"
ElseIf iDan_v_letu < 173 Then
Znak_zodiaka = "Dvojčka"
ElseIf iDan_v_letu < 205 Then
Znak_zodiaka = "Rak"
ElseIf iDan_v_letu < 236 Then
Znak_zodiaka = "Lev"
ElseIf iDan_v_letu < 267 Then
Znak_zodiaka = "Devica"
ElseIf iDan_v_letu < 297 Then
Znak_zodiaka = "Tehtnica"
ElseIf iDan_v_letu < 327 Then
Znak_zodiaka = "Škorpijon"
ElseIf iDan_v_letu < 357 Then
Znak_zodiaka = "Strelec"
Else
Znak_zodiaka = "Kozorog"
End If
End Function
Function Dan_v_letu(Datum As Date) As Integer
Dim iMesec As Integer
Dim iDan As Integer
iMesec = Month(Datum)
iDan = Day(Datum)
Dan_v_letu = 0
If iMesec > 1 Then
Dan_v_letu = Dan_v_letu + 31
End If
If iMesec > 2 Then
Dan_v_letu = Dan_v_letu + 28
' Dodan dan za prestopno leto
If Year(Datum) Mod 4 = 0 Then
Dan_v_letu = Dan_v_letu + 1
End If
End If
If iMesec > 3 Then
Dan_v_letu = Dan_v_letu + 31
End If
If iMesec > 4 Then
Dan_v_letu = Dan_v_letu + 30
End If
If iMesec > 5 Then
Dan_v_letu = Dan_v_letu + 31
End If
If iMesec > 6 Then
Dan_v_letu = Dan_v_letu + 30
End If
If iMesec > 7 Then
Dan_v_letu = Dan_v_letu + 31
End If
If iMesec > 8 Then
Dan_v_letu = Dan_v_letu + 31
End If
If iMesec > 9 Then
Dan_v_letu = Dan_v_letu + 30
End If
If iMesec > 10 Then
Dan_v_letu = Dan_v_letu + 31
End If
If iMesec > 11 Then
Dan_v_letu = Dan_v_letu + 30
End If
' Dodani dnevi v trenutnem mesecu
Dan_v_letu = Dan_v_letu + iDan
End Function
Koda: Izberi vse
=Znak_zodiaka(B2)Pa veliko uspeha pri "šloganju"
lp,
cedra
cedra
Verjetno bi se res dala uporabiti tudi vaša predlagana funkcija. Vendar pa, če z vašo predlagano funkcijo, npr. hočem izvedeti, kateri dan v letu je npr. 1.11.2008 in vzamem start datum v vaši predlagani funkciji 31.12.2007, dobim rezultat funkcije, da je 1.11.2008, 301. dan v letu, kar je NAROBE, s funkcijo Dan_v_letu pa, da je 1.11.2008 306. dan v letu, kar je PRAVILNO. Predlagana funkcija razdeli leto na 12 mesecev po 30 dni. Komu to pride prav ne vem. Finančnikom?
Ne trdim, da se ne da, tudi z vašo funkcijo dobiti pravilen rezultat, vendar se nisem spuščal v Help, ker je več ali manj nerazumljiv. Zato sem pač uporabil funkcijo Dan_v_letu, ki tudi bolj ustreza zadani nalogi.
Ne trdim, da se ne da, tudi z vašo funkcijo dobiti pravilen rezultat, vendar se nisem spuščal v Help, ker je več ali manj nerazumljiv. Zato sem pač uporabil funkcijo Dan_v_letu, ki tudi bolj ustreza zadani nalogi.
lp,
cedra
cedra