Môžete uviesť prílohu?
Takto?
+- autobus ...
Najlepšie je vždy priložiť prílohu. Tu je nejaký príklad HLOOKUP/VVYHLEDAT
Sorry, včera sa to poriadne pretiahlo. Nestihol som. Teraz ráno som to ešte trochu prerobil, len už nestíham, a neviem či som správne zeditoval všetky popisy. Dajte vedieť. Riešené pomocou kolekcií. Aj jedinečnosť aj vzostupné zoradenie. Na počet a súčet klasická WorksheetsFunction.
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.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.