Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Uparivanje zbirova

[es] :: Office :: Excel :: Uparivanje zbirova

[ Pregleda: 2430 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.static.isp.telekom.rs.



+322 Profil

icon Uparivanje zbirova13.02.2013. u 10:38 - pre 136 meseci
Za pocetak mislim da to ne može ali hajde da probam, ima ovde ima pametnijih od mene.
Često u knjigovodstvu postoji problem sređivanja konta (kada se na njima traži greška). Pojednostavljeno trebalo bi sledeće: Imamo kolonu duguje i potražuje i u njima neke brojeve. Potrebno je upariti iste brojeve sa istima npr racun od 5.000 iz kolone duguje,uparuje se sa uplatom od 5.000 iz kolone potražuje i ovo nije problem resiti. E onda dolazi druga matematika koja se svodi na to da u koloni duguje imamo račun od 5.000 dinara ali je on delimično plaćen iz više puta (ne zna se unapred broj plaćanja) i uplate se nalaze u koloni potražuje. Uparene vrednosti treba obeležiti nekom bojom da bi se vizuelno videlo da su uparene.
Ako nekim slučajem račun od 5000 dinara nije uplaćen u celosti, program treba da prikaže kao da nije uparen uopšte, tj. uparuje samo kompletno izvršene uplate.

Mislim da je ovo čisto zbog kombinatorike (velikih brojeva) nemoguće da rešim, ali možda ima rešenje.
Napomena:broj redova u Excel-u može biti veliki, npr (ukupno 5000 uplata i računa).

Duguje___Potražuje
5000_______0
0________5000
5000_______0
0________1000
0________1000
0________2000
0________1000
5000_______0
0________4000

Prvih 5000 treba da upari sa 5000 iz kolone potražuje.
Drugih 5000 treba da upari sa (1000+1000+2000+1000)
Trećih 5000 i 4000 ostaju neupareni.
I naravno kvaka je u tome da se uplate ne nalaze odmah ispod fakture kao što je predstavljeno u ovom primeru radi lakšeg sagledavanja problema, već uplata po određenom računu može da se pojavi daleko na dnu tabele.
 
Odgovor na temu

pera68
Bačka Palanka

Član broj: 98559
Poruke: 121
*.scansafe.net.



+9 Profil

icon Re: Uparivanje zbirova13.02.2013. u 12:38 - pre 136 meseci
Koliko sam dobro razumeo, ovde ti treba formula SUMIF ali je najbolje da zakačiš primer kako bi se u istom problem rešio.
Ukoliko ne znaš ova funkcija vrši zbir jedne kolone na osnovu kriterijuma.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Uparivanje zbirova13.02.2013. u 12:51 - pre 136 meseci
Nema pomoći korisniku Blue82.

Ovaj isti problem iznosi već deseti put, svaki put u drugom delu foruma.

Kao što sam ti već napisao, problem se zove zatvaranje otvorenih stavki. Dokument koji se formira da bi se upozorio klijent na neplaćene obaveze je IOS (izvod otvorenih stavki).
Kao što sam već napisao, kombinatorika koju si pokušavao da napraviš (svaku dugovnu pokušaš da upariš sa svakom potražnom) neće ići zbog velikog broja kombinacija.
Kao što sam već napisao, problem se u praksi rešava tako što se stavke uparuju po principu da se zatvara NAJSTARIJE potraživanje.

Na primer,
prva obaveza klijenta je 5000 dinara, druga obaveza 3000 dinara (po datumu formiranja obaveze).
Klijent uplaćuje 3000 dinara.
Zatvara se prva obaveza (5000 dinara) tako što se zatvori iznos od 3000 dinara (na dugovnoj strani), a ostane otvoren iznos od 2000 dinara, a na potražnoj strani se u celini zatvara iznos od 3000 dinara.

Dakle, potrebno je uz svaku stavku, osim dugovne ili potražne strane, čuvati iznos otvorenosti (koji je u momentu formiranja dugovne ili potražne strane jednak inicijalnom iznosu dugovanja ili potraživanja)

Proces zatvaranja stavki prolazi kroz stavke i traži redom prvo otvorene stavke po dugovnoj strani, pa ih zatvara sa prvom otvorenom stavkom na potražnoj strani.
Evidentira se broj dugovne stavke (ključ) broj potražne stavke i iznos koji je zatvoren, da bi moglo da se prati kako je urađeno zatvaranje.

Naravno, ako postoje neki drugi kriterijumi (poziv na broj, na primer) kojim može da se utvrdi šta se čime zatvara, onda se prvo taj kriterijum primenjuje kod zatvaranja, ako ne, onda redom po datumu.
 
Odgovor na temu

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.static.isp.telekom.rs.



+322 Profil

icon Re: Uparivanje zbirova13.02.2013. u 13:13 - pre 136 meseci
Ovo o čemu @Djoka piše je nešto drugo. To je primer kako bi to programski trebalo da funkcioniše. U praksi na našem programu otvorene stavke se povezuju ručno i sa tim nema problema. Međutim, da ne ulazim previše u računovodstvenu problematiku, ja iz nekog razloga moram da pregledam sve komitente koje imamo (a imamo ih preko 1000), i to od 2005 godine do danas. To podrazumeva prečešljavanje svih naših kupaca, svih njihovih faktura i uplata od 2005-2013. godine, da bi se videlo šta je neko od bivših knjigovođa pogrešio. Ima tu još mnogo više parametara od prostog duguje/potražuje koje sam predstavio ali to ne bi bio problem implementirati ako bi se rešila osnova, a osnova je gore predstavljena.
Ja sam neke stvari uspeo da prečistim što programski a što preko VBA koda i sada mi je ostalo neupareno oko 7000 naloga. Da to žene ne bi radile ručno sledećih par meseci, pokušavam da im još kako pomognem.

Dakle problem nije kako osmisliti računovodstveni program, već kako ispeglati grešku koja je nastala.
A kako izgleda? izgleda ovako samo pomnoženo sa mnogo redova.

Code:

VrstaNaloga    TipDokumenta    RbrDokumenta    DatumNaloga    Valuta    Duguje    Potrazuje
KA    KALK1    44    15.1.2010    15.1.2010    45.662,64    0
KA    KALK1    46    15.1.2010    15.1.2010    19.075,95    0
KU    KU    118    25.1.2010    25.1.2010    -73,04    0
TK    TKTR    64    28.1.2010    27.2.2010    13.768,58    0
KU    KU    334    31.1.2010    6.3.2010    -2.126,21    0
KU    KU    335    31.1.2010    6.3.2010    -11.642,37    0
KA    KALK1    205    6.2.2010    6.2.2010    691,20    0
KA    KALK1    204    6.2.2010    6.2.2010    279,00    0
KA    KALK1    211    8.2.2010    8.2.2010    5.568,66    0
KA    KALK1    318    23.2.2010    23.2.2010    5.443,74    0
KU    KU    505    27.2.2010    10.3.2010    -103,46    0
NK    NK    60    5.3.2010    5.3.2010    2.026.151,52    0
KA    KALK1    547    31.3.2010    31.3.2010    3.736,98    0
KA    KALK1    580    9.4.2010    9.5.2010    38.731,50    0
KA    KALK1    579    9.4.2010    9.5.2010    40.062,34    0
UR    UR01    496    9.4.2010    9.5.2010    -78.793,84    0
TK    TKTR    413    16.4.2010    16.4.2010    145,00    0
TK    TKTR    437    21.4.2010    21.4.2010    69.897,46    0
KU    KU    1014    28.4.2010    28.4.2010    -2.188,79    0
KA    KALK1    699    29.4.2010    13.6.2010    2.362,10    0
KA    KALK1    700    29.4.2010    13.6.2010    1.297,73    0
KA    KALK1    701    29.4.2010    13.6.2010    1.532,88    0
UR    UR01    448    30.4.2010    13.6.2010    -5.192,71    0
KU    KU    1083    30.4.2010    30.4.2010    -805,56    0
UR    UR03    698    1.5.2010    20.5.2010    0,00    0
UR    UR32    699    1.5.2010    20.5.2010    -900,00    0
KA    KALK1    743    6.5.2010    20.7.2010    166.341,60    0
UR    UR03    702    7.5.2010    20.5.2010    -900,00    0
KA    KALK4    760    8.5.2010    7.7.2010    0,00    0
KA    KALK4    760    8.5.2010    7.7.2010    0,00    0
KA    KALK4    761    8.5.2010    7.7.2010    0,00    0
KA    KALK4    761    8.5.2010    7.7.2010    900,00    0
TK    TKTR    493    8.5.2010    8.5.2010    3.294,54    0
UR    UR01    786    11.5.2010    27.5.2010    -256,23    0
KA    KALK4    768    11.5.2010    11.5.2010    0,00    0
KA    KALK4    768    11.5.2010    11.5.2010    900,00    0
UR    UR01    788    12.5.2010    27.5.2010    -1.024,92    0
UR    UR01    736    13.5.2010    12.6.2010    -60.223,19    0
KA    KALK1    780    13.5.2010    12.6.2010    52.803,94    0
KA    KALK1    779    13.5.2010    12.6.2010    7.419,25    0
KA    KALK1    785    14.5.2010    14.5.2010    7.667,42    0
KA    KALK1    786    14.5.2010    14.5.2010    678,78    0
UR    UR01    911    14.5.2010    28.6.2010    -8.341,20    0
UR    UR03    694    17.5.2010    20.5.2010    -1.170,00    0
UR    URTK    717    17.5.2010    22.5.2010    -4.112,64    0
UR    URTK    718    17.5.2010    1.6.2010    -4.989,60    0
UR    UR01    809    18.5.2010    17.6.2010    -332,88    0
KA    KALK4    791    18.5.2010    2.7.2010    0,00    0
KA    KALK4    791    18.5.2010    2.7.2010    1.170,00    0
KA    KALK4    792    18.5.2010    17.7.2010    900,00    0
KA    KALK4    792    18.5.2010    17.7.2010    0,00    0
TK    TKTR    534    18.5.2010    18.5.2010    9.102,24    0
UR    UR03    696    18.5.2010    20.5.2010    -900,00    0
KA    KALK1    798    19.5.2010    17.8.2010    1.005.882,50    0

 
Odgovor na temu

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.static.isp.telekom.rs.



+322 Profil

icon Re: Uparivanje zbirova13.02.2013. u 13:26 - pre 136 meseci
@pera68
Ne znam da li sam Vas dobro razumeo ali SUMIF po meni ne pije vodu jer on bi samo dao sumu nekih faktura po komitentima što bi se lako uradilo uz pomoć pivota ali nije to to. meni je cilj da ostanu tačno neupareni nalozi da se vidi tipa izdat avans na toliko i toliko a povučeno robe samo ovoliko i sl. a ne sume nekih vrednosti za koje se opet ne zna iz čega se tačno sastoje. Trenutno ja znam kod kojih kupaca postoji neravnoteža ali pošto ih ima puno, ne znam koji tačno nalozi čine tu neravnotežu. Jer kod jednog kupca može biti 200 promena a samo je jedan nalog netačan.

Evo i jedan kraći fajl za primer pošto je onaj gore poprilično nečitljiv.
Prikačeni fajlovi
 
Odgovor na temu

Brodoplovac
Beograd

Član broj: 171299
Poruke: 838
*.adsl.verat.net.



+166 Profil

icon Re: Uparivanje zbirova13.02.2013. u 14:03 - pre 136 meseci
Kada bi ovaj problem rešio programerski (VBA) verovatno bi dobio veliki broj mogućih rešenja. Ne znam kakva bi ti bila korist od toga. Takođe, mislim da bi tom programu trebalo par godina da dođe do rešenja.
 
Odgovor na temu

Blue82
dipl. ecc.

Član broj: 165981
Poruke: 838
*.static.isp.telekom.rs.



+322 Profil

icon Re: Uparivanje zbirova13.02.2013. u 14:10 - pre 136 meseci
Ne bih dobio više rešenja. Primera radi:
Do sada sam tražio šta se može upariti duguje sa potražuje ako je upitanju isti iznos. Ono što se upari obeležim crvenom bojom i posle u VBA kodu kada pronadjem drugo rešenje proverim da nije neki od ta 2 broja crven i ako jeste taj je već uparen i ta kombinacija nije moguća. U drugom prolazu traži u istoj koloni (prvo duguje pa posle potražuje) tražim iste brojeve ali od kojih je jedan pozitivan a drugi negativan (slučaj storniranja) pa uparujem i te crvenom bojom, a ako su već crveni, nikom ništa itd itd. Tako bi i ovde, zbirove koje jednom upari, oni su upareni za uvek i više se ne koriste u bilo kakvoj kombinaciji, a ono što je ostalo je otvorena stavka.

U biti, sada sam gledao taj fajl što mi je ostao, i problem se može pojednostaviti.
Umesto da se gleda tako glomazan fajl, problem se svodi na uparivanje zbirova za svakog komitenta posebno. Prosečan broj neuparenih stavki po svakom posebnom komitentu je oko 10-tak a to bi možda bilo prihvatljivije što se kombinatorike tiče (u smislu toga koliko će dugo program raditi). Napravio bih makro sa dugmetom, one sortiraju komitenta koji ih zanima, klik na dugme "upari" i da im makro upari od tih 10-20 promena šta se može upariti. Ali i sa tako malim brojem problem mi je kako da ga naučim da uparuje jedan broj sa neodređenim brojem zbirova iz druge kolone).
 
