Musis sa zaregistrovat a prihlasit. Budes mat zeleny nick a budes moct vkladat prilohy (zazipovane). Alebo to upni niekam na ulozto, letecka posta apod. a sem vloz link. Ja idem spat, pokial sem das subor, tak tie vzorce donho vlozim az po tom, co vstanem. Co ti vadi na Jezovom rieseni? Je spolahlivejsie...
A vzorový súbor sem stále nedáš, že? Tak sa tým netráp a použi súbor od Jezy, ten môj opravený vzorec síce funguje, ale nejak nemám silu vysvetľovať princíp. (Vzorec v [K2] musí byť v tvare, v akom som uvádzal v pôvodnom príspevku, to je ale detail. I tak by tam ale chcelo ošetriť situáciu, kedy zoznam končí zápornou hodnotou, páč v tom prípade ten môj postup, tak, ako je navrhnutý, nefunguje na 100% a musel by si na to dávať pozor).
PS: Pokiaľ ti max vychádza 18.6 tak to je naozaj zaujímavé, keď počítaš počty výskytov v rade a to by mali byť celé čísla
@ jeza, ja som netvrdil, že pomocný stĺpec je vrchol elgancie, ale je to jednoduché a bola to iba varianta k "nemožnosti" riešiť uvedené makrom. Ale nie je to elegantné, súhlasím.
Čo sa týka tvrdenia (ktoré je pochopiteľne správne): Teda fungovat bude jen do chvíle, než se mezi těmi kladnými čísly krom mínusových neobjeví nějaká 0., tak na svoju „obranu“ uvediem, že som vychádzal z pôvodného zadania, konkrétne z: Rád bych zjistil nejdelší počet za sebou jdoucích mínusových hodnot bez 0 s horní a spodní hranicí kladné hodnoty. a ten príklad, ktorý OP uviedol medzitým, som si už nevšimol. Čiže, moje vzorce to počítali tak, ako som si zadanie ja „preložil“, tj. počíta to len počty výskytov záporných čísel v rade, pokiaľ sa vyskytne nula, tak sa začne počítať od začiatku.
Pokiaľ to zadávateľ chcel inak (áno chcel, ale upresnil to až v nasledujúcom príspevku), tak budem namietať nejednoznačnosť pôvodného zadania.
mínusová hodnota bez 0 je trochu kostrbaté vyjadrenie, nula nie je mínusová hodnota.
Napadá ma jeden citát, ktorý som našiel nedávno: "Anyone who cannot speak clearly and simply should say nothing and continue to work until he can do so"
Pokiaľ ale teda s nulami, tak malá modifikácia vzorca nie je problém:
[K3]=IF(J3<0;1+K2;IF(J3=0;K2;0)),
prípadne"sofistikovanejšie":[K3]=IF(J3>0;0;(J3<0)+K2),
či:[K3]=(J3<0)+IF(J3>0;0;K2),
alebo:[K3]=(J3<0)+(J3<=0)*K2, skopírovať dolu.
V jednom máš určite pravdu, bolo by vhodné, aby sa OP naučili prikladať vzory. Inak je tu občas niekto z riešiteľov za toho, kto to vlastne riešiť nevie.
Aby som iba nekecal, tak teda takto, zapisujem do stĺpca K:
[K2]=IF(J2<0;1;0)
[K3]=IF(J3<0;1+K2;0)
skopírujem po [K613]
maximum počtu záporných hodnôt v rade: =MAX(K2:K613)
prípadne si to douprav tak, aby to do výpočtu nezahrňovalo hodnoty, pokiaľ nie sú uzatvorené na konci kladnou, to by si mal zvládnuť
pozíciu začiatku a konca rozsahu týchto hodnôt zatiaľ neriešim, riešenie som načrtol v predošlom príspevku
@ jeza - protože tohle bude jedině na makro
ale nie, dá sa pomocou nejakých pomocných stĺpcov
prvý pomocný stĺpec - otestuje, či je hodnota v danom riadku záporná
druhý pomocný stĺpec - bude kumulovať počet záporných hodnôt v rade, čiže nejaké IF
vzorcom sa nájde maximum z druhého pomocného stĺpca, zistí sa adresa maxima cez MATCH, pre vysvetlenie dalšieho odstavca ju nazvem pracovne UADRESA
adresa začiatku toho rozsahu ako počet buniek od UADRESA mínus hodnota MAX
keď tak nad tým rozmýšľam, tak prvý pomocný stĺpec ani nebude potrebný
pokiaľ ma nebudú zaujímať tie adresy, ale len maximálny počet záporných hodnôt v rade, tak stačí druhý pomocný stĺpec a funkcia MAX
Tipujem že sa to dá nejak naprogramovať, avšak to neovládam, dá sa to spraviť aj jednoduchšie?
Nič jednoduchšie než filter neexistuje. Pokiaľ nechceš programovať, tak buď filter, alebo, keď píšeš, že do zdrojovej tabuľky nemajú mať užívatelia prístup, tak SQL dotaz. Ja odpoveď poznám, to sa báť nemusíš, ale jedna vec je odpoveď poznať a trochu iná potom nejaký kód, ktorého písanie už nejaký čas vezme, vytvoriť, vieme?
No áno, je to riešením, avšak pri rozšírenom filtri je nutnosť vždy naklikávať všetky položky.
Mal som dojem, že si hovoril o krtitériu výberu, kedy sa majú vybrať záznamy spĺňajúce podmienku väčší než 8.
Mne teda rozšírený filter pripadá na riešenie tejto úlohy (flexibilita pri zadávaní kritérií, výstup na iný list) úplne dokonalý a osobne si s nim bohate vystačím. Ale Ty budeš asi iný káder a hľadáš niečo unikátne. S tým Ti asi neporadím páč nebudem riešiť niečo, o čom nie som presvedčený, že dáva nejakú pridanú hodnotu či zmysel.
Inak ale, pokiaľ Ti to samé navrhuje Pavlus a Jeza, tak byť Tebou by som im veril, páč týmto veciam rozumejú pravdepodobne lepšie, než Ty.
Najbližších pár dní sa k tomu určite nedostanem, bude to musieť buď počkať, alebo sa toho ujme niekto iný. Nie je to síce nič zložité, ale nejaký čas, ktorý momentálne nemám, to i tak zaberie.
Ve výsledku bych potřebovala, aby osoba, která si soubor otevře, mohla zapisovat hodnoty a jakmile soubor uloží a uzavře, budou buňky pro další práci uzamčeny.
Áno, rozumiem zadaniu, už som Vám naznačil riešenie: potrebujete to napísať do procedúry BeforeSave v kódovom okne ThisWorkbook
Však hej, stále platí, čo napísal Pavlus, že je to klasická úloha pre filter (teda, rozšírený filter). Naštuduješ tuná:
http://www.contextures.com/xladvfilter01.html
Týka sa Ťa časť Extract Data to Another Worksheet, som zlatý, však?
@marjankaj: ja to chápem tak, že nie po uložení, ale pred uložením, čiže vložiť niečo, čo dáva zmysel, do kódu pre BeforeSave event (akurát sa mi to nechce teraz písať, no). Ale videl by som to zhruba tak, že Worksheet_Change využiť pre vytvorenie Range, ktorý by bol načítaný do nejakej premennej a pred uložením vrámci BeforeSave event daný Range zamknúť.
Opičák, to nebolo myslené špatne, vôbec teda nie na Teba. Mám len trochu dojem, že pár ľudí tuná si zvyklo, že dostane full service, navedenie na riešenie nestačí, proste mne to nejde, tak mi to niekto napíšte celé, ja sa nebudem predsa namáhať zbytočne. Potom sa tu stále dokola opakujú jedny a tie samé otázky, hromadné maily sa tu riešili už x-krát. Na stránkach Rona je to popísané od A do Z, mnoho spôsobov posielania hromadných mailov, mnoho spôsobov, ako ku každému mailu priložiť samostatnú prílohu s obsahom týkajúcim sa toho-ktorého adresáta. Zmienil to kentaur, ja som to trochu rozviedol, ale jovogovi to "nejde". On by sa na to chlapec najprv musel pozrieť, ale načo, keď mu to ochotný opičák celé napíše.
Ide to, postup je na stránkach Ron de Bruina. Ale Ty čakáš, že Ti to niekto napíše, tak možno bude mať chuť opičák.
Je to tak, ako píše Kentaur: Ron de Bruin na svojich stránkach uvádza kódy pre rozosielanie hromadných mailov a taktiež kódy, ktoré rozsekajú stránku na x stránok podľa nejakého identifikátora (v tomto prípade prichádza ako identifikátor do úvahy asi adresát). Z môjho pohľadu sa na uvedených stránkach nachádza všetko, čo jovoga potrebuje, pekne na jednom mieste
Tak, povedzme, že chceš vyhľadať hodnotu zo stĺpca P v prípade, že ktitérium1 je zhodné s hodnotou v stĺpci A a kritérium2 je zhodné s hodnotou v stĺpci B. Vzorec by vyzeral takto:
=INDEX(P:P;MATCH(Kritérium1&Kritérium2;A:A&B:B;0))
musí to byť zadané ako maticový vzorec
Ešte k tomu roztiahnutiu:
Vyber stĺpec A, zmačkni F5, vyber inak, prázdne bunky, potvrď o.k.
zapíš = (nemačkaj Enter), zmačkni šípku nahor, zmačkni Ctrl+Enter
Na konci eventuálne nahraď vzorce hodnotami.
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.