< návrat zpět

MS Excel


Téma: Průměry dnů v týdnu rss

Zaslal/a 19.2.2013 12:56

Ahoj potřeboval bych od Vás zase jednou pomocnou ruku.
Bohužel stále nemohu z práce přikládat přílohu.
Naštěstí je tabulka a zadání velice jednoduché, v případně zájmu soubor mohu poslat mailem.

_____________________
Popis tabulky:
List1:
ve sloupci A mám produkty (A3:Axx)
řádek1: dny v týdnu => B1 - Po, C1 - Út ... H1 - Ne (vím, že 1.1. není pondělí, ale to je jen pro představu :-)
řádek2: datum (1.1. - 31.12.)

tabulka uvnitř se každý den plní údaji produkce (na konkrétních číslech nezáleží)

List2:
sloupec A stejné produkty jako v listu 1
záhlaví pondělí - neděle
______________________

Výsledek?
Naplnit tabulku na Listu2.
Naplnit ji u každého produktu k příslušnému dni v týdnu průměrem všech hodnot daných dnů v týdnu (Průměr všech pondělí, úterý...)
(tzn.: Produkt 1 má průměr XY za všechna pondělí - zapsat do výsledné tabulky.
Produkt 1 má průměr YZ za všechna úterý - zapsat do výsledné tabulky...
...
Produkt X má průměr QQ za všechny neděle - zapsat do výsledné tabulky.

Funkční makro jsem si na to vytvořil, bohužel když je v tabulce hodně dat (hodně dnů na porovnávání), tak mi nedoběhne do konce a vyhodí chybu.
S menším množstvím dat funguje dobře.
To, že je napsaný určitě velice barbarsky nepopírám a sem si jistej, že existuje lepší (a plně funkční) řešení. :-)

Kdybyste měli někdo chvilku tak bych Vám byl velice zavázán.

Díky
Skoky

Zaslat odpověď >

icon #011738
eLCHa
Nevím. Četl jsem to dvakrát a vždy jsem skončil v půlce s tím, že vytvoření tabulky a vložení jako přílohu by bylo asi rychlejší, než ji popisovat a doufat, že všichni mají stejnou představivost, jako já...citovat
#011739
avatar
Hmm ok asi máš pravdu, tak až budu doma tak přiložím (jak sem psal, z práce nemám práva:-(citovat
#011740
avatar
Něco jsem se pokusil vytvořit, jestli to bude vyhovovat, dodělal bych to do Tvojí tabulky.
Příloha: zip11740_pokus.zip (17kB, staženo 23x)
citovat
#011747
Opičák
Takhle jsem to pochopil já, i když mi to trvalo. Asi to samé jako ji02.., ale pouze vzorcem.
Příloha: zip11747_pokus-2.zip (21kB, staženo 23x)
citovat
#011748
Opičák
a nebo tak 4
Příloha: zip11748_pokus_22.zip (24kB, staženo 23x)
citovat
#011753
avatar
To ji026441: Přesně takhle sem to myslel dík, ale narazil jsem na stejný problém jako předtím u sebe. Dej si do jakéhokoliv pondělí do nějakého produktu číslo 55555 a poté už to to makro neskousne a vyhodí chybu.

Nakonec sem to teda trochu předělal a funguje to dobře i na větší počet dat, jen by mě stále zajímalo, kde je rozdíl, že to moje funguje.

Sub pokus()
Dim Polozka As String
Dim PoPocet, PoSoucet, PoslSloupec, PoslRadek As Integer
Dim ws1, sw2 As Worksheet

Set ws1 = Worksheets("List1")
Set ws2 = Worksheets("List2")
'----------pondělí-----------------
PoPocet = 0
PoSoucet = 0

With ws1
PoslSloupec = .Cells(3, .Columns.Count).End(xlToLeft).Column
PoslRadek = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

For i = 3 To PoslRadek 'počet produktů (řádků)

Polozka = ws1.Cells(i, 1).Value 'název produktu
For j = 2 To PoslSloupec ' počet sloupců
If ws1.Cells(1, j) = "po" Then
PoPocet = PoPocet + 1
PoSoucet = PoSoucet + ws1.Cells(i, j).Value
End If
Next j

For a = 3 To PoslRadek 'počet produktů
If ws2.Cells(a, 1) = Polozka Then
ws2.Cells(a, 2) = PoSoucet / PoPocet
End If
Next a
PoPocet = 0
PoSoucet = 0
Next i

End Sub


To Opičák:
Také děkuji za pomoc. Sice sem zatim neměl moc času se podívat jak si to konkrétně dělal ty, rád se ale pak přiučím něco nového :-)citovat
#011755
avatar
Chyba je v deklaraci PoSoucet. Nesmí být integer, ale long.citovat
#011756
Stalker
Chyba je v deklaraci proměnných integer vs 55555 viz.
http://wall.cz/excel-navod/deklarace-promennych-a-prehled-datovych-typu-vbacitovat
#011757
avatar
Alebo takýmto maticovým vzorcom
=SUM(List1!$B3:$O3*((List1!$B$1:$O$1)=List2!B$2))/MAX(1;SUM((List1!$B1:$O1=List2!B$2)*1))
Příloha: zip11757_kopia-pokus.zip (12kB, staženo 23x)
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