Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  116 117 118 119 120 121 122 123 124   další » ... 302

Ešte o mikrokúštik kratšie :)
=LEFT(A1;LEN(A1)-IFERROR(RIGHT(A1)*0;1))
=ZLEVA(A1;DÉLKA(A1)-IFERROR(ZPRAVA(A1)*0;1))

Áno myslel som na to, no nakoniec prevážila myšlienka, že nevieme čo obsahuje ten "txt", a čo ak tam bude tiež "/", tak som to spravil radšej takto :)

Skúsim iba zľahka.
Pomocný stĺpec je v oboch Tabuľkách na konci - skrytý.
Vypozoroval som, že dátumu vždy predchádza "/".
Vzorec funguje približne takto:
-nahradí "/" za počet medzier rovnajúcich sa dĺžke raťazca, tento trik sa používa na rozdelenie textu na úseky/slová či získanie N-tej časti.
txXt010018/24.01.2020
txXt010018                     24.01.2020

-Teraz zoberieme zprava toľko znakov, aká je dĺžka origo textu
           24.01.2020
-A teraz keď máme 11 medzier a textodátum, prevedieme tento textodátum na dátum
DATEVALUE("           24.01.2020")
DATUMHODN("           24.01.2020")

-a máme dátum 24.1.2020, ktorý môžeme testovať voči našej podmienke Datum!D3 a Datum!D4 (preto musí byť vo vzorci ešte jedno rovnaké počítanie pre druhý interval)
-samozrejme je to obalené v IFERROR, pre prípad, že tam dátum nebude, a pri prevode na dátum nastane chyba.

-lenže my toto celé nerobíme s bunkou, ale s 18-stimi, a teda nám vznikne maticovým vzorcom pole 0 a 1, ktoré pomocou SUM/SUMA spočítame.
Napr v 4. raidku
SUM(0/1/1/1/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE/FALSE)
SUMA(0/1/1/1/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA/NEPRAVDA)

-a tento súčet nám udáva koľkokrát sa v 18 stĺpcoch nachádza dátum v rozmedzí intervalov, ak je >0 tak je výsledkom číslo riadku dát v Tabuľke, ak je 0 tak ""
-tieto výsledky (čísla riadkov) sú logicky teda aj zoradené vzostupne.

A teda vo výslednej Tabuľke:
-potom pomocou vzorca zisťujeme na každom riadku zdrojový riadok
SMALL(stĺpec;koľká najmenšia hodnota)
"stĺpec" - je ten výsledný pomocný skrytý stĺpec na konci zdrojovej Tabuľky
"koľká najmenšia hodnota" - tu si pomocou relatívneho adresovania zabezpečíme, že vzorec na každom riadku bude ťahať o jedno väčšie číslo z výsledkov v zdroji (vždy ďalší riadok)
ROW(A1)
ŘÁDEK(A1)

-A potom už iba indexujeme data tak, že ich najskôr skontrolujeme, či nieje výsledná bunka prázdna, lebo by nám to ťahalo 0.

fertig

Najjednoduchší spôsob vzorcami je asi takto - pomocný stĺpec v každej Tabuľke.

Maticový vzorec vynechá prázdne riadky.

Podľa toho, čo som čítal na niekoľkých fórach, nie si sám čo mu tento bug "spríjemňuje" život. Opravujú to už vraj 2 roky, tak by som sa príliš na nápravu nespoliehal. Všeobecná zhoda je zatiaľ na použití ExcelTable ako jediného objektu na liste a začínajúcej v A1. Číta to potom ako akýkoľvek iný list bez ExcelTable.
let
Source = Excel.Workbook(File.Contents("D:\Dokumenty\pom.xlsb"), null, true),
xlTbl_CatalogueData_Table = Source{[Name="CataloguedData"]}[Data],
#"Hlavičky so zvýšenou úrovňou" = Table.PromoteHeaders(xlTbl_CatalogueData_Table, [PromoteAllScalars=true])
in
#"Hlavičky so zvýšenou úrovňou"

