Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  139 140 141 142 143 144 145 146 147   další » ... 302

Ak nemáte nový Office 365 s novou funkciou MINIFS a MAXIFS tak použite tú KT. ak to chcete vzorcom a bez matice, tak potom asi jedine tú maticu schovať do Definovaného názvu:
DEFMIN
=MIN(IF(TabData[sloučit]=data!$G2;TabData[Cena]))
=MIN(KDYŽ(TabData[sloučit]=data!$G2;TabData[Cena]))

DEFMAX
=MAX(IF(TabData[sloučit]=data!$G2;TabData[Cena]))
=MAX(KDYŽ(TabData[sloučit]=data!$G2;TabData[Cena]))

a v tabuľke použiť už nematicový vzorec
=DEFMIN
=DEFMAX

Alebo z tej KT cez GETPIVOTDATA načítajte výsledky do tej Vašej Tabuľky.
Všetko v prílohe.

Ak sa pozriete do prílohy, zistíte, že je to maticový vzorec (info doplním aj hore), a že je tam aj KT na ukážku.

Myslíte totok (maticový vzorec zadávame pomocou Ctrl+Shift+Enter) ?
=MIN(IF([sloučit]=[@sloučit];[Cena]))
=MIN(KDYŽ([sloučit]=[@sloučit];[Cena]))

=MAX(IF([sloučit]=[@sloučit];[Cena]))
=MAX(KDYŽ([sloučit]=[@sloučit];[Cena]))

alebo nejakú KT?

No pár chýb ste narobil, ale aj tak obdivujem, že ste sa vôbec pustil do dekódovania hrozne zložitých vzorcov.
Napr. Zmenil ste písmenko v CELKEM_INDEXY_VAD na CELKEM_INEXY_VAD, Boli tam použité v podmienkach ODDELENIE vs LIST, a ešte niečo čo som zabudol čo to bolo, to som odstránil ako prvé. Teraz sa zdá, že to funguje.

Skúste, či je to vončo...

Ale on nechce celý riadok, ale len oblasť. Na ohraničenú oblasť funguje takéto niečo:
Public Function PoslednaBunka(Oblast As Range) As Range
Dim Bunka As Range

Set Oblast = Oblast.Areas(1).Rows(1)
Set Bunka = Oblast.Cells(Oblast.Cells.Count)

If Not IsEmpty(Bunka) Then
Set PoslednaBunka = Bunka
Else
Set PoslednaBunka = Oblast.Find(What:="*", After:=Bunka, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
End If
End Function

Vyberie si prvú Area (podoblasť v prípade multivýberu) a jej prvý riadok. A tam zistí poslednú vyplnenú bunku. Ak nieje žiadna vyplnená tak Nothing. Myslím, že na toto ste sa pýtal.

Lebo to nieje obyčajná medzera (kód 32), ale tzv "pevná medzera" (kód 160).
Ako oddeľovač dajte položku "Iné" a v políčku podržte Alt+0160.

To je ale normálna vlastnosť, že nejdú použiť všetky funkcie priamo v Overení dát. Prečo Vám nevyhovuje Definovaný názov ?
Inak priložte radšej nejakú prílohu s príkladom.

"For Each" je väčšinou zaužívaná pre použitie s objektami (napr. bunkami), "For i" väčšinou s poľami. Tu som použil pole, lebo načítanie poľa o veľkosti tisícov buniek trvá okamžik, kdežto prechádzanie tisícov buniek po jednej trvá dlho. V tomto prípade sa dá tiež "For Each" použiť na pole, ale musí sa definovať ďalšia Variantná premenná na položku poľa, a v cykle použiť napr. i = i + 1, aby sme mali čítač pre indexáciu buniek, lebo keby sme po jednej bunke aj mazali, tak to je pri veľa bunkách ešte pomalšie. Takže to i by sme použili na "nahromadenie" buniek v RNG oblasti a následné zmazanie naraz. Toľko na vysvetlenie dôvodov, čo ma viedli k uvedenému príkladu :)

Ak je to len 10 riadkov, tak je to šumák, ale ak by tých riadkov bolo veľa, tak bude táto metóda pomalá. V tom prípade by som použil takéto niečo (použite buď to InStr alebo Like):
Private Sub CommandButton15_Click()
Dim RNG As Range, D(), Radku As Long, i As Long

Radku = Cells(Rows.Count, 1).End(xlUp).Row
If Radku = 1 Then
ReDim D(1 To 1, 1 To 1): D(1, 1) = Cells(1, 1).Value
Else
D = Cells(1, 1).Resize(Radku).Value
End If

For i = 1 To Radku
If InStr(1, D(i, 1), "^") = 0 Then
'If Not D(i, 1) Like "*^*" Then
If RNG Is Nothing Then Set RNG = Cells(i, 1) Else Set RNG = Union(RNG, Cells(i, 1))
End If
Next i

If Not RNG Is Nothing Then RNG.ClearContents
End Sub

Dá sa to samozrejme rozšíriť aj tak, že validné riadky zapíše pod seba bez medzier vzniknutých po mazaní nevalidných.

To je len 1 riadok s premennou.

???

Skúste takéto niečo na rýchlo. Dvojklik na dátum v riadku 7, 26, 45 importne súbor s daným dátumom ak existuje v adresári s týmto súborom.

Možno by to šlo aj tak, že by sa pre každú položku z desiatich počítal vo vedľajšom skrytom liste samostatný zoznam, na základe predošlých položiek. Boli by to ale veľmi komplikované vzorce (už som sem kedysi dával obdobný podmienený meniaci sa zoznam na položky, ktoré sa mohli vyskytnúť len raz). Ale hláška by nevyskakovala, len by to nedovolilo vybrať takú položku, a predtým zadané nevalidné by podfarbilo.

Skôr by som to ale riešil asi makrom. Tam može aj vyskakovať hláška. Ak teda makro môže byť. Môže?

Nepochopil som ako sa majú tie ceny kopírovať, či cez seba, či pod seba, alebo ako. Každopádne tu máte 2 spôsoby. Pozor si dajte na také kiksy, ako že List1 sa volá na ušku "List2" a opačne List2 sa volá na ušku "List1". To potom v makre mätie (opravil som to, aj nahodil logickejšie pomenovanie prvkov).

Tých komplikácií a vecí ktoré treba ošéfovať je podstatne viac. Mrknite na toto.

Odporúčal by som Vám ale asi obetovať 99 Kč na fakturačný formulár čo je ponúkaný rovno tu na fóre.


Strana:  1 ... « předchozí  139 140 141 142 143 144 145 146 147   další » ... 302

Uživatelské menu

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

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