Answer Question
0
0

Mám tabulku o stovkách řádků.
Tabulka má sloupec, kde je zapsáno datum.
Každý řádek tabulky se vztahuje k nějakému uživateli, uživatelé se v tabulce objevují opakovaně.

Potřebuji zjistit, v kolika měsících za poslední rok se daný uživatel v tabulce objevil.

Příklad:
1.1.2019 uživatel A
1.2.2019 uživatel B
1.3.2019 uživatel B
1.4.2019 uživatel B
1.5.2019 uživatel A
1.6.2019 uživatel B
1.7.2019 uživatel A
1.8.2019 uživatel B
1.9.2019 uživatel A

výsledkem by mělo být, že uživatel A se za posledních 12 měsíců (od aktuálního data) objevil ve 4 měsících (4x), uživatel B v 5 měsících (5x)

Marked as spam
Avatar uživatele Odeslal inairres@gmail.com
Otázka položena 23.7.2019 12:37
499 views
0
Private answer

Resp. možná jsem ten příklad napsal trochu nešťastně (jednoduše).
Tady je lepší příklad:

Příklad:
1.1.2019 uživatel A
10.1.2019 uživatel A
1.2.2019 uživatel B
1.3.2019 uživatel B
10.3.2019 uživatel B
1.4.2019 uživatel B
1.5.2019 uživatel A
10.5.2019 uživatel A
1.6.2019 uživatel B
10.6.2019 uživatel B
1.7.2019 uživatel A
10.7.2019 uživatel A
1.8.2019 uživatel B
1.9.2019 uživatel A
10.9.2019 uživatel A

výsledkem by mělo být, že uživatel A se za posledních 12 měsíců (od aktuálního data) objevil ve 4 měsících (leden, květen, červenec, září), uživatel B v 5-ti měsících (únor, březen, duben, červen, srpen)

Marked as spam
Avatar uživatele Odeslal inairres@gmail.com
Odpověděl 23.7.2019 13:03
0
Private answer

Tak už jsem dopátral, že všechny měsíce jde vysčítat vzorcem =SUMA(SIGN(ČETNOSTI(a1:a10;a1:a10)))
Nicméně nedaří se mi přijít na to, jak do toho vzorce zakomponovat rozlišování uživatel A/B?

Marked as spam
Avatar uživatele Odeslal Anonymous
Odpověděl 24.7.2019 10:39
0
Private answer

Šel bych na to úplně jinak - pomocí Power Query:
https://exceltown.com/wp-content/uploads/2019/07/unikátní-výskyty.xlsx
Data se vezmou, z datumů se udělají měsíce a pak se pro uživatele spočtou výskyty unikátních hodnot.

Marked as spam
Avatar uživatele Odeslal (Otázky: 1, Odpovědi: 340)
Odpověděl 24.7.2019 12:58
0
Private answer

Power Query se přiznám nerozumím.
Podle toho co jsem si našel na netu je to nějaká analýza stávajících dat v Excelu?
To bude nepoužitelné, protože to potřebuji vyřešit vzorcem.

Ta tabulka s daty není statická, nad níž by se dala dělat nějaká analýza (kontingenční tabulka, Power Query, atd). Tabulka s daty bude živá, neustále se do ní budou přidávat nové a nové záznamy. U každého nového záznamu je pak potřeba vzorcem zobrazit, kolikátý měsíc se daný uživatel za poslední rok objevil. Navíc uživatelé nebudou dva (ti jsou jen v modelovém příkladu), uživatelů budou reálně stovky až tisíce různých ...

Ještě mě napadá, jestli by nebylo elegantnější/jednodušší to vyřešit v Access, i když tam mě taky úplně nenapadá, jak ten vzorec/dotaz napsat.

Marked as spam
Avatar uživatele Odeslal Anonymous
Odpověděl 24.7.2019 18:37
0
Private answer

Dobrý den,
jde to daleko jednodušeji pomocí funkce "countif".
=Countif(B1:B15;uživatel A)...za předpokladu, že jména uživatelů jsou v sloupci B1:B15.
(Lze použít pro max.255 znaků...to lze řešit =countif(B1:B255;uživatel A)+countif(B256:B510;uživatel A)....

Marked as spam
Avatar uživatele Odeslal excelmanie
Odpověděl 26.7.2019 22:21
0
Private answer

nebo pro Váš druhý případ,kde je tabulka složitější:....
označila bych si jednotlivé měsíce barevně pro větší přehlednost a pak bych použila vzoreček:
=když(countif(b1:B2;uživatelA)>=1;1;0+když(countif(B3;uživatelA)>=1;1;0..... výsledek vypíše kolik měsíců za rok ten daný uživatel je v tabulce
(příklad ze 12 měsíců se vyskytuje v daném seznamu 4 měsíce.
Jediný problém je, že při odebrání nebo přidání dalších dat, je potřeba myslet na to, že se vzorec musí upravit.

Marked as spam
Avatar uživatele Odeslal excelmanie
Odpověděl 27.7.2019 0:10
0
Private answer

ak su v stlpci B mena, bude COUNTIF fungovat bez problemov (spominane obmedzenie 255 tam nie je)...
akurat to, co hladame, treba dat do uvodzoviek, konkretne
=COUNTIF(B1:B15;"uživatel A")
kludne aj =COUNTIF(B1:B500;"uživatel A"),
vzdy vrati pocet vyskytu uzivatela A v zvolenom rozsahu stlpca B
(teda za predpokladu, ze sa vyskytne dotycny v mesiaci iba raz, tento vzorec je riesenim povodnej otazky)

Marked as spam
Avatar uživatele Odeslal excellektor
Odpověděl 27.7.2019 17:16
0
Private answer

Dotyčný se může v jednom měsíci vyskytnout právěže buď vůbec, jen jednou, anebo mnohokrát. Proto jsem psal druhý upřesňující post, ten první je zavádějící (a nepřišel jsem na to, jak jej upravit/editovat).

=když(countif(b1:B2;uživatelA)>=1;1;0+když(countif(B3;uživatelA)>=1;1;0.....
To nejde použít. Uživatelů A/B/C... můžou být stovky, stejně tak záznamů v jednom měsíci mohou být stovky.
Ten vzorec nelze upravovat specificky pro každý záznam.

=COUNTIF(B1:B15;"uživatel A")
Dtto. Ve vzorci nemůže být zapsáno konkrétní označení uživatele.
Musí si to nějak samo vyzobávat.

Tak jak si jednotlivé hodnoty umí vyzobávat nadhozený vzorec výše
=SUMA(SIGN(ČETNOSTI(data;hodnoty)))
Taky se mu nemusí zadávat, že má hledat čísla od 1-12 (označení jednotlivých měsíců data ve sloupci A, získané pomocí =MĚSÍC(Ax), ale sám si je najde. A sečte. Čili když si udělám sloupec C, do kterého si načtu čísla měsíců vzorcem =MĚSÍC(Ax), tak pak dám příkaz
=SUMA(SIGN(ČETNOSTI(c1:c999;c1:c999)))
A vysčítá mi, kolikátý měsíc už je.
Akorát neumí rozlišovat dle uživatelů.
A sčítá vše do historie (měl by sčítat jen maximálně rok zpětně)

Marked as spam
Avatar uživatele Odeslal Anonymous
Odpověděl 28.7.2019 7:34

Odešlete svou odpověď

Attach YouTube/Vimeo clip putting the URL in brackets: [https://youtu.be/Zkdf3kaso]