< návrat zpět

MS Excel


Téma: SUMIFX - Úprava rss

Zaslal/a 13.1.2020 22:40

Merlin99Zdravím všechny,
kdysi pro mě elninoslov vytvořil tuto skvělou funkci SUMIFX která vysčítává dané oblasti, nicméně by se často hodilo kdyby byla trošičku upravená a uměla více: pracovat co se týče krytérií i s textem + K dokonalosti by jí pak chybělo jen aby šlo zadat více vertikálních polí s krytériem. Co se týče horizontálních polí a krytérii to stačí jedno a bylo by to vždy to poslední. Dokázal by někdo? 8 9

Public Function SUMIFX(OblastDat As Range, OblastH As Range, Horizontal As Single, OblastV As Range, Vertical As Single)

Dim Hodnota As Single, HOblastDat(), HOblastH(), HOblastV(), x As Integer, y As Long, ub As Integer

Application.Volatile

HOblastDat = OblastDat: HOblastH = OblastH: HOblastV = OblastV

ub = UBound(HOblastH, 2)

For y = 1 To UBound(HOblastV, 1)

For x = 1 To ub

If HOblastH(1, x) = Horizontal And HOblastV(y, 1) = Vertical Then Hodnota = Hodnota + HOblastDat(y, x)

Next x

Next y

SUMIFX = Hodnota

End Function

Zaslat odpověď >

#045586
elninoslov
Nemáte náhodou aj pôvodný súbor s použitím? Dnes sa mi už nechce vymýšľať data ...citovat
#045589
Merlin99
omlouvám se za přílohu a přidávám. DÍKY
Příloha: rar45589_sumifx.rar (14kB, staženo 18x)
citovat
#045590
avatar
Ospravedlnujem sa za zlu otazku ale ako sa vola typ tohto kodu alebo jazyka lebo velmi rad by v nom vedel upravovať a v tomto kode nvm vobec uoravovat udajecitovat
#045593
elninoslov
martin-l : Volá sa to VBA (Visual Basic for Application) - v Office aplikáciách je užívateľsky zaužívané pomenovanie "makro". V makre nemôžete len tak "meniť údaje", ak neviete čo to spôsobí. Použitie makra nejde vrátiť naspäť - vtedy nefunguje Undo.

Merlin99 : Tie kritériá majú byť typu AND alebo OR? Teda zráta sa hodnota iba ak sú splnené všetky vertikálne kritériá v danom riadku (aj A aj 22), alebo stačí iba niektoré z nich (napr. iba A a 22 nie)? Lebo medzi vertikálnym a horizontálnym kritériom je AND, to je jasné.

Inak premýšľam to spraviť vzorcom s pomocou fnc MMULT namiesto makra. Mrknem na to asi až pozajtra. Zajtra som celý deň preč a teraz už idem prdieť do paplónu :)

EDIT 6:48: Ešte ma napadlo, ak je viac stĺpcov vertikálnych podmienok, tak či už v AND alebo OR, majú sa kontrolovať hľadané kritériá vo všetkých stĺpcoch ? Teda A sa kontroluje v danom riadku aj pre B6:B10 ale aj pre D6:D10? Alebo sa toto práve nesmie robiť?citovat
#045596
elninoslov
Tu máte rýchlo ten vzorec na AND, na OR sa to dá odvodiť, no a makro, tak to netuším kedy stihnem...
Příloha: xlsx45596_sumifx.xlsx (13kB, staženo 18x)
citovat
#045611
elninoslov
Tu máte teda aj to makro. Je trochu robustnejšie. Snáď som sa v tom moc nezamotal. Takže aj maticový vzorec aj makro môžu mať rôzny počet horizontálnych aj vertikálnych kritérií, len je treba dodržať rozmery oblastí. Veď ono je to aj farebne aj logicky jasné, že pre prípad AND, to nemôže byť inak. Prípad OR by sa robil inak.

Treba to ale otestovať...

No ja by som aj tak asi použil ten vzorec.
Příloha: zip45611_sumifx.zip (20kB, staženo 20x)
citovat
#045619
Merlin99
elninoslov: DÍKY moc koukam ze ses dotoho pustil opravdu poctive. Vypada to suprove v tydnu jeste poradne otestuju a dam vedet,
zatim moooc děkuji super uprava!! 9 9 5citovat

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