Početní kartičky s puntíky

Početní kartičky s puntíky? To jako vážně? V Excelu? Ano! V rámci školních úloh z Excelu pro učitele jsem vymýšlel nejrůznější zábavné úlohy s praktickým využitím. Jednu z nich dnes předkládám. Opravdu se jedná o kartičky, na které si jistě pamatujete i vy z prvního stupně základní školy. A proč je zmiňuji v souvislosti s Excelem? Není problém je vytvářet ručně, ale dokážete generovat počet puntíků na kartičce pro zadaný počet?

Kartička s puntíky
Kartička s puntíky

Jak to celé funguje?
Číslo udávající počet puntíků (zvolil jsem počítání do 30, na princip nemá vliv) je zobrazeno vpravo dole, ve sloučené buňce Q14. Jedná se tedy o rychlou kontrolu počtu, aniž by číslo zbytečně dráždilo na první pohled (můžeme je zakrýt prstem). Zcela jej lze schovat formátem ;;; (tři středníky). Zobrazení toho či onoho puntíku není triviální záležitost. Puntíky jsou rozděleny jak známo do skupin po pěti (nemají jako domino nebo hrací kostky „šestku“, natož „sedmičku“, s jakou se ve filmu pochlubil Indiana Jones). Jestliže celkový počet je větší než počet puntíků od počátku do posledního puntíku ve skupině, pak je puntík zobrazen vždy. Pokud celkový počet končí někde uvnitř dané skupiny, pak musíme řešit puntík po puntíku v dané skupině. Neuvažujeme přitom nějaké pořadí ve skupině, nýbrž jeho účast v grafické podobě čísla 1-5. Například první puntík skupiny se objevuje pouze ve čtyřce a pětce (trojka má puntíky na hlavní diagonále).

Obrázek níže ukazuje buňky, ve kterých si pomáháme ručně vloženým číslem skupiny (1-6, tj. 6 bloků po 5 puntících). Hodnoty jsou skryty zmíněným formátem třech středníků.

Kartička s puntíky - skryté číslo skupiny v označených buňkách
Kartička s puntíky – skryté číslo skupiny v označených buňkách

Vzorečky pro první pětici (základní blok pro kopírování):

C3: {=KDYŽ(ROUNDUP($Q$14/5;0)>C2;"l";KDYŽ(ROUNDUP($Q$14/5;0)=C2;KDYŽ(NE(JE.NEDEF(POZVYHLEDAT(MOD($Q$14;5);{0;4;5};0)));"l";"");""))}
G3: {=KDYŽ(ROUNDUP($Q$14/5;0)>C2;"l";KDYŽ(ROUNDUP($Q$14/5;0)=C2;KDYŽ(NE(JE.NEDEF(POZVYHLEDAT(MOD($Q$14;5);{0;2;3;4;5};0)));"l";"");""))}
E4: {=KDYŽ(ROUNDUP($Q$14/5;0)>C2;"l";KDYŽ(ROUNDUP($Q$14/5;0)=C2;KDYŽ(NE(JE.NEDEF(POZVYHLEDAT(MOD($Q$14;5);{0;1;3;5};0)));"l";"");""))}
C5: {=KDYŽ(ROUNDUP($Q$14/5;0)>C2;"l";KDYŽ(ROUNDUP($Q$14/5;0)=C2;KDYŽ(NE(JE.NEDEF(POZVYHLEDAT(MOD($Q$14;5);{0;2;3;4;5};0)));"l";"");""))}
G5: {=KDYŽ(ROUNDUP($Q$14/5;0)>C2;"l";KDYŽ(ROUNDUP($Q$14/5;0)=C2;KDYŽ(NE(JE.NEDEF(POZVYHLEDAT(MOD($Q$14;5);{0;4;5};0)));"l";"");""))}

Funkce ROUNDUP za nás řeší rozložení počtu puntíků do tříd (skupin), POZVYHLEDAT společně s MOD potom náležitost puntíku do grafického ztvárnění čísla. Jelikož jeden puntík vyhovuje více číslům, potřebujeme zohlednit všechny způsoby. Namísto externí tabulky je zde užita matice hodnot a tomu odpovídající maticový vzorec. Navíc musíme v matici hodnot zahrnout nulu.

V příkladu není nijak řešena velikost kartiček ani její rozkopírování na arch A4. S tím už si ale jistě poradíte.

Kartička s puntíky - plné zobrazení 30 puntíků
Kartička s puntíky – plné zobrazení 30 puntíků

Příloha
karticky_puntiky.zip