< návrat zpět

MS Excel


Téma: Filtrování ve více souborech a zápis rss

Zaslal/a 10.3.2016 12:04

Dobrý den, Potřeboval bych pomoci s řešením filtrování ve vice souborech. Všechny jsou uloženy ve stejném adresáři.
"Projekt servis" bude po stisknutí "Filtruj"hledat v souborech Obchod CZ a Obchod PL řádky, které odpovídají vyhledávacímu stringu v "Projekt Servis\Datový list C2 a D2.
Po nalazení se z řádku zkopíruje Hodnota buňky A a C a zapíš se do Projekt servis B a C.
Po doplnění všech údajů a stisknutí tlačítka "Exportuj" se uloží jako nový list v "Projekt Servis podle jména Datový list C2 a D2 bez obou tlačítek (jen zapsané hodnoty)

Budu rád za jakoukoliv pomoc 6

Příloha: zip30696_filtr.zip (27kB, staženo 36x)
Zaslat odpověď >

Strana:  1 2   další »
#030751
elninoslov
Doinštalujte si doplnok PowerQuery. Je to pre Office 2010 a vyššie - zadarmo, priamo od Microsoftu.

A vyskúšajte, čo som Vám urobil. Všetky tabuľky sú zmenené na Tabuľky, aby ich PowerQuery videl. Ešte povedzte koľko to bude súborov, alebo či sa budú meniť názvy a počet súborov. Ak sa bude meniť počet a názvy súborov, tak neviem, či to PQ dokáže. Potom asi SQL dotaz vytvárať makrom. Posledná možnosť je neustále otváranie súborov a kopírovanie, čo sa mi nezdá príliš vhodné.

Možno sú aj iné možnosti...
Příloha: zip30751_filtr.zip (165kB, staženo 34x)
citovat
#030755
avatar
elninoslov: Dokaze, je vsak potreba nacitat nikoliv ze souboru, ale z adresare (from file - from folder). Pocet a nazvy nehraji roli, staci nacist adresar (a pripadne specifikovat, ktere soubory se maji nacist, napr vsechny xlsx a txt a ostatni ignorovat).citovat
#030756
elninoslov
S PQ sa len zoznamujem, a popravde som počítal s Vami, že by ste mohli zasiahnuť, keby som bol úplne mimo 5
Určite neskôr tú voľbu vyskúšam, videl som to tam...citovat
#030757
avatar
Kod by mohl vypadat nejak takto:


let
SourceParam = Excel.CurrentWorkbook(){[Name="tblParam"]}[Content],
Mesic = SourceParam{0}[Hodnota],
Rok = SourceParam{1}[Hodnota],


Source = Folder.Files("Z:\filtr\"),
#"Added Custom" = Table.AddColumn(Source, "Custom", each Excel.Workbook([Content])),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Other Columns", "Custom", {"Data", "Kind"}, {"Custom.Data", "Custom.Kind"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded Custom", each ([Custom.Kind] = "Sheet")),
#"Expanded Custom.Data" = Table.ExpandTableColumn(#"Filtered Rows", "Custom.Data", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6"}, {"Custom.Data.Column1", "Custom.Data.Column2", "Custom.Data.Column3", "Custom.Data.Column4", "Custom.Data.Column5", "Custom.Data.Column6"}),
#"Promoted Headers" = Table.PromoteHeaders(#"Expanded Custom.Data"),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Promoted Headers", {{"bla bla", type text}, {"Vyfakturováno", type text}}, "cs-CZ"),{"bla bla", "Vyfakturováno"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
#"Renamed Columns" = Table.RenameColumns(#"Merged Columns",{{"Merged", "Vyfakturováno"}}),
#"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Vyfakturováno", type date}}),
#"Removed Errors" = Table.RemoveRowsWithErrors(#"Changed Type", {"Vyfakturováno"}),
#"Filtered Rows1" = Table.SelectRows(#"Removed Errors", each Date.Year([Vyfakturováno]) = Rok and Date.Month([Vyfakturováno]) = Mesic),
#"Added Index" = Table.AddIndexColumn(#"Filtered Rows1", "Index", 1, 1),
#"Removed Other Columns1" = Table.SelectColumns(#"Added Index",{"Index", "Číslo", "Název"})
in
#"Removed Other Columns1"

citovat
#030763
avatar
Děkuji moc za pokus a informaci, bohužel nám IT nedovolí istalovat MS Query. Takže pokud to bude možné pouze pomocí VBA kódu, bude to nejlepší.citovat
#030765
elninoslov
Nejedná sa o MS Query (ten je súčasťou inštalácie Office) ale o o nadstavbu PowerQuery. Ale to je asi jedno. Budiš. Pozriem sa Vám neskôr na to, ale musíte už konečne odpovedať na otázky.

1. Počet súborov ?
2. Tento počet je premenlivý ?
3. Adresár sa bude vždy nachádzať na rovnakom mieste ?
4. Obsahuje aj podadresáre so súbormi ?
5. Počet listov v súboroch musí byť premenlivý ?
6. Názvy listov v súboroch sú premenlivé ?
7. Majú sa vždy zahrnúť údaje zo všetkých listov v súbore ?
8. Môžu sa previesť všetky dotknuté tabuľky vo všetkých súboroch na Tabuľky ?
9. Budú mať súbory rovnaký počet stĺpcov s tabuľkách/Tabuľkách ? Teraz totiž nemajú.
10. Čo je to za nezmyselné súčty v D4:F4 a H4:I4 ? Čo majú počítať ?

Odpovedajte prosím na všetko podľa čísel + akékoľvek ďalšie informácie.citovat
#030798
avatar
to : elninoslov
1. Soubory, ze kteých se mají číst data jsou dva, v tom druhém to bude ze dvou listů.
2. Ne, tento počet bude stejný
3. Adresář bude vždy na stejném místě
4. V prvním souboru je pouze jeden list, v tom druhém dva, maximálně 3
5. Názvy listů jsou stejné a budou stejné
6. Podle zadaného filtru,tzn měsíc fakturace se vyčtou data ze všech listů, které odpovídají fakturačnímu měsíci. Tzn. že pokud si zadám fakturaci za 03.2016 tak z těchto dvou souborů a třech listů se mi vyčtou data z buněk A a C a zkopírují se do "Projekt servis pod sebe do B a C
7. Pouze text ? (nevím přesně co myslíte)
8. Pouze textové hodnoty
9. sloupce už zůstanou tak jak jsou, měnit už se nebudou
10. Těch počtů si nevšímejte, to jsem jen experimentoval :-)

nemám radši zavolat a vysvětlit po telefonu ?
Asi by to bylo nejrychlejší...... :-)citovat
#030803
elninoslov
To nieje potrebné, dokonca je to nežiadúce (ešte viac mätúce, pretože by som si odslova-doslova nezapamätal čo ste povedal). Niektoré veci sú PODSTATNÉ z hľadiska akéhokoľvek riešenia (SQL, makro), preto by neškodilo čítať pozornejšie, a nepomýliť si napr čísla otázok :)
Sumár info:
- budeme mať 2 súbory s nemeniacim názvom, nemeniacim umiestnením, to na začiatku nastavíme napr na rovnaký adresár, kde sa nachádza filtračný súbor.

A to je asi všetko čo som sa dozvedel. Napr. 4. som sa pýtal niečo iné, ale to je jedno, lebo vzhľadom na 3. je to irelevantné. Ono totiž otázky často súvisia s predošlým druhom odpovede.
Vaša 1. a 4. (moja 1. a 5.) si odporujú v počte listov.
Vaša 5. - určite ? PL súbor má "normálne" pomenované listy, ale CZ má "List1".
Vaša 6. (moja 7.) sa pýtam, či sa v zošitoch budú vyskytovať aj iné listy, na ktoré sa ale nebude brať ohľad, pri zlučovaní dát (nefiltrovaných) do tabuľky, v ktorej sa až následne bude filtrovať. Teda napr. List "Nápoveda", "Šablóna", ... ale čo ja viem čo. Proste či bude obsahovať iba a len výhradne zdrojové-dátové listy. Toto bude ale zrejme rovnako irelevantné vzhľadom na predošlú odpoveď.
Vaša 7. (moja 8.) - tým mám na mysli objekt Tabuľka (nie obyčajná tabuľka). Ten sa totiž ľahšie adresuje celý bez nutnosti zisťovania počtu zaplnených riadkov. Ale len v niektorých prípadoch. V iných prípadoch (napr. pri zatvorenom súbore) toto adresovanie nefunguje. Preto táto otázka.
9. (konečne zhoda v číslovaní) - viete o tom, že v CZ máte o 2 stĺpce "bla bla" a bla bla2" uprostred tabuľky navyše oproti PL? Nemajú byť náhodou v týchto stĺpcoch napr hodnoty, ktoré potom budete chcieť z tých vyfiltrovaných dát spočítať do tých "divných súčtov" v Projekt Servis ? Ak áno treba to povedať teraz, a doplniť ich aj do PL, a aj s nimi ďalej počítať.

Nie je problém, ľudia Vám tu pomôžu, ale musíte byť aspoň pri tom čítaní pozornejší. Pozrite sa, čo som už musel ja napísať, len aby som Vám povedal, že ste mi neodpovedal správne.

Informácie hýbu svetom. Ale aj riešeniami. Obzvlášť ak to riešenie požadujem. ;)

PS: Chýba mi tu mrkajúci smajlo.

EDIT 17.3. 11:03:
Mám pre Vás 2 riešenia, jedno SQL, druhé makrom. Nestihol som to ráno, uvidím, kedy prídem, dokončím to a pošlem.citovat
#030825
elninoslov
2 - SQL
3 - makro
Příloha: zip30825_filtr.zip (180kB, staženo 35x)
citovat
#031030
avatar
To : Elninoslov

Díky za pokus avšak asi došlo z mé strany k ne úplně přesnému vysvětlení.Takže :
Soubor "Projek Servis bude po stisknutí tlačítka "filtruj" hledat v souborech Obchod CZ a obchod PL podle odpovídajícího filtrovacího stringu tj.měsíc fakturace.V případě shody se z obchod CZ vybere řádek shody sloupce A a C a v obchod PL jsou dva listy, kde se provede to same, a tyto řádky se propíšou pod sebe do souboru "Projekt servis.

Po stisknutí exportuj se teprve uloží jako nový list s nazvem filtrovacího stringu a vymažou tlačítka.

Je to OK ?citovat

Strana:  1 2   další »

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