Příspěvky uživatele


< návrat zpět

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

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.

Musí to fungovať. Bežne to používam. Lubo Vám minule písal, aby ste použil aj druhý parameter funkcie CELL/POLÍČKO, teda odkaz na nejakú bunku, je fuk akú, ale v danom súbore. Ak ešte len vytvárate nový súbor, musíte ho najskôr prvý krát uložiť, aby získal cestu.

Jediné, čo nemám vyskúšané, a kde by mohol byť problém, je cesta do OneDrive a SharePoint.

Včera som si to pozrel, no a že ... fúúú to bude na dlho. Budem musieť veľmi zapojiť fantáziu, aby som dal dokopy vôbec kopec otázok, aby som aspoň trochu z odpovedí pochopil, čo ste chcel asi dosiahnuť, a prečo ste to alebo ono riešil tak či onak. A či je možné zmeniť logiku. Je to celé poprepletané medzi listami, duplicitné, triplicitné výpočty, zbytočná (?) KT, zdrojové dáta asi importované z nejakých výstupov (CSV, TXT a pod), následne zle upravované, veci sa nemusia neustále vypisovať do listov, aby sa prečítali, veď to sa dá (asi, ešte som to nepobral) dopočítať a rozdeliť makrom rovno, dvojitá hlavička (?), kopíruje sa "Začátek zápisu" no uvidíme.
Ako vravím, už len správne sa popýtať potrvá.

Divný dotaz.
Môže byť 1 pred 1000?
Môže byť viac x 1000?
Môže byť viac x 1000 bez 1 medzi nimi?
...
zatiaľ napr. pre E2021/2024/365
=LET(FLTDEN;FILTER(B3:C34;A3:A34=D1);VLOOKUP(F1;FLTDEN;2;0)-VLOOKUP(E1;FLTDEN;2;0))
=LET(FLTDEN;FILTER(B3:C34;A3:A34=D1);SVYHLEDAT(F1;FLTDEN;2;0)-SVYHLEDAT(E1;FLTDEN;2;0))

neviem či má LET a FILTER nejaký CZ preklad.

Na mobile som videl poobede, že ste dal prílohu, no keď som sa teraz konečne dostal pred spaním k PC, už tu nie je.
Každopádne, to Vaše makro nie je dobre napísané, je pomalé, nevhodne maže po jednom riadku, neprestajne sa zbytočne prepína medzi listami a selektuje bunky. Neviem, čo je účelom, ale na 99% by to šlo efektívnejšie.


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

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

kontrola buniek

loksik.lubos • 31.5. 20:33

KT jako text do emailu

elninoslov • 31.5. 18:35

vlastní pás karet

elninoslov • 31.5. 15:10

vlastní pás karet

stejzi • 31.5. 13:09

KT jako text do emailu

Začátečník • 31.5. 11:06

odkaz chyba

elninoslov • 30.5. 21:07

odkaz chyba

jano1 • 30.5. 20:31