Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 287

Áno to PDF je tam naschvál, kvôli testovaniu funkčnosti filtrov 1

Podľa mňa si to poradí so všetkým. Problém môže nastať asi iba v tom poslednom kroku - zmena formátov stĺpcov. Lebo iba tam sa používa názov stĺpcov.

To ale nie je medzera. To je tabulátor. Neskôr to skúsim zakomponovať ...

Sakra tie preklady. Aj keď to je zvláštne, lebo to True/False tam je vo výberovom zozname skutočne ako True/False a nie ako "True"/"False". Teda by to mal brať natívne ako logickú hodnotu. Rovnako ako keď ja zapíšem SUM a Vy si to otvoríte a máte tam SUMA.
Každopádne ak s tým má PQ problém, tak použite radšej text "ANO"/"NE". Aby nebol problém zase opačne s Pravda/Nepravda v inej jazykovej mutácii.

Update PQ? Bude asi záležať na verzii Office. Pre staršie je tu video, pre novšie asi iba súčasť aktualizácie balíčku Office (Súbor - Konto - Možnosti aktualizácie - Aktualizovať)

InteliSense je síce zabugovaný jak sviňa, ale v tomto prípade to nemôže fungovať nijako. Vy tam potrebujete názvy stĺpcov písať ako text v úvodzovkách, a IS nemôže nijako vedieť, čo chcete napísať ako text do úvodzoviek. Rovnako napr. INDIRECT/NEPŘÍMÝ.ODKAZ, aj keď máte pomenovanú oblasť, tak keď ju píšete ako text v úvodzovkách, tak o tom IS netuší a neponúka ako v normálnom vzorci.

Budete to musieť asi iba takto doplniť:
= Table.TransformColumns(#"Změněný typ",{{"czk", each _ * rate, type number},{"czk2", each _ * rate, type number}})

Uvidíme, čo na to lubo.

Urobil som malú zmenu v príponách, ale funkčnosť ostáva nezmenená. Načíta to súbory CSV, TXT, XLS, XLSX, XLSM, XLSB.

Na každý súbor v adresári "Data" sa pozerá samostatne v poradí:

-Je to CSV alebo TXT ? Zisti, či je oddeľovač ";" alebo " ". Ak ÁNO, tak volaj fncCsvTxt([Content]) a rozdeľ.
-Ak NIE, tak je to XLS alebo XLSB ? Ak ÁNO tak volaj fncXls([Content]), ktorá nájde prvý neprázdny list.
-Ak NIE, tak potom to už musí byť verzia súboru, ktorá môže obsahovať Tabuľky, to predpokladáme a preto najskôr voláme fncXlsxT([Content]), ktorá kontroluje výskyt položky Table. Ak v súbore nejaká Tabuľka je, tak ju načíta.
-Inak zavolá fncXlsx([Content]), ktorá postupuje obdobne s prvým neprázdnym listom, ako v prípade súboru XLS/XLSB funkcia fncXls([Content])

Nemusíte použiť vždy všetky 4 fnc. V tomto konkrétnom prípade, ale musíte, keďže sme sa dohodli, že v Data môžu byť všetky tieto formáty.

Použitie pre iné prípady je nutné poupraviť. Dôvody? No napr. sa neberú do úvahy všetky dátové listy, ani všetky Tabuľky, ale iba prvý/prvá. Alebo je tam nastavený typ dát. Alebo oddeľovač býva často Tabulátor. Teraz sú tabuľky do výsledku rozbalené, čo so sebou nesie potrebu názvov stĺpcov, ale je tam zakomentovaná aj verzia s kombinovaním, kde názvy nie sú potrebné. Atď...

Pre zmenu rozbalenia za kombinovanie zakomentujte
#"Rozbalené Data souboru"
#"Odstránené stĺpce"
#"Zlúčené stĺpce"
#"Zmenený typ"

a odkomentujte
KombinujTabulky
#"Zmenený typ" (ten druhý)


Zisťovanie oddeľovača ";"/" " som zmenil.

Zapínanie/vypínanie ďalších vnorených podadresárov mi funguje bez problémov. Neviem v čom je zrada.

XLSX súbory to normálne zahŕňa, načíta, všetko korektne. Veď tak sme sa dohodli. To bolo zahrnuté v tej podmienke Text.StartsWith([Extension], ".xls"), ale teraz som to zmenil. Opäť neviem, v čom je zrada, keď to u Vás nejde.

Tak skúsime

Postupne si dajte Ľklik na každé pole v zozname KT Řádky dole vpravo - Nastavenie poľa
Medzisúčty - Žiadne
Rozloženie a tlač - Zobraziť označenia položiek formou tabuľky
Opakovať označenia položiek nechajte vždy nezaškrtnuté

Alebo ak ste na tej KT, tak na karte Návrh
Rozloženie zostavy - Zobraziť formou tabuľky
Celkové súčty - Vypnúť pre riadky a stĺpce
Medzisúčty - Nezobraziť medzisúčty

potom prípadne ešte Pravý klik na KT - Možnosti kontingenčnej tabuľky - Zobrazenie - nezaškrtávať Zobraziť tlačidlá rozbalenia a zbalenia

Lepšie to popísať neviem

Áno ja som použil CodeName listu, ak chcete použiť názov z uška listu musíte použiť Worksheets("nejaký názov"). CodeName má výhodu práve v tom, že bude všetko fungovať nech si list pomenujete akokoľvek. A je o zlomok rýchlejší, lebo odkazuje hneď na objekt, naopak Worksheets najskôr nájde zhodu v kolekcii. Cez Worksheets sa dá zase pekne testovať existencia listu, alebo sa dá použiť pri výmene listov za nové aktuálne dáta a pod, vtedy zase CodeName zlyhá, lebo bude mať iný názov. Všetko má + a -

A čo KT?

No musíme začať asi od znovu, čo vieme (sa domnievame), ďalej otázkami a odpoveďami.

1. ako zdroj potrebujete pre rôzne PQ dotazy
a) aj celú cestu k aktuálnemu súboru, v ktorom ten PQ dotaz je (napr. na získanie dát, ktoré nie sú Tabuľka)
b) aj cestu k adresáru aktuálneho súboru, v ktorom ten PQ dotaz je (napr. na získanie cesty podadresára umiestneného v adresári spolu s týmto súborom)

2. potrebujete načítať dáta z viacerých súborov v tom podadresári, a spojiť načítané dáta do jednej Tabuľky

3. súbory v podadresári sú XLSX, no môže sa stať, že budú aj XLS

4. údaje v súboroch v podadresári sú netabuľky (obyčajné dáta)

5. nie je možné sa spoliehať na to, že údaje načítate z 1. listu, lebo PQ Vám nedá zoznam listov v takom poradí, ako máte v Exceli.

Otázky:
6. Názov listu v súboroch v podadresári je vždy rovnaký?

7. Poznáte názov toho listu?

8. Ak nepoznáte názov toho listu, viete ho nejako od iných listov identifikovať? Nemusíte tam nič do súborov dopisovať. Veď je nejako predsa odlíšiteľný od ostatných listov. Napr. má vždy v bunke A1 napísané "Report" alebo "Výdaje" ..., pričom v iných listoch v súbore je vždy v bunke A1 niečo iné (napr. prázdna, "Jméno", "Souhrnná tabulka", ...).

9. Názvy stĺpcov sú rovnaké?

10. Dáta majú hlavičku v 1. riadku, alebo je nejaký offset (pevný, variabilný - ako ho identifikovať ?{napr. hlavička začína od riadku kde v stĺpci A je "Jméno"}), alebo nemajú hlavičku?

11. Ak neplatí bod 2. tak: Vyššie ste spomínal "první soubor", tým myslíte nájsť najnovší súbor v danom podadresári podľa dátumu modifikácie?

Môžete použiť aj Evaluate
Sub tlačítko4_Kliknutí()
Dim Jmeno As String, R As Long
R = Selection.Row
If R > 1 Then
Jmeno = Cells(R, 1).Value2
If LenB(Jmeno) > 0 Then
R = Evaluate("=IFERROR(MATCH(1,('List1'!B1:B10000=""" & Jmeno & """)*('List1'!A1:A10000=""ICA""),0),0)")
If R = 0 Then MsgBox "Nenalezeno", vbExclamation: Exit Sub
Application.GoTo List1.Rows(R), True
End If
End If
End Sub

alebo cyklus
Sub tlačítko4_Kliknutí()
Dim L(), Jmeno As String, R As Long, i As Long
R = Selection.Row
If R > 1 Then
Jmeno = Cells(R, 1).Value2
If LenB(Jmeno) > 0 Then
L = List1.UsedRange.Columns(1).Resize(, 2).Value2
R = 0
For i = 1 To UBound(L, 1)
If L(i, 1) = "ICA" And L(i, 2) = Jmeno Then R = i: Exit For
Next i
If R = 0 Then MsgBox "Nenalezeno", vbExclamation: Exit Sub
Application.GoTo List1.Rows(R), True
End If
End If
End Sub

Medzitým, ako ste sem napísali, som urobil návrh na XLS s použitím nejakého identifikátoru v liste o ktorý ide. Môže to byť hocičo niekde v liste v bunke napr. "Report", alebo názov mesiaca, alebo niečo ... tu je to "X". Už to sem dám, keď to mám hotové. Ak je u Vás ten list takto identifikovateľný, pridám potom aj na XLSX.

xls nie je to isté ako xlsx
S xls bude problém, že musíte vedieť názov listu, lebo ich názvy nevráti v poradí ako sú v zošite.

Vyskúšajte si to aktivovaním/deaktivovaním (zrušením/pridaním "//") jedného alebo druhého riadku
#"Data príklad"

Dosť dobre nerozumiem, na čo sa pýtate. Pár príkladov, ako :
- načítať dáta zo súboru v ktorom PQ je, adresár si zistí sám v bunke (2 spôsoby aj tabuľka aj Tabuľka)
- načítať dáta zo všetkých súborov v podadresári cesty v ktorej je PQ, to si zistí tiež z bunky (2 spôsoby aj tabuľka aj Tabuľka), z konkrétneho listu (dá sa aj všetky listy)

Ak sa pýtate na niečo iné, špecifikujte.


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 287

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse