Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  106 107 108 109 110 111 112 113 114   další » ... 302

Perfiš. A aj to sa dá zjednodušiť a odmaticovieť:
=IF(ISNUMBER(A2);A2/10^(MATCH(0;MOD(A2;10^{0;1;2;3}))-1);"")
=KDYŽ(JE.ČISLO(A2);A2/10^(POZVYHLEDAT(0;MOD(A2;10^{0;1;2;3}))-1);"")

Namiesto tej 0 vo funkcii MAX tam dajte ešte obmedzenie
...
LEN(VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0))-3
...


EDIT:
Ak tomu dobre rozumiem, malo by stačiť podľa inšpirácie marjankaj aj kratšie:
=IF(ISBLANK(B5);" "; VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0)/10^(3-MAX(0;LEN(VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0)/10^3)-5)))
=KDYŽ(JE.PRÁZDNÉ(B5);" "; SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0)/10^(3-MAX(0;LEN(SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0)/10^3)-5)))


Teda pre názornosť marjankajov vzorec po úprave:
=A1/10^(3-MAX(0;LEN(A1/10^3)-5))
=A1/10^(3-MAX(0;DÉLKA(A1/10^3)-5))

opravte ma prosím ak sa mýlim.

EDIT 2:
Tak opravujem sa sám, môj predošlý vzorec je na prd, vracia zlé výsledky, ak je číslo bez núl kratšie ako 7 alebo ak je číslo s nulami kratšie ako 5.

každopádne Marjankajove riešenie funguje bezchybne. Upravené iba na 3 nuly:
=A1/10^LEN(A1)*10^MAX(LEN(A1)-3;LEN(A1/10^LEN(A1))-2)
=A1/10^DÉLKA(A1)*10^MAX(DÉLKA(A1)-3;DÉLKA(A1/10^DÉLKA(A1))-2)


Teda Váš vzorec bude
=VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0)/10^LEN(VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0))*10^MAX(LEN(VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0))-3;LEN(VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0)/10^LEN(VLOOKUP(B5; Zpian!$F$6:$AC$10001;5;0)))-2)
=SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0)/10^DÉLKA(SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0))*10^MAX(DÉLKA(SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0))-3;DÉLKA(SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0)/10^DÉLKA(SVYHLEDAT(B5; Zpian!$F$6:$AC$10001;5;0)))-2)

Končím "výskum" 1

Tu je teda jedno z riešení.

OT:No vidím, že sme včera viacerí "nemali čo v noci robiť" :) Ja som pri tom zaspal. keď som sa zobudil, v bunke napísaných asi 200 písmen "C" 9 Komentáre som písal v polospánku, teraz som ich ráno skontroloval, no čo som tam preklepov nasekal, evidentne som už na to nevidel. Teraz by v nich snáď mali byť už len gramatické chyby, lebo česká gramatika mi robí niekedy problém.

Maticový vzorec ? (Ctrl+Shift+Enter)
=INDEX(N1:N7&","&O1:O7;MATCH(MAX(COUNTIFS(N1:N7;N1:N7;O1:O7;O1:O7));COUNTIFS(N1:N7;N1:N7;O1:O7;O1:O7);0))
=INDEX(N1:N7&","&O1:O7;POZVYHLEDAT(MAX(COUNTIFS(N1:N7;N1:N7;O1:O7;O1:O7));COUNTIFS(N1:N7;N1:N7;O1:O7;O1:O7);0))

Poskytnite aspoň čiastočný súbor, kde budú tie 2 listy, nejakých pár vymyslených údajov. Citlivé data nepotrebujeme. Ale presné rozloženie áno. To sa bez prílohy robí veľmi zle, navyše keď ako sám vravíte, to Vaše makro nemusí byť vôbec smerodajné, čo sa týka určenia pohyblivých častí adries.

@ Tom12345 :
Dajte si do pomocnej bunky
=B2&CHAR(10)&B3&CHAR(10)&B4&CHAR(10)&B5&CHAR(10)&B6&CHAR(10)&B7&CHAR(10)&B8&CHAR(10)&B9&CHAR(10)&B10
=B2&ZNAK(10)&B3&ZNAK(10)&B4&ZNAK(10)&B5&ZNAK(10)&B6&ZNAK(10)&B7&ZNAK(10)&B8&ZNAK(10)&B9&ZNAK(10)&B10

alebo v nových Office 2019
=TEXTJOIN(CHAR(10);TRUE;B2:B10)
=TEXTJOIN(CHAR(10);PRAVDA;B2:B10)

a v textovom poli sa odkazujte na túto pomocnú bunku. S pomocou CHAR(10) budú pod sebou, s pomocou napr. "," budú oddelené čiarkou za sebou.

=INDEX(D20:O20;;LOOKUP(2;1/(D33:O33<>0);COLUMN(D33:O33)-3))
=INDEX(D20:O20;;VYHLEDAT(2;1/(D33:O33<>0);SLOUPEC(D33:O33)-3))

alebo
=INDEX(D20:O20;;LOOKUP(2;1/(D33:O33<>0);{1\2\3\4\5\6\7\8\9\10\11\12}))
=INDEX(D20:O20;;VYHLEDAT(2;1/(D33:O33<>0);{1\2\3\4\5\6\7\8\9\10\11\12}))

analogicky urobíte aj ten vertikálny:
=INDEX(C21:C32;LOOKUP(2;1/(P21:P32<>0);{1;2;3;4;5;6;7;8;9;10;11;12}))
=INDEX(C21:C32;VYHLEDAT(2;1/(P21:P32<>0);{1;2;3;4;5;6;7;8;9;10;11;12}))

To je predsa pre to, že to makro, ako som napísal, je robené na data, ktoré UŽ MAJÚ PRIDANÝ STĹPEC "N" "Inštrumentárka". Teda pri preformátovaní sa odoberie všetkému formát pomocou ClearFormats, a následne sa nastaví pre potrebné stĺpce formát času. Tak ste to aj mala, len som to posunul, lebo je tam pridaný stĺpec "N". Teda na čas sa preformátuje O:W. Nie N.
Tak aké je teda rozloženie stĺpcov?

"Karásková Zuzana" ??? Nič také tam nieje.
"odstranit 5. prázdný řádek" ??? Opäť nič také v prílohe neexistuje.
Rozumiem iba jedinej veci, chcete pridať ďalšieho manipulanta. Čo vymazať netuším. No a mazanie prázdnych riadkov v plánoch, je bez makra nerealizovateľné, lebo tabuľky sa vzorcami posúvať nedajú.
Treba lepší popis s korešpondujúcou prílohou.

No kým som to urobil, dala ste novšiu prílohu. Pozrite či to sedí aj na tú novšiu. Robil som to na tú o 9:11. Je to aj s tým pridaným stĺpcom, ktorý má byť podľa Vás za M->O, ale za M je N :)
Tiež sa dátum neťahá z A2 do J2, ale z A3 do J1.

To je moje makro, pamätám si na to. Píšete, že sa Vám zmenili podmienky. No dobré by bolo vysvetliť čo sa všetko zmenilo, a hlavne z čoho sa zmenilo (pôvodné). Ja keď sa pozriem na makro, čo robí, tak mi to nesedí s týmito dátami hneď z kraja. Testuje sa buka A1 na hodnotu "Cas", a vkladá sa riadok, prepočíta sa počet dátových riadkov. V týchto dátach je ale bunka A1 "Názov". Skrývanie stĺpcov tam je do kódu evidentne doplnené, rovnako ako formátovanie dátumočas na konci. Priložte aj pôvodné. Ja to niekde medzi tisíckami súborov, ale kto to bude hľadať :)
Podľa mňa to po lepšom popise a pochopení sa, nebude prob.

Toto bude rýchlejšie ako GetObject. Vytvorí si to dočasne definovaný názov, vypočíta, zmaže:
Sub Test2()
Dim Subor As String, Cesta As String, List As String, Stlpec As String, Posledny As Long

Cesta = "Z:\"
Subor = "Dostupnost.xlsx"
List = "Ověření"
Stlpec = "$B:$B"

With ThisWorkbook
On Error Resume Next
.Names("POSLEDNY_R").Delete
On Error GoTo 0
.Names.Add "POSLEDNY_R", "=LOOKUP(2,1/('" & Cesta & "[" & Subor & "]" & List & "'!" & Stlpec & "<>""""),ROW($A:$A))"
Posledny = ExecuteExcel4Macro("'" & .FullName & "'!" & "POSLEDNY_R")
.Names("POSLEDNY_R").Delete
End With

MsgBox Posledny
End Sub


a nemôžem zabudnúť na moje obľúbené "dolovanie dát" cez vzorec vložený do určenej bunky, prečítaný a zmazaný (to bude asi ešte rýchlejšie):
Sub Test3()
Dim Subor As String, Cesta As String, List As String, Stlpec As String, Posledny As Long

Cesta = "Z:\"
Subor = "Dostupnost.xlsx"
List = "Ověření"
Stlpec = "$B:$B"

With ThisWorkbook.ActiveSheet.Range("A1")
.Formula = "=LOOKUP(2,1/('" & Cesta & "[" & Subor & "]" & List & "'!" & Stlpec & "<>""""),ROW($A:$A))"
Posledny = .Value
.Clear
End With

MsgBox Posledny
End Sub

Možno by bolo lepšie použiť iba jeden skrytý maticový stĺpec na výpočet indexu, a ostatné už normálne vzorce.

Neviem, aké presne použitie máte na mysli. Ak vzorcom s pevným umiestnením súboru, tak normálne predsa funguje VLOOKUP/SVYHLEDAT. Ak počas behu iného makra chcete vo VBA dohľadať z iného variabilného zošitu hodnotu funguje toto dole. Upresnite.

Matica? KT?


Strana:  1 ... « předchozí  106 107 108 109 110 111 112 113 114   další » ... 302

Uživatelské menu

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

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje