Příspěvky uživatele


< návrat zpět

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

=IF(ISERROR(FIND(UPPER(A2);UPPER($C$1)));"";B2)
=KDYŽ(JE.CHYBHODN(NAJÍT(VELKÁ(A2);VELKÁ($C$1)));"";B2)


Vylúči chybu pri zadaní malého písmena, ale aj tak odporúčam výberový zoznam (Overenie dát) pre zápis mena.

Môže nastať exotický problém, ak v C1 bude Alfredo a A bude Edo. Nájde ho, aj keď tam je Alfredo.

EIDT: SEARCH/HLEDAT ošetruje malé/veľké:
=IF(ISERROR(SEARCH(A2;$C$1));"";B2)
=KDYŽ(JE.CHYBHODN(HLEDAT(A2;$C$1));"";B2)

Konkrétne SUMIF()
=SUMIF(A2:A7;"*"&D2&"*";B2:B7)
Dajme tomu, že v D2 máte to čo chcete hľadať a zrátať.

SUMIFS()
=SUMIFS(B2:B7;A2:A7;"*"&D2&"*";C2:C7;"a")
V stĺpci C je ďalšia podmienka pre SUMIFS.

Sub posun_radek_sloupec()
Dim RNG As Range, Bunka As Range, Pocet As Long

Application.ScreenUpdating = False

For Each Bunka In Columns("D:D").SpecialCells(xlCellTypeBlanks).Offset(0, -1).Cells
Bunka.Copy Bunka.Offset(-Pocet, -1)
Pocet = Pocet + 1
If Pocet = 1 Then Set RNG = Bunka.Resize(, 2) Else Set RNG = Union(RNG, Bunka.Resize(, 2))
Next Bunka

RNG.Delete Shift:=xlShiftUp

Application.ScreenUpdating = True
End Sub

A ešte je možnosť použiť aj na nájdenie poslednej jedničky nematicový vzorec:
=INDEX(ROZSAH_DATUM;;LOOKUP(2;1/(ROZSAH_DAT=1);COLUMN(ROZSAH_DATUM)-6))+6
=INDEX(ROZSAH_DATUM;;VYHLEDAT(2;1/(ROZSAH_DAT=1);SLOUPEC(ROZSAH_DATUM)-6))+6

Tú chybu Vám dá, ak použijete maticový vzorec obyčajným stlačením Enter. Maticový vzorec sa zadáva Ctrl+Shift+Enter. Je určený na to, aby našiel poslednú jedničku v prípade, že nejdú po sebe, ale že sú medzi nimi medzery.
Naopak ten druhý vzorec, je obyčajný (nematicový), a počíta s tým, že jedničky idú po sebe, v jednej jedinej skupine v riadku.
Máte si len vybrať, lebo nevieme, ako presne zapisujete dáta.

Mám nové auto. A div sa svete, nieje na ňom všetko lepšie ako na starom (rovnaký model). Teda odpoveď znie : Samozrejme! Vždy môže byť niečo "špatně". Ale pokiaľ nepoviete, čo je zle, ja to hľadať nebudem. Tu máte oba varianty. červený je matica, zelený je normál vzorec. Zodpovedajú Vami požadovaným výsledkom. Tak priložte príklad, nech sa to upraví.

Pre prehľadnosť si nadefinujte 2 Definované názvy:
ROZSAH_DATUM
=OFFSET(List1!$G$2;;;;COUNT(List1!$3:$3))
=POSUN(List1!$G$2;;;;POČET(List1!$3:$3))

a ROZSAH_DAT
=OFFSET(ROZSAH_DATUM;ROW()-2;)
=POSUN(ROZSAH_DATUM;ŘÁDEK()-2;)


Štart nájdite napr (obyčajný vzorec : Enter):
=INDEX(ROZSAH_DATUM;;MATCH(1;ROZSAH_DAT;0))
=INDEX(ROZSAH_DATUM;;POZVYHLEDAT(1;ROZSAH_DAT;0))

End nájdite (maticový vzorec : Ctrl+Shift+Enter):
=INDEX(ROZSAH_DATUM;;MAX(IF(ROZSAH_DAT=1;COLUMN(ROZSAH_DATUM);0))-6)+6
=INDEX(ROZSAH_DATUM;;MAX(KDYŽ(ROZSAH_DAT=1;SLOUPEC(ROZSAH_DATUM);0))-6)+6


Ak sú jedničky vždy za sebou, a tvoria iba jednu oblasť, tak potom (normálny vzorec : Enter)
=D5+COUNTIF(ROZSAH_DAT;1)*7-1

Tak teda ešte raz. Tu máte všetky 3 verzie funkčné. Každá verzia má svoj list aj svoj modul s makrami. Nechajte si len ktorú chcete. Máte tam popis ako sa používajú, pridávajú, upravujú.

K predošlej otázke, ktorá je ale už irelevantná:
Ak sa jedná o F:G (susedné stĺpce), tak to fungovať musí
With .Range("F:G").Resize(R)
.Value = .Value
End With

Ak sa jedná o nesúvislé stĺpce napr. E a G tak treba obdobné makro zopakovať 2x.
With .Range("E:E").Resize(R)
.Value = .Value
End With

With .Range("G:G").Resize(R)
.Value = .Value
End With


Každopádne si vyberte ale verziu, kde nemusíte makro upravovať. Dá sa tam ešte doplniť kontrola nezadania parametrov a pod.

