< návrat zpět

MS Excel


Téma: Zápis buněk rss

Zaslal/a 18.3.2017 15:51

Dobrý den,
s VBA v Excelu teprve začínám, tak bych se chtěla zeptat, jak vypočítám směrodatnou odchylku pro buňky např. A2 až A20. Pro tyto konkrétní buňky mám zápis:

Sub SměrodatnáOdchylka_Klepnutí()
Range("P2") = Application.WorksheetFunction.StDev(Sheets(2).Range(Cells(2, 1), Cells(20, 1)))
End Sub

nebo také funguje:
Range("P2") = Application.WorksheetFunction.StDev(Sheets(2).Range("A2","A20"))

Chtěla bych ale, aby se směrodatná odchylka vypočítala pro buňky A2 až A(2+18), kde číslo 18 je uvedeno v buňce B2.

Snad je můj dotaz srozumitelný 1
Děkuji

Zaslat odpověď >

#035627
avatar
Ahoj, např:Range(Cells(2, 1), Cells(2 + Cells(2, 2), 1))
'nebo
Range("A2", "A" & (2 + Range("B2")))
'nebo
Range("A2").Resize(Range("B2") + 1, 1)
citovat
#035628
avatar
Mockrát děkuju! 1citovat
#035927
avatar
To je všechno zbytečně složité:

[P2] = WorksheetFunction.StDev(Sheets(2).[A2].Resize([B2] + 1))

Navíc 2. list má zaručeně nějaké CodeName, nejspíš 'List2' (v anglické verzi Office to bude 'Sheet2'), takže mnohem lepší je

[P2] = WorksheetFunction.StDev(List2.[A2].Resize([B2] + 1))

Normální program pracuje s pojmenovanými buňkami a bloky, aby nemusel být předěláván při změnách v listech (vkládání či rušení řádků či sloupců). Tedy P2 pojmenuj třeba stDv, A2 na listu 2 třeba dat1 a B2 třeba lenD, takže mj. odkaz na list 2 bude zbytečný:

[stDv] = WorksheetFunction.StDev([dat1].Resize([lenD] + 1))

Takhle vypadá korektní kód.citovat
#035928
avatar
Machu a ty nevíš, že "[A1]" je ta nejpomalejší notace?citovat
#036183
avatar
Jasně že to vím, ale je nejstručnější a proto také nejpřehlednější. Navíc zde jde o jednorázový výpočet, není to kalkulace v těle cyklu s velkou diferencí mezí, tak je mi fuk, jestli se to bude počítat 0,5 tisíciny nebo 5 tisícin vteřiny.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje