Použití uživatelských funkce Excelu CV 4.lekce Použití uživatelských funkce Excelu Výpočet průtoku: Thompsonův měrný přeliv Kontrola správnosti: pro H=60cm vychází Q=407,1 l,s-1 𝑄 𝑙. 𝑠 −1 =0,0146∙ 𝐻[𝑐𝑚] 2,5 Využít soubor měřených dat v Excelu
Excel Verze MS Office 2010: Pokud není k dispozici karta Vývojář, zobrazte ji následujícím způsobem: Klikněte na tlačítko Možnosti a potom na kategorii Přizpůsobit pás karet. V oblasti Hlavní karty zaškrtněte políčko Vývojář a klikněte na tlačítko OK. Postup vložení vlastní funkce obsažené v otevřeném souboru (je třeba při otevírání souboru povolit makra: ve žlutém řádku nahoře): Vložit funkci: „Vzorce“ – „Vložit funkci“ – „Vybrat kategorii: vlastní“ – „Vybrat funkci z nabídky“ – pokračovat zadáváním jednotlivých parametrů funkce. Pro většinu případů postačuje zapamatovat si sekvenci <Alt><F11> Doporučuji vyhledat v „Nápovědě k aplikaci Excel“ (F1) následující témata: - "Vývojář" - „Přehled marek a jazyka VBA“ - „Kopírování modulu z jednoho sešitu do jiného“
Vytvoření funkce THOMPSON Buď: <Alt><F11> Insert - Module vytvoří se "Module1" vložit text s funkcí Nebo: vytvořit makro (Zobrazení - Makra - Záznam makra - Zastavit) modifikovat "Sub Makro" na "Function" Function THOMPSON(H) ' Komentář: H zadat v [cm] ' Q bude v [l/s] THOMPSON = 0.0146 * H ^ 2.5 End Function
Vytvoření funkce INTERPOLACE Do "Module1" vložit text s funkcí lineární interpolace: Function INTERPOLACE(XA, YA, XB, YB, X) ' Komentář: Vstupní tabulka má sloupce X, Y ' a řádky A, B. ' Pro hodnotu X nalezneme Y. INTERPOLACE = YA - (X - XA) * (YA - YB) / (XB - XA) End Function
Stanovení úhrnu/indexu předchozích srážek (např Stanovení úhrnu/indexu předchozích srážek (např. pro předchozích 30 dní) 𝑈𝑃𝑆 30 = 1 30 𝑆 𝑡 ∙ 𝑘 𝑡 kde: t ... čas [dny] k ... 0,93 (tzv. ET konstanta) ST ... srážkový úhrn v t-dni Doporučené makro pro Excel (zkopírovat do Modulu1 VBA Projektu): Function UPS(SRAZKY, i) k = 0.93 n = SRAZKY.Count If n <> i Then UPS = "Neodpovídá počet řádků": GoTo konec: 'Chybové hlášení, pokud nebylo vybráno i-řádků srážek UPS = 0 For j = n To 1 Step -1 UPS = UPS + SRAZKY(j) * k ^ (30 - j) Next j konec: End Function
Zpracování modelových dat UPS 30
Vytvoření vlastní funkce Do "Module1" vložit zápis funkce: Function KULHAVY(AAA, a, b, c) z1 = AAA(1) * b ^ a z2 = AAA(2) / c z3 = AAA(3) - b * c / 2 KULHAVY = z1 + z2 - z3 End Function
Úkol Vypočítat pomocí vlastní vytvořené funkce s názvem např. THOMPSON průměrný denní průtok v [l/s] z měřených výšek na přelivu (tj. 365 hodnot v listu "Funkce") Upravit funkci tak, aby počítala s H[mm] Vytvořit uživatelskou funkci, nazvanou svým příjmením a počítající průměrný srážkový úhrn z domácího cvičení č.1 (tj. Thiessenovy polygony). Poslat jako soubor Excelu s výsledky a fungující funkcí (např. s využitím proměnné typu "pole/matice").