[ sasa.je @ 13.04.2022. 08:03 ] @
Igramo neke karte na internetu pa me zanima mogu li izvući željenu statistiku u excel-u, access-u ili ne mogu ovo što tražim ni u jednom od ta dva. Naime, rezultate mogu bez problema prenijeti u excel, i već radim na osnovu toga neke statistike. Sad mi treba jedan novi podatak koji ne znam kako da dobijem. U nastavku je izgled tih podataka u excelu, kao i u prilogu.
U A1 ćeliji je broj partije sa servera, u A2 ime igrača, u B2 rezultat, sve do A5 i B5. A6 je ponovo broj partije itd. Polja B1, B6... su prazna. Meni treba da vidim koliko puta se SImo i Pero bili u istoj partiji i ko je bolji u međusobnim okršajima. Svaku partiju igraju 4 igrača. Cilj je imati manje na kraju partije.
0-2415625
Pero 11
Simo 18
Ana 25
Danka 35
0-2415654
Mira 14
Trajko 22
Pero 22
Simo 41
0-2415965
Simo 1
Ana 25
Pero 29
Mira 33
0-2416543
Mile 12
Simo 12
Danka 32
Jovo 32
[ Jpeca @ 13.04.2022. 12:19 ] @
Meni je problem bio interesantan pa sam se malo pozabavio.

Može i na jedan i na drugi način ali ne znam šta je jednostavnije (zavisi verovatno šta više poznaješ).
U Accessu bi ja napravio tri tabele Igrači, Partije i veznu tabelu u kojoj bi se upisivao Skor za igrača i partiju. Onda bi mogao da se naprave dva Query za Igrača 1 i Igrača 2 i onda finalni Quey koji bi spojio ova dva query preko broja partije i izračunao medjusobni skor.


Nešto slično uradio sam u Excelu preko Get & Transform (Power Query)
1/ Iz tvoje tabele napravio sam "zgodniju" tabelu za dalje analize pomoću Get & Transform i prikazao je u listu Rezultati (naravno ne mora se prikazivati, ovde je bio cilj da pratiš postupak)

2/ U listu poređenje imenovo sam dve ćelije Igrac1 i Igrac2 - tu upisujemo imena igraca za poredjenje

3/ U Get & Transform napravio sam dve pomoćne tabele - Filtriranu tabelu Rezultati za Igrac1 i Igrac2. Njih ne prikazujem (Connection only).

4/ U Get & Transform uradio sam merge dve tabele iz koraka 3 preko id partije (inner join) i ova tabela prikazana je u listu Poređenje od B12.

5/ Iz tabele u koraku 4 napravio sam forumle a sumarnim podacima za ova dva igrača od I1 na listu Poređenje. Po Potrebi ove formule možeš da doradiš. Obrati pažnju da koristiš celu tabelu - ne opseg.


Kad izmeniš igrače potrebno je Data > Refresh All da bi se svi koraci od 1 do 4 obavili i prikazali novi za poređenje.

6/ Radi lakšeg rada dodao sam upit za listu igrača, i na osnovu nje izbor izgrača iz padajuće liste. Takođe dodato je dugme za Refresh All

Pogledaj Uvod u Get&Transform, a korake koje sam ja odradio možeš da pogledaš kad uđeš u editovanje query View > Advanced Editor



[Ovu poruku je menjao Jpeca dana 14.04.2022. u 09:43 GMT+1]
[ sasa.je @ 17.04.2022. 16:20 ] @
Peco,
izvini, bio sam na putu pa tek sad vidjeh da si odgovorio. Sutra ujutru ću imati vremena pa ću natenane da pregledam obje tvoje varijante.
Hvala :)
[ sasa.je @ 18.04.2022. 14:16 ] @
Hvala, Peco.
Ovo radi u excelu. Prvo me odmah ova ekipa cimala da im izbacim skorove, sad tek pokušavam da shvatim kako fukcioniše. Nisam radio ovaj Power Querry pa ću baš da pokušam da shvatim. Možda mi nekad zatreba i za nešto konkretno. Nego i meni ovo izgledalo kao izazov, pa onda sam sebi dam zadatak, ali definitivno je da sam ne bih znao da riješim.
Hvala još jednom :)
[ sasa.je @ 19.04.2022. 10:11 ] @
Sad pokušavam korak po korak da sebi ovo razjasnim. Gledajući ove tvoje korake u uputstvu, završio sam sa korakom 1). Dalje, kod koraka 2) sam napravio novi Sheet i u njemu unio dvije ćelije, za igrača 1 i igrača 2. Iz tog razloga sam onda otišao na korak 6, da dobijem novi sheet sa imenima igrača koji se pojavljuju. I to sam završio sa Get & Transform. Zatim sam u sheetu Poređenje za igrače 1 i 2 kreirao dvije drop-down liste i pozvao ih na sheet ListaIgrača. Onda sam se vratio na korak 3) gdje ti kažeš da si napravio dvije pomoćne tabele koje se ne vide, tj vide se samo u Query editoru. I ja ih tamo vidim, ali ne znam kako da ih kreiram. Pa je to moje pitanje, kako da ih kreiram i jesam li dobro odradio ove drop-down liste za igrače ili je trebalo na neki drugi način?
EDIT: Našao sam kako se kreira Connection only, a tamo u koracima, ima korak "Navigation" gdje se ti ustvari valjda pozivaš na izbor igrača iz padajućeg menija. To nikako ne uspjevam da izvedem.

[Ovu poruku je menjao sasa.je dana 19.04.2022. u 11:35 GMT+1]
[ Jpeca @ 19.04.2022. 14:22 ] @
Kad otvoriš upit Igrac1 u Edit modu prkazu se koraci sa desne strane ( u ovom slučaju samo tri koraka).


Uobičajeno da se ti koraci formiraju iz menija Query Editora. Međutim, u ovom slučaju za filtriranje je potreban sadržaj ćelije imenovane Igrac1, što ne postoji u komandama menija (bar ja ne znam) nego sam komadnu uneo kroz Advance Editor (View > Advance Editor).



Praktično sve komande se zapisaju u jeziku "M" tako da možeš direktno da menjaš i doteruješ po potrebi koristeći Advance Editor - kad je to zgodnije. Vidi detaljnije. U konkretnom slučaju ja sam krenuo od upita iz dva koraka
1/ =Rezultati
2/ Filter tabele po "Pero"
Zatim sam u advance editoru dodao medjukorak - promenjival Igrac da se popuni iz odgovarajuće ćelije radne sveske i umesto fiksnog stringa "Pero" koristio tu promenljivu za filtriranje .

Igrac2 je isti upit (Duplicate) samo se filtrira po koloni Igrac2 umesto Igrac1 i odgovarajućeoj ćeliji iz radne sveske.






[Ovu poruku je menjao Jpeca dana 20.04.2022. u 09:10 GMT+1]
[ sasa.je @ 20.04.2022. 17:28 ] @
Pokušavam ali još ne ide, nadam se da ću 'proguliti'. Da bih sebi dao zadatak, dodao sam u osnovnu tabelu i bodovanje na kraju partije (10-6-3-1 ili ako dva igrača imaju isto poena, onda se dobija veća vrijednost bodova) Htio sam da u tabelu tj Sheet Poredjenje dodam i ovaj podatak. Bodovanje radi formula kao što se vidi na primjeru, ali ne ide mi. Ne znam kako da pozovem igrača, vidio sam da se to radi u jeziku "M" ali mi je sintaksa nejasna.
A cilj mi je da osim polja tj kolone Igrac1.skor dobijem i podatak Igrac1.Bod
[ Jpeca @ 23.04.2022. 10:47 ] @
Ti si dodao kolonu C sa odgovarajućim formula u tabelu Rezultati. Međutim ako pogledaš u Query Editoru Rezultati nemaju tu kolonu!? Razlog je što se Rezultati formiraju upitom iz Sheet1 i ono što se naknadno dodaje biće vidljivo u Excelu ali ne vidi se u Query Editoru. Postoje različiti načini da se ovo reši:

1/ Da se za dalje upite ne koristi upit rezultati nego tabela (sa novom kolonom)
2/ Da se formule upišu direknto u polazni list Sheet1
3/ Da se formule "kreiraju" u Query Editoru

Pošto hoćeš da učiš Power Query 3 mi se čini dobra vežba. Ja sam uradio preko 2 - znači prebacio sam tvoje formule u polazni Sheet1.

Dalje su neke minimalne izmene u upitu Poredjenje - zbog dodatnih kolona. Sve ostalo ostaje kako je i bilo. Nema potrebe za ulaženje u Advance Editor i ažuriranje komandi jezika M

