???
Takže Vy nechcete nič vypisovať, žiadne slová, ale iba určiť koľko je slov, a 2x toľko buniek vyfarbiť?
Tak zmažte všetky vzorce, označte H5, a zmente PF na
=(LEN(TRIM($H5))-LEN(SUBSTITUTE(TRIM($H5);" ";""))+(LEN(TRIM($H5))>1))*2>=COLUMN()-8
=(DÉLKA(PROČISTIT($H5))-DÉLKA(DOSADIT(PROČISTIT($H5);" ";""))+(DÉLKA(PROČISTIT($H5))>1))*2>=SLOUPEC()-8
Malo by to byť ošetrené aj na dvojmedzeru medzi slovami.
Ak chcete čokoľvek iné, NEDÁVAJTE UŽ ŽIADNE SLOVNÉ POPISY, ale PRILOŽTE MANUÁLNE VYROBENÝ POŽADOVANÝ VÝSLEDOK. Nech sa nemusí tipovať, čo asi chcete.
Beriem to ako 2 frky, a oba dobré
Vysvetliť ??? To by bolo na dlho. Skúsim to iba krátko popísať.
Pre zjednodušenie chápania vzorcov je použitých niekoľko Definovaných názvov:
PODSKUPINA
=OFFSET(STOPS!$K$1;MATCH(DISORDER_A!$A2;STOPS!$B$2:$B$1998;0);;COUNTIF(STOPS!$B$2:$B$1998;DISORDER_A!$A2))
=POSUN(STOPS!$K$1;POZVYHLEDAT(DISORDER_A!$A2;STOPS!$B$2:$B$1998;0);;COUNTIF(STOPS!$B$2:$B$1998;DISORDER_A!$A2))MATCH nájde pozíciu (druhý riadok má index 1), kde sa nachádza lis
COUNTIF zistí počet záznamov toho lisu
OFFSET použije tieto 2 hodnoty na nastavenie oblasti podskupiny (predpoklad je, že sú pokope zoskupené !!!)
Pri zadávaní tohto vzorca do Def. názvu je potrebné stáť na 1. výsledkovej bunke E2.
POZNAMKA
=OFFSET(PODSKUPINA;;2)
=POSUN(PODSKUPINA;;2)Poznámka je tá istá oblasť, len posunutá o 2 vpravo
PROSTOJ
=OFFSET(PODSKUPINA;;-5)
=POSUN(PODSKUPINA;;-5)Prostoj je opäť tá istá oblasť, len posunutá o 5 vľavo
CHYBY
=((PODSKUPINA<>"")*1)+((POZNAMKA<>"")*2)
=((PODSKUPINA<>"")*1)+((POZNAMKA<>"")*2)Kvôli spájaniu pomlčkou " - " treba rozlíšiť 4 stavy:
-žiadna chyba ani v Podskupine, ani v Poznámke (0 nebude nič písať)
-chyba iba v Podskupine (1 nebude dávať za ňu pomlčku)
-chyba iba v Poznámke (2 nebude dávať pomlčku pred ňu)
-chyby aj v Podskupine aj v Poznámke (3 bude medzi ne dávať pomlčku)
tie spočítané príznaky (0,1,2,3) sa nakoniec použijú v CHOOSE/ZVOLIT na určenie toho, čo sa má udiať ohľadom pomlčky.
IDX_CHYBY
=IF(CHYBY>0;ROW(PODSKUPINA)-MIN(ROW(PODSKUPINA))+1)
=KDYŽ(CHYBY>0;ŘÁDEK(PODSKUPINA)-MIN(ŘÁDEK(PODSKUPINA))+1)Keďže niektoré riadky v oblasti lisu nemusia obsahovať chybu, potrebujeme si zistiť indexy tých v oblasti, ktoré chybu majú. Takže otestujeme predošlý názov CHYBY na číslo >0 a priradíme mu vypočítaný index (teda riadok oblasti lisu mínus prvý riadok oblasti lisu [MIN slúži na určenie 1. riadku, dá sa použiť aj MATCH ako v prvom vzorci])
PORADIE_CHYBY
=SMALL(IDX_CHYBY;INT((COLUMN()-5)/3)+1)
=SMALL(IDX_CHYBY;CELÁ.ČÁST((COLUMN()-5)/3)+1)No a tento Def. názov už iba vracia postupne od najmenšieho indexy, v ktorých sa nachádza nejaká chyba (predchádzajúci Def. názov IDX_CHYBY). Poradové číslo chyby sa mení vždy každé 3 stĺpce. Teda E,F,G = 1; H,I,J = 2; K,L,M = 3 ...
Kompletujúci vzorec je
=IFERROR(CHOOSE(INDEX(CHYBY;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY);INDEX(POZNAMKA;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY));"")
=IFERROR(ZVOLIT(INDEX(CHYBY;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY);INDEX(POZNAMKA;PORADIE_CHYBY);INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY));"")V ňom sa na základe CHYBY (viď popis) rozhoduje či sa uplatní
1 - chyba iba v Podskupine
INDEX(PODSKUPINA;PORADIE_CHYBY)2 - chyba iba v Poznámke
INDEX(POZNAMKA;PORADIE_CHYBY)3 - obe chyby
INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY)0 - stav bez chyby ošetruje IFERROR, lebo CHOOSE s parametrom 0 dá chybovú hodnotu (musí začínať od 1), a to vyrieši IFERROR.
To bez chyby sa dá urobiť aj tak, že sa k CHYBY pripočíta 1 a riešenie stavov v CHOOSE bude
1 - bez chyby
""2 - chyba iba v Podskupine
INDEX(PODSKUPINA;PORADIE_CHYBY)3 - chyba iba v Poznámke
INDEX(POZNAMKA;PORADIE_CHYBY)4 - obe chyby
INDEX(PODSKUPINA;PORADIE_CHYBY)&" - "&INDEX(POZNAMKA;PORADIE_CHYBY)
Načítanie času je jednoduché, podľa rovnakého princípu indexu chyby
Čas v minutách, tu som urobil chybu, treba
=IF(F2="";"";MINUTE(F2))
=KDYŽ(F2="";"";MINUTA(F2))opraviť napr. na toto
=IF(F2="";"";TEXT(F2;"[m]")*1)
=KDYŽ(F2="";"";HODNOTA.NA.TEXT(F2;"[m]")*1)
EDIT: Príloha v pôvodnom príspevku vymenená za novú s týmto novým počítaním minút.
2 pr.
No skúste, či to bude použiteľné...
Ak som to pochopil správne, tak sa dá použiť aj kratší vzorec:
=TRIM(MID(SUBSTITUTE($A2;" ";REPT(" ";LEN($A2)));(COLUMN(A1)-1)*LEN($A2)+1;LEN($A2)))
=PROČISTIT(ČÁST(DOSADIT($A2;" ";OPAKOVAT(" ";DÉLKA($A2)));(SLOUPEC(A1)-1)*DÉLKA($A2)+1;DÉLKA($A2)))
@simplynever1: Na pochopenie každého vzorca odporúčam použiť na karte "Vzorce" krokovanie vzorca pomocou "Vyhodnotiť vzorec". Samozrejme nie na 2000 riadkoch, ale iba na 10, aby ste videl, čo sa deje.
Chcete zoradiť podľa abecedy, alebo len zoradiť pod seba, tak ako idú ?
Toto ich dá tak ako idú:
=IFERROR(INDEX($M$3:$M$25;SMALL(IF($M$3:$M$25<>"-";ROW($M$3:$M$25)-2);ROW(M1)));"")
=IFERROR(INDEX($M$3:$M$25;SMALL(KDYŽ($M$3:$M$25<>"-";ŘÁDEK($M$3:$M$25)-2);ŘÁDEK(M1)));"")
a toto ich aj zoradí podľa abecedy (nesmú sa ale opakovať):
=IFERROR(INDEX($M$3:$M$25;MATCH(ROW(M1)-1;IF($M$3:$M$25<>"-";COUNTIFS($M$3:$M$25;"<"&$M$3:$M$25;$M$3:$M$25;"<>-"));0));"")
=IFERROR(INDEX($M$3:$M$25;POZVYHLEDAT(ŘÁDEK(M1)-1;KDYŽ($M$3:$M$25<>"-";COUNTIFS($M$3:$M$25;"<"&$M$3:$M$25;$M$3:$M$25;"<>-"));0));"")
"Jiří49" napsal/a:
...elninoslov přijde se "zázračným" maticovým vzorcem...
No a čo skúsiť KT?
Priložte prílohu. A to ste mohol pokračovať v predchádzajúcom vlákne, v ktorom je riešenie predošlej variácie dotazu, na ktoré ste ani nereagoval.
https://pc-help.cnews.cz/viewtopic.php?p=1689208#p1689208
Maticový vzorec:
=SUM((LEN(A1:A10)-LEN(SUBSTITUTE(LOWER(A1:A10);LOWER(G1);"")))/LEN(G1))
=SUMA((DÉLKA(A1:A10)-DÉLKA(DOSADIT(MALÁ(A1:A10);MALÁ(G1);"")))/DÉLKA(G1))
V G1 je hľadaný text.
Uveďte nejaké požiadavky, príklady, prílohy, popis, nech sa vieme rozhodnúť, či budeme vedieť ako postupovať.
Dá sa použiť CLng()
DATEoldCOUNT = WorksheetFunction.CountIf(OblastSMAZ, "<" & CLng(DATEnow))
alebo Long namiesto dátumu
Dim DATEnow As Long
PS: Ale viete o tom, že to bude kolabovať ak bude oblasť SpecialCells(xlCellTypeVisible) rozdelená filtrom.
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.