Presne tak. Snažíte sa vytvoriť podadresár v neexistujúcom adresári. Použite nejakú parametrizovanú procedúru na vytvorenie celej adresárovej štruktúry. Napr. narýchlo takéto niečo:
Sub VytvorAdresar(Cesta As String)
Dim sC() As String, dC() As String, i As Byte
If Right$(Cesta, 1) <> "\" Then Cesta = Cesta & "\"
dC = Split(Cesta, ":\")
sC = Split(dC(1), "\")
Cesta = dC(0) & ":"
For i = 0 To UBound(sC)
If sC(i) <> "" Then
Cesta = Cesta & "\" & sC(i)
If Len(Dir(Cesta, vbDirectory)) = 0 Then MkDir Cesta
End If
Next i
End Sub

Areas za iných okolností áno, ale nie v UsedRange. Tu by sa muselo asi zisťovať po jednom, či bunka obsahuje rám, podmienený formát, overenie údajov a pod. Samozrejme hodnotu, ale tá by sa ako jediná dala testovať rýchlo cez pole, či hromadne cez SpecialCells, prípadne maticovým EVALUATE s testom riadkov aj stĺpcov. Jednoduché to nebude.

Ukážte presne čo obsahuje
FolderPath
aFolder
Sheets("Definice poptávky").Cells(a, 1).Value

v momente chyby

Všetko variabilné:
Sub VyberOdDo()
Dim CisloRadkuOd As Long, CisloRadkuDo As Long
Dim CisloSloupceOd As Long, CisloSloupceDo As Long

CisloRadkuOd = 2
CisloRadkuDo = 3
CisloSloupceOd = 5
CisloSloupceDo = 8

ActiveSheet.Cells(CisloRadkuOd, CisloSloupceOd).Resize(CisloRadkuDo - CisloRadkuOd + 1, CisloSloupceDo - CisloSloupceOd + 1).Select
End Sub


Sub VyberOdPocet()
Dim CisloRadkuOd As Long, PocetRadku As Long
Dim CisloSloupceOd As Long, PocetSloupcu As Long

CisloRadkuOd = 2
PocetRadku = 2
CisloSloupceOd = 5
PocetSloupcu = 4

ActiveSheet.Cells(CisloRadkuOd, CisloSloupceOd).Resize(PocetRadku, PocetSloupcu).Select
End Sub

pavol14pavol napsal/a:

v Tabulke A prvy stpec(nazov) musi byt umiestneni v bunkach C32 az C60 a druhy stlpec (predaj) I32 az I60 presne tak ako je ulozena v tejto tabulke.

Aké C32:C60 a I32:I60 ??? Ja tam vidím C36:C53 a I36:I53!

Upavené makro na

pavol14pavol napsal/a:

...presne tak ako je ulozena v tejto tabulke...

Ale veď ono to je vlastne jednoduché. INDEX+MATCH zabezpečí výber stĺpca s požadovaným dátumom. COUNTIFS vyberie z neho iba riadky spĺňajúce pracovnú pozíciu podľa B a tím podľa riadku 2. A potom príde to čaro, že COUNTIFS ako podmienku pre spĺňajúce riadky daného stĺpca, otestuje či začínajú na písmená smeny uvedenej v A ako názov oblasti smeny. Maticový vzorec to musí byť práve preto aby COUNTIFS testoval a vrátil toľko výsledkov, koľko je parametrov v danej smene, teda 5. Týchto 5 výsledkov bude vždy vyzerať tak, že budú 4x0 a 1x1, lebo bude daná bunka začínať práve jedným označením smeny. Preto to musíme potom zrátať cez SUM. A buď dostaneme 0 alebo 1.

EDIT:
Ešte ma napadlo, aby to nebol maticový vzorec ale normálny, stačí vymeniť SUM/SUMA za SUMPRODUCT/SOUČIN.SKALÁRNÍ.

Pr.

ata napsal/a:

...Nějaký rychlejší způsob ?...

Takže neposkytnete bližšie info a prílohy? Tak nič, no.

Ak poznáte meno súboru, mená listov a umiestnenie dát, teda netreba napr zisťovať počet riadkov a pod, tak stačí makrom hromadne zapísať vzorec do buniek cieľového zošita s odkazom na bunky, ktoré nás zaujímajú v tom zatvorenom. To je tiež rýchlejšie ako otváranie súboru.
Treba prílohu zdroju aj cieľa.


Strana:  1 ... « předchozí  116 117 118 119 120 121 122 123 124   další » ... 302

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