excel sčítanie čísel v bunke

Informácie o software, ankety...
romaker
Amateur
Amateur
Príspevky: 32
Registrovaný: 10 jan 2008, 21:19

excel sčítanie čísel v bunke

Príspevok od používateľa romaker »

Potreboval by som radu aká funkcia mi sčíta čísla v bunke s dátumom .
Zadané číslo je dátum napr. 10.10.2001 správny výsledok 10+10+2+0+0+1= 23
Vďaka
vladenko007
VIP
VIP
Používateľov profilový obrázok
Príspevky: 3733
Registrovaný: 02 jan 2007, 1:00
Bydlisko: Znova Košice

Re: excel sčítanie čísel v bunke

Príspevok od používateľa vladenko007 »

A nešlo by to zapisovať tak aby si mal každé číslo v inej bunke? Ako na obrázku. Potom by to šlo.
Prílohy
Excel.jpg
Excel.jpg (16.68 KiB) 543 zobrazení
romaker
Amateur
Amateur
Príspevky: 32
Registrovaný: 10 jan 2008, 21:19

Re: excel sčítanie čísel v bunke

Príspevok od používateľa romaker »

Vďaka za radu
ale ja to potrebujem zapisovať ako dátum . Ten zápis , ako mi poradili inde vypadá takto :

V Bunke B1 je dátum a do bunky C2 napíšem tento vzorec
=DAY(B1)+MONTH(B1)+(ROUNDDOWN(YEAR(B1);-3)/1000)+(ROUNDDOWN(YEAR(B1)-ROUNDDOWN(YEAR(B1);-3);-2)/100)+(ROUNDDOWN(YEAR(B1)-ROUNDDOWN(YEAR(B1);-3)-ROUNDDOWN(YEAR(B1)-ROUNDDOWN(YEAR(B1);-3);-2);-1)/10)+(YEAR(B1)- ROUNDDOWN(YEAR(B1);-3)-ROUNDDOWN(YEAR(B1)-ROUNDDOWN(YEAR(B1);-3);-2)-ROUNDDOWN(YEAR(B1)-ROUNDDOWN(YEAR(B1);-3)-ROUNDDOWN(YEAR(B1)-ROUNDDOWN(YEAR(B1);-3);-2); -1))


Má to jednu chybu , že to reaguje na dátumy až od roku 1900 .
wintermute
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 266
Registrovaný: 07 júl 2009, 7:17

Re: excel sčítanie čísel v bunke

Príspevok od používateľa wintermute »

najjednoduchšie a najistejšie bude, ak si napíšeš vlastnú funkciu
-stlač si alt+F11 pridaj modul.
budú ti stačiť príkazy mid() a cint(), ak zadávaš mesiace bez pevného počtu znakov (nie .03. ale len .3.), tak budeš potrebovať aj instr(), prípadne spllit().
ako ich použiť si vygoogliť hádam dokážešukáž

základný návod na vytváranie vlastných funkcií je napr tu:

Kód: Vybrať všetko

http://www.vertex42.com/ExcelArticles/user-defined-functions.html
edit:
Keďže som mal chvíľu čas, tak som zbúchal dokopy pár riadkov, ktoré dokonca aj fungujú. Neriešil som však zle zadané vstupy - čiže formát bunky s dátumom by mal byť text. Ak to máš ako dátumy, tak si ich napr skopíruj do texťáku a odtiaľ naspäť, prípadne podumaj ako inak ich skonvertovať na string.

Kód: Vybrať všetko

Public Function ScitajDatum(Vstup As Variant) As Integer
    Dim Arr() As String
    Dim tmpIN As String
    Dim tmpOut, i As Integer
    
    tmpIN = CStr(Vstup)
    Arr = Split(tmpIN, ".", -1, vbTextCompare)
    tmpOut = CInt(Arr(0)) + CInt(Arr(1))
    For i = 1 To Len(Arr(2))
        tmpOut = tmpOut + CInt(Mid(Arr(2), i, 1))
    Next i
    ScitajDatum = tmpOut
End Function
romaker
Amateur
Amateur
Príspevky: 32
Registrovaný: 10 jan 2008, 21:19

Re: excel sčítanie čísel v bunke

Príspevok od používateľa romaker »

Ďakujem pekne skúšal som to , ešte je podmienka ,
AK je súčet väčší ako 22 nech to sčíta ešte výsledné číslice .
napr. ak 1.10.1965 = 23 2+3=5
To makro je super , stretol som sa s tým prvý krát , Ďakujem za Váš čas .
wintermute
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 266
Registrovaný: 07 júl 2009, 7:17

Re: excel sčítanie čísel v bunke

Príspevok od používateľa wintermute »

v pohode. to je len malá úprava:

Kód: Vybrať všetko

Public Function ScitajDatum(Vstup As Variant) As Integer
    Dim Arr() As String
    Dim tmpIN As String
    Dim tmpOut, i As Integer
   
    tmpIN = CStr(Vstup)
    Arr = Split(tmpIN, ".", -1, vbTextCompare)
    tmpOut = CInt(Arr(0)) + CInt(Arr(1))
    For i = 1 To Len(Arr(2))
        tmpOut = tmpOut + CInt(Mid(Arr(2), i, 1))
    Next i
    If tmpOut > 22 Then tmpOut = CInt(Mid(CStr(tmpOut), 1, 1)) + CInt(Mid(CStr(tmpOut), 2, 1))
    ScitajDatum = tmpOut
End Function
Napísať odpoveď