Asi bych použil ¨Kontingenční tabulku nebo prosté sumif.
Ale bez přílohy těžko radit, když nevidíme, jak přesně data vypadají a co přesně za výstup chete.
Tedy, pokud chcete kokrétní odpověď, vložte přílohu v které bude vstupní tabulka a pžípadně i jak má vypadat výstup.
Zaregistrujte se a vložte přílohu, jak to má vypadat. Jména můžete změnit.
Bez přílohy jen obecná odpověď:
Ano, jde to.
Jedno jméno má jen jedno PSČ?
např.funkce SVYHLEDAT - musí být setříděné
nebo kombinace INDEX, POZVYHLEDAT
více např. zde: https://office.lasakovi.com/excel/funkce/ms-excel-funkce-vyhledavaci/
Zkuste toto:
Když je "ks" nebo "h", tak lze zadat počet. Jinak nejde zadat nic.
Ještě tu přílohu...
A musí to být makrem.
Co třeba použít ověření dat?
Třeba takto přes ověření dat.
@elninoslov: Aha, já jsem přehlédl tu funkci Split. Teď už mi to dává smysl
@elninoslov, proč jsou v textovém poli ty čárky a uvozovky na konci? Stlpy = Split("D,G,H,I,J,K", ",") Nedává mi to smysl
Makro samozřejmě funguje, bude to nejspíš špatným opisem. @Sperhak by měl poslat makro, které mu nefunguje. Bez toho to asi nepůjde odladit.
Bez přílohy (soubor, který vám "nefunguje") těžko radit.
Zkuste:Worksheets("odvádění").ScrollArea = "A:G"
Ještě zvažte, jestli dát k dispozici celý sloupec a nebo omezit i počet řádků. Např A1:G10
Rádo se stalo.
Vytvořit proceduru:
Private Sub TextBox1_Change()
V proceduře pak:
1. zjistím si nejvyšší ID (ve vašem případě 50)
2. pokud je UserForm1.TextBox1.Value větší než nejvyšší ID tak UserForm1.TextBox1.Value = ""
Jinak v tom přiloženém makru máte zřejmě chybu. Nejdřív naplníte proměnnou PoslednyRadek a následně použijete v cyklu proměnnou emptyRow For i = 1 To emptyRow Myslím, že ten cyklus vůbec neproběhne, protože emptyRow je nula (pokud se tedy nejedná o globální proměnnou)
Jsem rád, že to poslouží.
Ovšem perfektní to zdaleka není. Chtělo by to minimálně dynamickou oblast pro ověření dat, aby tam při výběru položky nebylo zbytečně mnoho prázdných řádků.
Kdyby se odstranily ty pomocné sloupce, taky by to bylo fajn, ale to neumím.
Nevím, jestli můj popis pochopíte:
Ve sloupci I jsou unikátní (jedinečné) hodnoty ze sloupce A, které slouží jako seznam pro ověření dat v buňce G3. Vybírám tedy ze seznamu všech výrobců, aniž by se mi opakovali.
Ve sloupci J jsou opět unikátní hodnoty ze sloupce B. Je zde navíc podmínka, že musí patřit do Přístroje, který je vybraný v G3. Takže ve sloupci J jsou všichni vyrobci, kteří vyrábí např. čokoládové tyčinky. Sloupec J slouží jako výběrový seznam pro G4
Ve sloupci K opět unikátní hodnoty ze sloupce C, splňující vybrané podmínky v G3 (Přístroj) a v G4 (Výrobce)
Pozn. Teď se dívám, že to co je v G3 má být vlastně v G2
Vzorce ve sloupcích I,J,K,L jsou MATICOVÉ VZORCE, které zajistí výběr jedinečných (unikátních) hodnot. Tento vzorec v I2 vám nepopíši, já jej beru jako hotovou věc, kterou jednou za čas použiji. V dalších sloupcích je pak už jen přidaná podmínka na již vybraný Přístroj, Výrobce, model apod.
Vzoreček ve sloupci J (vybírám výrobce)
INDEX($B$2:$B$8; oblast B2:B8 určuje, ze kterého sloupce vybírám jedinečné hodnoty
SMALL(KDYŽ(($A$2:$A$8=$G$3)*(COUNTIFA2:A8 = G3 zamená, že ve sloupci B (viz předchozí část vzorce) vybírám ty hodnoty, které mají ve sloupci A hodnotu stejnou jako v G3. Násobení znamená logický součin.
COUNTIF(J$1:J1;$B$2:$B$8)=0);ŘÁDEK($B$2:$B$8)-1);1));"") tato část zajišťuje, vyloučení duplicit, tedy vypsání jen unikátních hodnot
ŘÁDEK($B$2:$B$8)-1) začínám na řádku 2, proto odečtu 1. Kdybych měl oblast B5:B100 odečtu 4 ŘÁDEK($B$5:$B$100)-4)
Vytvořím vzoreček v J2 a ukončím Ctrl+Shift+Enter.
Tento vzorec rozkopíruji do dalších řádků (podle počtu položek). To samé v dalších sloupcích.
No, nevím, jestli jsem tímto popisem pomohl
Ta tabulka F2:G8 může být samozřejmě na jiném listě.
Takže bez KT s pomocnými sloupci
A chcete vycházet z té databáze co máte nebo chcete vytvořit nějakou novou (např. tak jak je v listu "Příklad dat").
A co říkáte na tu kontingenční tabulku? Nebyla by toto cesta?
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.