Mam to vlastne hotove, len mi tam este 1 chybku hodilo, a uz nemam cas to debugovat. Pridem mozno o 3-4 hodky. Tak ak to sem nikto zatial neda, tak no problem.
Prvý riadok uvádzam variant do SK Excelu, a druhý riadok uvádzam variant do CZ Excelu. Niektoré krajiny majú niektoré funkcie preložené (nie všetky, čo vidieť aj v tomto prípade - ISEVEN nie je do CZ preložený). Ja sa takto snažím uvádzať vzorce vždy.
Inak napadlo ma aj nematicové riešenie, teda zadávané obyčajným Enter
=INDEX(C2:H2;LOOKUP(2;1/(ISODD(COLUMN(C2:H2))*(C2:H2=MIN(IF(ISODD(COLUMN(C2:H2));C2:H2;FALSE))));COLUMN(C2:H2)-1))
=INDEX(C2:H2;VYHLEDAT(2;1/(ISODD(SLOUPEC(C2:H2))*(C2:H2=MIN(KDYŽ(ISODD(SLOUPEC(C2:H2));C2:H2;NEPRAVDA))));SLOUPEC(C2:H2)-1))
Iba +1 som zabudol dať na konci - doplnil som do predošlého príspevku. Na môj príklad, kde sú dáta od B. Vy máte dáta od C, teda nie párny ale nepárny stĺpec, a preto len zmena z ISEVEN na ISODD:
=INDEX(C2:H2;MATCH(1;ISODD(COLUMN(C2:H2))*(C2:H2=MIN(IF(ISODD(COLUMN(C2:H2));C2:H2;FALSE)));0)+1)
=INDEX(C2:H2;POZVYHLEDAT(1;ISODD(SLOUPEC(C2:H2))*(C2:H2=MIN(KDYŽ(ISODD(SLOUPEC(C2:H2));C2:H2;NEPRAVDA)));0)+1)
Uveďte prílohu, záleží na párnosti čísla stĺpca (maticový vzorec Ctrl+Shift+Enter)
=INDEX(B2:G2;MATCH(1;ISEVEN(COLUMN(B2:G2))*(B2:G2=MIN(IF(ISEVEN(COLUMN(B2:G2));B2:G2;FALSE)));0)+1)
=INDEX(B2:G2;POZVYHLEDAT(1;ISEVEN(SLOUPEC(B2:G2))*(B2:G2=MIN(KDYŽ(ISEVEN(SLOUPEC(B2:G2));B2:G2;NEPRAVDA)));0)+1)
Aha, OK.
Počet riadkov sa dá riešiť niekoľkými spôsobmi:
a) dostatočným predimenzovaním vzorcov
b) použitím Tabuľky (to nie je prípad listov Y,X,Delus, lebo v nich sú závislé dáta)
c) natiahnutím vzorcov v makre na presnú veľkosť
d) použitím PowerQuery dotazu, ktorý vytvorí aktuálny výsledok (nebudú tam vzorce ale dáta), obnovuje sa cez Údaje - Obnoviť všetko, alebo toto obnovenie vyvolá makro na svojom konci.
e) samotné makro vyrobí presne veľký výsledok (teda nebudú tam vzorce ale dáta)
0 sa dajú skryť predsa priamo v tých vzorcoch pomocou IF/KDYŽ a "", alebo pomocou Podmieneného formátu "General;General;;@", alebo filtrom
Vy tie listy X a Y potrebujete, alebo ide iba o pomôcku pre list Delus?
O čo vlastne ide v tých listoch? O to aby ste v Delus zoradili za sebou najskôr upravené dáta ako v liste Y a hneď za nimi upravené dáta ako v X (teda bez "prázdnych"/"nulových" riadkov)? Je možné tie medzivýpočty v listoch vynechať a zapísať rovno hodnoty do Delus (či už makrom alebo PQ)?
Tie vždy nové dáta, ktoré kopírujete do "Vložení dat", to máte nejaký súbor exportu z nejakého SW, a ten si otvoríte a prekopírujete celé dáta? Tie dáta v tom súbore majú na začiatku aj tie "Výrobní dávka" a pod. čo sú na riadkoch 1 a 2?
A napadajú ma stále nejaké otázky, ktoré sú rozhodujúce pre návrh riešenia. Napr.:
Vy tie údaje potom ešte nejako upravujete/dopisujete v liste "Vložení dat"?
Ak áno, tak je potrebná kompletná aktualizácia po každej zmene, alebo pri kliknutí na tlačítko?
Sú dáta zoradené/zoskupené na "Y" a "X" alebo pomiešané?
Tu máte jednu z možností - kompletne spracované makrom - teda žiadne vzorce.
??? Tie listy "X", "Y", "Delus" sú predsa celé zle.
Ako viete, že budete mať nových dát zrovna po riadok 175 (teda 174 dátových) ?
V Delus majú byť pod sebou Y a X ? tak prečo sa z Y ťahá iba 99 riadkov a z X iba 100 riadkov, keď Y aj X sú nastavené na 174 riadkov?
Viete prečo máte v stĺpcoch:
Přední hrana - Tloušťka
Zadní hrana - Tloušťka
Levá hrana - Tloušťka
Pravá hrana - Tloušťka
samé 0 ? Lebo hľadáte napr. RIGHT('Vložení dat'!$J4;2)="45" a to nikdy nenastane, lebo dáta v zdrojových stĺpcoch tak nekončia. Majú tam ešte predsa veličinu "mm" napr
HD 241145 - ABS dub gravír 22x0,45mm
Tie 3 listy by sa mali plniť buď makrom alebo PowerQuery, obe si dokážu tie stĺpce dopočítať do Vami požadovaného tvaru.
Ja už to mám zhruba pre Vás aj prichystané, aj som rátal s číslami pomedzi, čakám len na ten rozsah
Takže to má reagovať na zmenu od 4. riadku (vrátane) ? Alebo má reagovať a odstraňovať diakritiku aj z riadkov 1-3 (kde 3. je hlavička dát)
Ak áno, tak ďalej od bunky A4 ľubovoľný počet riadkov a ľubovoľný počet stĺpcov ?
EDIT:
Tu máte zatiaľ nastrelenú prípravu.
Oblasť prevodu je nastavená konštantou na A4:BA10000
Na oddelenie čísel, riadkov, stĺpcov som použil tieto znaky "|", "¤", "•" v konštantách. Treba použiť také paznaky, ktoré sa v texte vyskytovať nebudú.
Uvádzam, že ako výkonnú časť makra som použil riešenie od eLCHa. Doprogramoval som len obslužnú časť.
Vaše riešenie je zlé.
Použite to od eLCHa.
Ak budete mať problém s implementáciou, pridajte prílohu, nech vidím ako máte rozmiestnené údaje po liste. Pri Worksheet_Change treba rozlišovať, kedy reagovať a kedy nie. Pridajte zoznam buniek/oblastí ktorých sa to má týkať, podrobnejší popis použitia. A adekvátne Vám to prispôsobím.
Ten dotaz doplní data ve sloupcích A : AR.
V dalších sloupcích mám vzorce, ty nepřepíše, to ano.
Ale jak je to z rozsahem řádků?
Pokud ano, jak je ošetřeno, že při další aktualizaci dotazu nebude třeba méně řádků?
A dalo by se spouštění toho dotazu přiřadit nějakému tlačítku na jiném listu tak, jak to mám u VBA?
Nerobíte nič zle. Máte pravdu. Ide to iba na mojom PC, skúšal som to aj na inom, no kým som šiel pozrieť aká je tam verzia Office tak spadol prúd :(
Na mojom PC je 2019 Pro Plus
Každopádne tu poprosím skúsenejších PéQéčkárov a pomoc, v čom je problém.
Stále nejasné. Takže užívateľ vidí všetky kódy, a ku niektorým pripíše číselnú hodnotu. A túto tabuľku na užívateľskom liste, so všetkými kódmi a hodnotami (aj bez hodnôt) chcete zoradiť na rovnakom mieste (v rovnakej oblasti) tak, že najskôr pôjdu riadky s hodnotami a následne bez hodnôt? A Rozšírený filter s výstupom na rovnaké miesto, ani Údaje - Zoradiť nechcete. Tak potom jedine makro na tlačítko.
Alebo je to tak, že užívateľ síce vidí všetky kódy, napíše hodnoty iba k niektorým, ale zoradenie chcete na inom mieste listu, potom maticovými vzorcami. Ktoré budú reagovať dynamicky hneď po napísaní hodnoty.
Alebo na iné miesto v liste sa to dá aj cez kontingenčku, alebo cez PowerQuery (v tom prípade najlepšie aby tá kód/hodnota tabuľka bola Tabuľkou).
A nebolo by lepšie (a možno to tak je, len to zle popisujete), že si užívateľ z výberového zoznamu vyberie kód, a vedľa napíše hodnotu?
Vaša otázka
Jakou funkcí vybrat z tabulky pouze ty kódy, které obsahují číselnou hodnotu a vypsat je do nových buněk pod sebe, takto:
Jednorázovo? "Rozšírený filter" a jeho "Kritérium"
hodnota
<>
Alebo myslíte dynamicky sa meniace? potom maticový vzorec.
"čísla" - teda na tomto konkrétnom príklade vynechať prázdne? Alebo ide skutočne o kontrolu či je v druhom stĺpci hodnota čísla (môže tam byť aj nečíslo???).
Je to nejasné?
Školské úlohy?
Malo by to fachať. Skúšal som to pred odoslaním. Teraz som na ceste, keď prídem domov, pošlem Vám kompletný adresár aj s vymyslenými súbormi a s presne stanovenou cestou. Pozrieme na ktorom riaku v PQ to dá chybu. Alebo to môžete mrknúť aj Vy. Ktorý dá chybu? Údaje, Pripojenia, pravým na dotaz a Upraviť. V pravo sú jednotluvé kroky. Takto som to robil aj manželke do prace, a odvtedy ma neotravuje ;)
Aby ste ešte nemal rovnaký problém ako ona, že XLS súbory z ich infosystémov boli vlasrne premenovane textove súbory CSV. Tie sa otváraju totiž inak. Otvorte tie Vaše súbory v Notepade, ak uvidíte data, je to CSV.
Samozrejme keď to nepojde, tak makro nueje problém...
EDIT:
Tu je ten príklad zabalený komplet. Rozbaľte si to napr. rovno na C: a dajte Obnoviť všetko.
Ale veď management cesty zdrojových súborov je jednoduchý. Tu máte príklad, kde si môžete zvoliť kliknutím automatickú cestu podľa aktuálne umiestneného súboru, alebo manuálne nastavenú cestu.
Je to jednoduché. Formát dátum nie je len dátum ale dátum+čas, akurát čas nie je zobrazený. A to je Váš problém. Ak odstránite problém s časom pridaním TRUNC/USEKNOUT je to OK.
A ako už eLCHa naznačil - ten stĺpec spoj nepotrebujete.
=SUMIFS(TabCenik[Cena za MJ];TabCenik[Zboží];[@[Typ palety]];TabCenik[Pohyb];[@[Druh pohybu]];TabCenik[Od];"<="&TRUNC([DTM]);TabCenik[Do];">="&TRUNC([DTM]))
=SUMIFS(TabCenik[Cena za MJ];TabCenik[Zboží];[@[Typ palety]];TabCenik[Pohyb];[@[Druh pohybu]];TabCenik[Od];"<="&USEKNOUT([DTM]);TabCenik[Do];">="&USEKNOUT([DTM]))
Príklad riadok 4, Datum vytvoření:
21.4.2022 16:47:20 sa zobrazuje ako 21.4.2022 teda si myslíte, že spadá do intervalu 1.4.2022 >= X <= 21.4.2022
No nie je to pravda. je to 16:47:20 po dni 21.4.2022.
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.