[ sasa.je @ 25.04.2022. 11:00 ] @
Hvala, Peco.
Ja mic-po-mic napredujem. Kad si napisao da ne moram po Advaned editoru da kuckam, malo mi lakše. Sad me muči sledeće, kreirao sam tabelu u Power query koja sređuje one rezultate (radim iznova da pokušam da sve korake skontam), takođe i kreirao upit koji pravi tabelu sa listom igrača.
Kada kreiram onaj pomoćni upit za Igrače 01 i 02, koji su Connection only, muči me ono prvo polje Source.
Evo u Slikama se najbolje vidi. Kod tebe stoji da je Source = Rezultati, pozivaš se na tabelu Rezultati valjda.
Ja kada preimenujem izvorni rang da se takođe zove rezultati, ne dobijam ništa.
Takođe, kad izfilitriram u tom pomoćnom kveriju da se pozove na
each ([Igrac] = Igrac))
ne dobijem nište. Vjerovatno nisam imena na koja se pozivam kako treba izdefinisao.
[ Jpeca @ 25.04.2022. 13:05 ] @
Priv korak u upitu
Code:
=Rezultati

znači da je izvor za novi upit prethodni upit Rezultati.

U slikama koje si dao vidim da se prikazuju neki podaci za korak =Rezultati i nema greške, tako da ne znam u čemu je problem. Ako to nisu podaci koje očekuješ pokušaj Refresh (Refresh All)

Što se tiče drugog dela ne vidim šta je u promenljivoj Igrač? Tu bi trebalo da bude vrednost iz imenovanog opsega (ćelije) tekuće radne sveske. Pogledaj da li tu prethodnom koraku (Navigation) dobijaš očekivani rezultat. Takođe proveri u Advance Editoru da li se naziv promenljive poklapa
[ sasa.je @ 25.04.2022. 17:54 ] @
Peco, sad sam u putu pa ću tek ujutro da pogledam. Samo da ti kažem pošto si pitao, ono tvoje savršeno radi, nego mi nije samo to cilj nego da skontam korake pa ja onda idem jovo-nanovo :)
[ sasa.je @ 26.04.2022. 23:45 ] @
Ovdje pravim grešku ali ne znam šta griješim. Na slici 05 se vidi da sam na osnovu upita Rezultati dobio sređenu tabelu koja se nalazi na istoimenom shhet-u.
Zatim hoću da napravim connection only za pomoćne tabele Igrac 01 i Igrac 02, ali čim klinem onako kako se vidi na slici 05, dobijem query editor gdje se vidi da mi u polju Source ne piše Source = Rezultati
kao kod tebe. Ti jesi napisao da mi za pomoćne upite za igrače 01 i 02 polazište treba biti prethodni upit Rezultati, ali ja to očigledno pogrešno pokušavam.
[ Jpeca @ 27.04.2022. 11:50 ] @
Možeš jednostavno da izmeništ taj korak i ručno upišeš Rezutati umesto Excel.CurrentWorkbook ...

Razlog zašto ovo dobiješ je što si ti kao izvor uzeo tabelu a ne upit - Što može i nije greška zavisi kako rešavaš problem.

Moj postupak je sledeći.
U Query Editoru (npr. pokreneš Edit Rezultati) Dodaš novi query - desni klik na listu upita sa leve strane i onda biraš New Query > Other Sources > Blank Query
I onda za prvi korak jednostavno ručno upišeš =Rezultati
[ sasa.je @ 27.04.2022. 17:01 ] @
Izvini, ne stigoh otkucati. Došao sam do kraja "pješke" tj. shvatio sam sve korake. Vidjeh da se taj korak kako si napisao mora ili ručno, ili pozvati na upit i našao sam i kako. Sad sam mislim stigao do kraja, pa ću se prebaciti na Access da to isto sve napravim. Nisam ga godianam koristio, ali prelistaću stara uputstva.
P.S. ostala mi je jedna sitnica koja uopšte ne utiče na funkcionalnost. Onaj drop-box gdje biram igrače, moram pokušati da ga doradim. Naime, kod mene u realnoj situaciji ima oko 200 igrača i kad treba da skrolujem baš oduzme vremena, iako je abecedno soritrano. Pokušao sam da vidim kako da riješim da sužava izbor kako ja kuckam početna slova imena. Vidjeh na netu da se to ne može sa klasičnim drop-box već moram izabrati COmbo-box sa Active x kontrolama. Zasad mi ne ide, ali mislim da ću to riješiti. Vidim da u ponudi kao rješenje ima i opcija da se doda neki add-in koji tu funkcionalnost dodaje klasičnom drop-boxu pa ću vidjeti kako to već da riješim.
Peco, hvala još jednom :)