Tu máte príklad, ako by to šlo riešiť. Najväčšia komplikácia je, odkiaľ zobrať a ako poslať makru zoznam stĺpcov na mazanie a zoznam stĺpcov na prevod vzorcov na hodnoty. Určite sa to nebude riešiť kopírovaním rovnakého makra iba so zmenenými stĺpcami pre každé tlačítko zvlášť.

Takže je tu parametrizovaná procedúra ExportList(), kde parameter:

Tlacitko - je "Application.Caller", teda identifikátor tlačítka, ktoré bolo stlačené. Na ktorom riadku sa tlačítko nachádza nieje problém potom zistiť, podľa bunky v ktorej je (TopLeftCell). A aj keď si potom prečítame z A:A podľa toho názov listu, ktorý treba spracovať, je nám to prd platné, keď chcete mať rôzne nastavenia pre rôzne listy.

Vzorce - zadávate v ňom názvy stĺpcov oddelené čiarkami, ktoré chcete previesť na hodnoty, teda napr. "E,G"

Mazat - to isté čo Vzorce, len ide o mazanie hodnôt.

Toto riešenie síce zníži rozsah makier, ale stále vyžaduje zásah do makier, a pridanie nového volajúceho makra a priradenie tohto makra novému tlačítku pri pridaní nového listu do zoznamu.

Lepšie by bolo to riešiť tak, aby ste nemusel do makra vôbec ísť. Ponúka sa pridať do zoznamu vedľa 2 stĺpce, kde bude v bunkách k daným listom uvedené ktoré stĺpce sa majú prevádzať, a v ďalšom stĺpci bude uvedené, ktoré stĺpce sa majú mazať. Makro by si tieto infošky prečítalo samé, a nič by ste nemusel pri pridaní listu v makrách meniť. Len skopírovať tlačítko na nový vyplnený riadok.

Ďalšou možnosťou ako použiť parametrizovanú uni-procedúru by bolo, keby ste mal 1 výberový zoznam a 1 tlačítko. To by volalo procedúru vždy so správnymi parametrami, uvedenými v nastavovacej tabuľke.

Dúfam, že ma chápete. Povedzte, ako to chcete, nech to neprerábam X krát.

Pridal som pre ukážku ako by to mohlo vyzerať listy Seznam2 a 3. Sú nefunkčné, to len pre pochopenie.

Šmarjá, treba si ujasniť pojmy.
1. Na iný list sa odkážete
Worksheets("Meno listu").Range("A1").Value = "Hello World!"
2. Koľko listov sa má naraz kopírovať do iného súboru ?
3. Ovládanie bude teda z nejakého riadiaceho listu ?
4. Raz vravíte o stĺpcoch F a H (tam som sa ja pomýlil a dal F a G), potom vravíte o E a F. Tak ešte raz, ktoré stĺpce ?
5. Zmazať vzorce ??? Čo tým myslíte ? Snáď myslíte prekonvertovať vzorec na jeho výsledok, tak ako je to teraz.
6. Čo znamená zmazať stĺpce N a O? Vymazať ich obsah (ako s Delete), alebo ich odstrániť úplne, teda zvyšok tabuľky sa posunie doľava ?
7. Stĺpce majú hlavičky, alebo akékoľvek iné odsadenie od vrchu listu ? Ak áno, koľko riadkov ?
8. Ktorý stĺpec sa dá použiť na určenie výšky dát ? Alebo je to variabilné ?
9. Ak sa to má hneď uložiť, odkiaľ sa má brať názov súboru a cesta ? Má sa Vás to opýtať na cestu a názov ?
10. Ak pôjdu tie listy samostatne ukladať, tak sa má pýtať na meno a umiestnenie pre každý list zvlášť ?
11. Nereagoval ste na ten príklad so stĺpcom P. Teda ak zmažete/odstránite stĺpce N a O, nie sú na ne náhodou naviazané nejaké vzorce ?
...
Treba aj nad zadaním stráviť nejaký čas...
a priložiť príklad.

Ukážka aj s príkladom, čo sa udeje, ak to nedomyslíte v stĺpci P.

Lebo mu chýba list 0. Písal som Vám to aj na druhom fóre. Budeme ale pokračovať na tomto, je to tu pohodlnejšie.

Nesťahujem, ale ak je to to isté ako
http://www.jaknaoffice.cz/2-forum/?id=5894, tak platí to isté - príloha s chybou.

Skúste použiť vedľa pomocný stĺpec zo vzorcom, a zoraďujte ho od najväčšieho v druhej úrovni :
=IF(I2<0;1000000000;1000000000000000)-ABS(I2)
=KDYŽ(I2<0;1000000000;1000000000000000)-ABS(I2)

Hmm ? Tak zasa jedna logická ... Ako sa môže vybraním druhého ECE prepísať tabuľka ECE danými hodnotami z inej očíslovanej zdrojovej oblasti, keď predsa ak už je ECE zvolená inde, tak nikde inde nesmie byť táto voľba prístupná ?! To isté CCC. Po voľbe nejakej ECE zostane všade dostupná len voľba CCC. Tú vyberiem, a mám doplnené obe horné tbl. A koniec. Lebo žiadna spodná zdrojová už neobsahuje v rozbaľovacom menu nič - nesmie.

EDIT: Urobil by som to asi presne opačne, a to tak, že by sa vyberalo pri horných tabuľkách ECE a CCC (napr. v B1 a E1), ktorá že spodná má byť zdroj.

EDIT: Príklad bez makra v prílohe. Len jednoduchý výberový zoznam, ale tuším, že takéto jednoduché to určite nebude :)


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

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse