Vlookup ali pa index&match ali pa vba koda

Pomoč pri delu z MS Excelom
Odgovori
DamijanF
Prispevkov: 9
Pridružen: Če Feb 09, 2006 4:29 pm
Kraj: Maribor

Vlookup ali pa index&match ali pa vba koda

Odgovor Napisal/-a DamijanF »

Pozdravljeni,

Imam dve tabeli, z registrskimi st. + cas voznje (stetje prometa na dveh koncih).
Torej uporabim vlookup funkcijo in dobim kdaj je prevozil prvo tocko in kdaj je prevozil drugo tocko..(registrska/ura1/ura2/)
Problem je kadar vozilo prevozi veckrat drugo tocko.

Kot je znano Vlookup vrne vedno prvo vrednost, ki jo najde..torej dobimo rezultate ko je vozilo drugo tocko prevozilo prej kot prvo. (ura2 je vedno enaka, ura1 pa se seveda "veca")

A je kaksna moznost z index in match funkcijo ali bo potrebno napisat kaksno vba kodo? (if cas2-cas1 < 0 then look next match) :)

Hvala za pomoc in odgovore!
GoldZ
Prispevkov: 137
Pridružen: Če Sep 01, 2005 10:20 am

Odgovor Napisal/-a GoldZ »

Vlookup res vedno najde prvo ujemajočo se vrednost.

Kaj pa prehodna ustrezna razvrstitev časov :wink:
Življenje je enostavno, če poznaš "The Secret".
GoldZ
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Napišite primer podatkov in problem, ki se vam pojavi, saj ne razumem najbolje, kaj vas muči (lahko da gre res samo za ustrezen sort, kot je omenil že GoldZ)
lp,
Matjaž Prtenjak
Administrator
DamijanF
Prispevkov: 9
Pridružen: Če Feb 09, 2006 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a DamijanF »

Ne pomaga. Vedno bo nasel samo eno vrednost..tisto katera pac bo prva na vrsti..jaz bi rad malo vec dinamike od vlookup-a :) .. ampak ocitno ne gre.. torej iscem pomoc in sem odprt za druge ideje.

imam pa priblizno tako..
reg cas cas2
mb-xy-55 07:00 7:15(ta je zraven pripopan sedaj z vlookup funcijo iz druge tabele
mb-xy-55 08:00 7:15 (tukaj pa bi moral sedaj biti recimo 8:15, kateri je v bistvu zapisan v drugi tabeli, vendar vedno vrze tega prvega..
mb-xy-55 09:00 7:15 ..
mb-zz-10 07:00 7:15 ..itd..

In nekatera vozila so pac prevozila obmocje 5, 6 krat v dnevu..al samo prvi del, pa drugega ne itd..
ce bi vsa samo enkrat prevozila obe tocki bi bilo kul :). Ne vem kaj se imajo toliko za vozit po eni in isti poti :)

Torej sem mislil ce bi slucajno kdo ze delal s podobno zadevo in je kaj zgruntal.. ali pa magari kaj spisal.. ker tukaj bo verjetno edino pomagalo ce bi nekje vrinil "if cas2-cas1 <0 then look for next match value.." (ker ni bil prej na cilju kot na startu) ali pa "da ze obstaja tak match, najdi mi mi naslednjega ce obstaja, drugace pac nic" ...torej ena kratka koda..ampak nisem expert na tem podrocju in bi potreboval pomoc..
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Aha :)

Sedaj vas pa razumem. Torej vi imate še eno tabelo, kjer imate zapisane registerske tablice in čase prihodov, problem pa je, da je v tisti tabeli več ISTIH registerskih tablic. Rešitev je sledeča:

PRVI KORAK:

Tisto tabelo morate razširiti s števcem, ki šteje zaporedno pojavitev registerske tablice. Primer:

Koda: Izberi vse

 ' namesto tega
 REG    ČAS
 CExxx  12:30
 CExxx  14:30
 CExxx  15:50
 CExxx  18:00
 MBxyz  14:00
 KRzzz  12:10
 KRzzz  18:50

 'morate dobiti tole
 REG    ZAP.  ČAS
 CExxx   1    12:30
 CExxx   2    14:30
 CExxx   3    15:50
 CExxx   4    18:00
 MBxyz   1    14:00
 KRzzz   1    12:10
 KRzzz   2    18:50
Števec dobite preprosto s funkcijo COUNTIF!

DRUGI KORAK
Združite registersko tablico in zaporedno številko v en niz. Primer:

Koda: Izberi vse

 REG    ZAP. SKUPAJ   ČAS
 CExxx  1    CExxx_1  12:30
 CExxx  2    CExxx_2  14:30
 CExxx  3    CExxx_3  15:50
 CExxx  4    CExxx_4  18:00
 MBxyz  1    MBxyz_1  14:00
 KRzzz  1    KRzzz_1  12:10
 KRzzz  2    KRzzz_2  18:50

Združite preprosto s funkcijo =A1 & "_" & B1
Ko boste izvedli ta dva koraka pa greva dalje do zadnjih dveh korakov. Javite ko boste, da ne pišem, vi pa bi potem sploh ne izbrali te poti ;)

PS: Oba koraka sta noro trivialna, saj ju lahko izvedete skupaj tako da med registersko tablico in čas vrinete dve koloni in vanju vpišete funkciji

Koda: Izberi vse

=COUNTIF($A$2:A2;A2)       =A2&"_"&B2
Ter semo skopirate funkciji navzdol (10 sekudnd dela!!!!). Mnogo, mnogo, mnogo manj kot sem ga jaz potreboval za pisanje tele solate :cry:
lp,
Matjaž Prtenjak
Administrator
DamijanF
Prispevkov: 9
Pridružen: Če Feb 09, 2006 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a DamijanF »

Pozdravljeni,

Hvala za trud. Ampak mislim da mi to dodatno zaporedje ne bo pomagalo.. ker MBxxx se je lahko na prvi tocki pojavilo 5 krat, na drugi pa samo 3 krat ...ali pa obratno.

Pomeni torej, da mi pri MBxxx_5 ne bo nasel nic, ceprav bi mu dejansko pripadal Mbxxx_3 iz druge tocke..(ker pac tretjic in cetrtic ni peljal skozi drugo tocko, ampak se je prej obrnil recimo..)

Jaz mislim, da se ne bom mogel izogniti pisanju vba.. ker vse zahteva neko dinamiko..

Obvezno moram gledat match registrske, potem pa prvi cas primerjat z ostalimi casi v drugi tabeli, in to tako, da ne sme bit negativni rezultat(cas v osnovni tabeli mora biti manjsi od casa v drugi tabeli).
Torej MBxxx_5 bo imel cas (pri prvi tocki) enkrat pozno popoldne recimo 17:00, MBxxx_3 (pri drugi tocki) pa bo imel 17:15. To bo pravi rezultat. Sedaj mi vrze seveda rezultat od Mbxxx_1 (v drugi tabeli) - ki je manjsi.. in MBxxx_2 (pri drugi tocki) tudi verjetno je, tretji bo pa pravi...torej mora "preletet" vse opcije pri katerih je nasel match registrske in potem prilepit "ta pravo" (to je naslednja vecja ura od tiste v osnovni tabeli).

Sicer pa ja, ce se bodo naslednji koraki, in ce imate se voljo za razmisljat, bom popolnoma sledil navodilom. Ne bom obral nobene druge poti. (zdaj jo sicer sem - rocno :) - ker sem ze zgubil dan za metanje formul sem ter tja). Ampak za naslednje primere bo seveda dobrodosla avtomatizacija.. navsezadnje gre tukaj za par tisoc vozil...in rocno delo traja..traja...

Se enkrat hvala za trud.

LP
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

DamijanF napisal/-a: Sicer pa ja, ce se bodo naslednji koraki, in ce imate se voljo za razmisljat, bom popolnoma sledil navodilom. Ne bom obral nobene druge poti. (zdaj jo sicer sem - rocno :) - ker sem ze zgubil dan za metanje formul sem ter tja). Ampak za naslednje primere bo seveda dobrodosla avtomatizacija.. navsezadnje gre tukaj za par tisoc vozil...in rocno delo traja..traja...
:? Vas moram razočarati, da tako, kot ste sedaj opisali situacijo pa vam samo formule pravzaprav ne morejo pomagati. Torej da bi vi vnaprej pripravili formule in ne imeli kar veliko ročnega dela se ne da narediti... Bo potrebno poseči po VBA kodi.

PS: V kolikor se tega ne boste lotili samo si lahko pogledate sledeč link (http://www.matjazev.net/forum/viewtopic.php?p=2015)
lp,
Matjaž Prtenjak
Administrator
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Lahko nekam shranite zvezek (shrani.si) in prilepite link, ker meni namreč še vedno ni jasno kako vse skupaj zgleda. Potem vam lahko mogoče še kako pomagam :wink:
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
Odgovori