Odgovor na temu

Brodoplovac
Beograd

Član broj: 171299
Poruke: 838
*.adsl.verat.net.



+166 Profil

icon Re: Uparivanje zbirova13.02.2013. u 18:44 - pre 136 meseci
Ja sam radio jednu takvu aplikaciju. Aplikacija je radila sa 60 podataka, a zadatak je bio da se ovih 60 podataka podeli u 4 kontinuirane grupe (reč je o vremenskoj seriji) tako da svaka grupa ispunjava odgovarajući uslov. Trebalo je odrediti granice tih grupa. Aplikaciji je trebalo oko 3-4 sekunde da se izvrši. Aplikacija nije mogla da radi sa više od 75 podataka zbog ograničenja koga ima MIN VBA funkcija.

Odavde sledi da je moguće napraviti VBA aplikaciju koja radi ono što želiš jer broj kombinacija ne bi bio prevelik. Tvoj problem je malo kompleksniji jer tvoji podaci nisu kontinuirani, ali ti zato imaš manje podataka. Takođe, u tvom slučaju broj grupa nije unapred poznat.

Najbolje postavi pitanje na nekom drugom PDF-u koji posećuju pravi programeri. Rešenje ovog problema zahteva dobar algoritam za kombinatoriku, kao i korišćenje rekurzije. Meni bi trebalo možda i više dana da to ispogramiram, ali pravi programeri možda već znaju šta i kako.

 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1319

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Uparivanje zbirova16.05.2013. u 00:04 - pre 133 meseci
Pogledaj rešenje koje je izložio Bernd Plumhof (Plumhoff) na svom sajtu.
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

[es] :: Office :: Excel :: Uparivanje zbirova

[ Pregleda: 2430 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.