Vytvoření makra v Excelu
Ahoj,
snažím se tu sepsat makro pro Excel 2010, ovšem syntaxe VBA mě poněkud vytáčí a pro tento konkrétní případ mi můj oblíbený postup "nahraj a uprav" neposlouží. Najde se dobrá duše, která pomůže? Jedná se pouze o výřez z komplexnějšího úkolu - zbytek bych pak už zvládnul sám, když uvidím, jak na to. Funkcí jsem nepřišel, jak to udělat.
O co mi jde (přiložený vzorový XLSX):
Na listu "Summary" je mnoho sloupečků, vždy se jedná o datum inkrementálně navýšené o jednu minutu (řádek 3).
Cílem je:
1. Přečíst si datum a čas v buňce A3 na listu "Summary"
2. Přepnout na list "Intervals"
3. Pro všechny řádky od čtvrtého níže se podívat, jestli je hodnota přečtená v bodu 1 (list Summary) součástí intervalu specifikovaného sloupečky B a C. Pokud ano, přičte se na listu Summary k číslu v buňce A4 (tedy pro ono datum) jednička za každý splněný řádek. Toto se zopakuje pro všechny Items na listu "Items". Detekce konce listu Items nechť se provede detekcí prázdné buňky v libovolném sloupečku.
To celé se pak opakuje, pouze si v bodu 1 nahraďte A3 za B3 atd. Zopakuje se to celé tolikrát, kolik sloupečků na listu "Summary" je - k detekci posledního sloupečku nechť se použije prázdná hodnota sloupečku následujícího.
Data jsou očištěna a připravena, nemělo by být nutné ošetřovat kolizní stavy a errory. Nicméně řádků a sloupců bude opravdu mnoho. Možná až ke čtvrt milionu - snad to proměnné rozdýchají.
Ještě to tu zkouším zpracovat kontingenční tabulkou, ale zatím bez úspěchu.
Děkuji!
Na toto vôbec nepotrebuješ makro - budú stačiť obyčajné vzorce. V každom prípade si ale najprv uprav výpočet časov v treťom riadku, pretože so súčasným vzorcom sa v každom ďalšom stĺpci zvyšuje chyba zo zaokrúhľovania - namiesto vzorca "=A3+$A$1" použi "=$A3+$A$1*COLUMN(A:A)".
Vzorec pre spočítanie časových intervalov, do ktorých patrí čas v bunke A3 by potom mohol pre Excel 2007 a novší vyzerať napríklad takto:
Ak to potrebuješ aj pre staršie verzie Excelu, tak takýto vzorec sa dá tiež napísať pomocou funkcie SUMPRODUCT (česky SOUČIN.SKALÁRNÍ), prípadne ako maticový vzorec.