Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  171 172 173 174 175 176 177 178 179   další » ... 298

Hmmm, no ja by som sa s tým aj pohral ... ale nechce sa mi ... no dobre teda ... tak len trošku ... 5

Pr.

Ale má to obmedzenia, viď popis. Bolo by lepšie to urobiť tak, že si súčty a odpady a balíky dáte na začiatok tabuľky, nie na koniec. Prípadne si to otočiť zvislo a a rovnako počty pred tabuľku.

1. variant - pri označení bunky v B:C sa posunie tlačítko k danému riadku k hodnotám. Stlačením sa zobrazí editovacie okno. "C" môžete aj schovať ak ho nechcete vidieť.

2. variant - Okno na zmenu hodnôt sa zobrazí pri dvojkliku na bunku s hodnotami v "I"

Nechce sa mi viac vychytávať muchy, ak neviem presne čo a ako chcete. Priložte manuálne vytvorenú prílohu ako si predstavujete výsledok. Kľudne to aj nakreslite v skicári :)

xlnc napsal/a:

...(teď se někdo jistě kousne a dá sem řešení :-)...
9
Sakriš, v noci o 1:02 som dokončil makierko na import dát z jedného súboru aj s konvertom. Len sa mi to sem nechcelo už dávať ...

Inak Vy tam nepotrebujete vkladať vzorce. Veď Vás zaujíma iba DATE / TIME / SOUND.

Terazky to sem už nemôžem dať. Mám tu na stole veľmi podobnú problematiku už rok, vôbec to nehorí, ale možno sa teraz dokopem s tým aj pohnúť 5 ...

fasd39 : xlnc je profík, skúste sa s ním dohodnúť.

No a na niekoľko viet v bunke je už potreba UDF.

Napr takouto UDF, ale treba ju ešte doošetriť napr. na to, aby preskočila bunku,ktorá je zároveň parameter.
Function HLADAJ_BUNKU(Co As Variant, Optional Typ As Byte = 1) As Variant
Dim Bunka As Range, WS As Worksheet, CX As Long, CY As Long

On Error GoTo KONIEC:
With ActiveWorkbook
With Worksheets(1)
CY = .Rows.Count: CX = .Columns.Count
End With

For Each WS In .Worksheets 'Prehľadá všetky listy
With WS
Set Bunka = .Cells.Find(What:=Co, After:=.Cells(CY, CX), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
End With
If Not Bunka Is Nothing Then Exit For
Next WS
End With

If Not Bunka Is Nothing Then
Select Case Typ
Case 1: Set HLADAJ_BUNKU = Bunka 'Odkaz na bunku
Case 2: HLADAJ_BUNKU = Bunka.Address 'Adresa bunky
Case 3: HLADAJ_BUNKU = Bunka.Parent.Name 'List bunky
Case 4: HLADAJ_BUNKU = Bunka.Worksheet.Parent.Name 'Zošit bunky
Case 5: HLADAJ_BUNKU = Bunka.Address(External:=True) 'Celá cesta
Case 6: HLADAJ_BUNKU = Bunka.Row 'Súradnica Y - riadok
Case 7: HLADAJ_BUNKU = Bunka.Column 'Súradnica X - stĺpec
End Select
Else
HLADAJ_BUNKU = CVErr(xlErrNA) 'nenájdené
End If

KONIEC:
If Err.Number <> 0 Then HLADAJ_BUNKU = CVErr(xlErrValue) 'iná chyba
Set WS = Nothing: Set Bunka = Nothing
End Function

Myslím, že tak ako navrhujete, to bude asi najschodnejšie.

Neviem, ako toto pomôže. Skúste to rozvinúť. Neviem ako získať z práve zmenenej bunky naformátovanej ako čas (teda číslo) informáciu o tom, či bolo zadané:
• 8,25 - číslo s desatinnou čiarkou, ktorá má byť premenená na ":"
• 8:25 - čas vo formáte "h:mm", čo je tiež desatinné číslo
• 0,350694444444444 -prípadne ešte (to ale nepredpokladám) desatinné číslo, ako skutočné číslo času, reprezentujúce čas "8:25"

Najskôr ste zmienil oblasť dát

...vyhledat v oblasti C1:E357...

potom
...to co chci hledat se může nacházet kdekoliv (v daném sešitě)...

následne
...SOUČIN.SKALÁRNÍ((B1:Z2000=A1)*ŘÁDEK(B1:Z2000))...

Či už {matica} alebo SUMPRODUCT/SOUČIN.SKALÁRNÍ (to je tiež matica), musí mať obmedzený rozsah. Nemôže to pri každom prepočítaní listu hľadať niekoľkokrát v 1048576x16384
=17179869184 buniek, to je výpočtovo neúnosné.
Hľadať v celom zošite pomocou vzorca nieje možné. Navyše vôbec nie univerzálne, pretože ak by aj šiel použiť 3D odkaz na viac listov, tak to určite nepôjde na všetky listy, lebo vzorec nedokáže zistiť mená prvého a posledného listu v hocijakom súbore a následne ich použiť v 3D odkaze.

...odkaz zapsat do buňky A2...

...abych dokázal určit umístění (souřadnice)...

...odkaz(souřadnice) hledané buňky...

- odkaz odkazuje na bunku/oblasť a má typ Range. Ak nazveme odkaz ODKAZ, tak ho môžeme použiť napr. =SUM(ODKAZ)
- umiestnenie (povedzme, že myslíte adresu), ktorá má typ String, teda napr. ak toto umiestnenie nazveme rovnako ODKAZ, použijeme ju =SUM(INDIRECT(ODKAZ))
- súradnice určujú pozíciu X a pozíciu Y, teda sú typu 2x Long. Ak si ich nazveme SURADNICA_X a SURADNICA_Y tak ich môžeme použiť napr. =INDEX(oblasť; SURADNICA_Y; SURADNICA_X)

... i bez přiloženého excelu (který by pouze směřoval ke konkretizaci výsledného vzorce)...

Záleží na tom, čo chcete ďalej s tým robiť, a nie že nie. To je dôležité pre tvorbu riešenia.

Předtím jsem neuvedl, nevím jak moc je to podstatné, že se hodnota bude v oblasti dat vyskytovat právě jednou.

Veľmi podstatné. Matica s funkciou SMALL nájde prvý (alebo X-tý) výskyt hľadanej hodnoty, čo je potrebné v prípade viacnásobného výskytu, kdežto SUMPRODUCT/SOUČIN.SKALÁRNÍ "nájde" všetky a urobí súčet súradníc, teda výsledok je blbosť.
Aspoň toto je uvedené na správnu mieru.

Ak chcete riešenie, ktoré nájde hocičo, kdekoľvek v akomkoľvek zošite s koľkokoľvek riadkami a stĺpcami a v hocijakom počte a názvoch listov, tak jedine makrom, napr. tak, že si umiestnite makro do "Osobného zošitu makier" PERSONAL.XLSB, alebo urobíme doplnok s danou funkcionalitou a ten si doinštalujete do Excelu. Každopádne taká funkcia je neprenosná na iný PC obyčajným prenesení vzorca, ale je potrebné aj makro (PERSONAL.XLSB alebo doplnok).


"elninoslov" napsal/a:

Vy viete čo chcete, ale neviete to dať na papier.
My vieme čo ste dal na papier, ale nevieme čo chcete.

Práve som snáď vymyslel príslovie alebo čo 1

Function UDF_DATUM_SUBORU(Subor As String) As Date
Application.Volatile
UDF_DATUM_SUBORU = FileDateTime(Subor)
End Function

alebo
Function UDF_DATUM_SUBORU2(Subor As String) As Date
Application.Volatile
UDF_DATUM_SUBORU2 = CreateObject("Scripting.FileSystemObject").GetFile(Subor).DateLastModified

End Function
A do bunky si dajte obdobný vzorec, kde E1 je cesta a E12 je súbor:
=UDF_DATUM_SUBORU(E1&E12)

A čo Vám bráni odpovedať na to, na čo sa pýtam ?
Kde je teda reálna príloha ?
Ten vzorec, čo som dal, nieje jednoduchý, a preto, aby sa dal ľahšie čítať sa používa Definovaný názov, ale kľudne si to môžete spojiť do jediného supervzorca, to je na Vás. Rovnako ako reakcie...
Aby ste vedel, ako sa dá vnímať rôznymi spôsobmi to, čo popisujete, tak mrknite na prílohu, čo všetko človek môže z popisu-nepopisu vydedukovať.

Šmarjá ... to je zas iný popis ako na začiatku, a príloha, čo so začiatkom nekorešponduje, a navyše nepriekazná (chýbajú tie "iné stĺpce" čo spomínate).

V buňce A1 bude hodnota(text, číslo)

To znamená, že prehľadávaná tabuľka obsahuje krížom/krážom nepravideľne a nepredvídateľne rozhádzané čísla texty ? Uveďte reálny príklad vyplnenej oblasti C1:E357.
Vy chcete nájsť niekde v oblasti bunku s hodnotou z A1, potom niekde v oblasti bunku s hodnotou z A2, a hodnoty medzi týmito dvomi nájdenými bunkami chcete spočítať ?
Uveďte na príklade s vyplnenými dátami v C1:E357 príklad, kde manuálne vyfarbite, ktorých buniek sa má súčet týkať.
Časom nešetrite, lebo takéto vysvetľovanie akurát odrádza.

Hmm, no ono "nahradiť" tú čiarku dvojbodkou tak, aby vznikol správny zamýšľaný čas nieje problém, rozdelením desatinnej a nedesatinnej časti a použitím TimeSerial(). Ale vidím tam problém, čo ak niekto zadá čas v korektnom formáte 8:25 (nie 8,25)? Vy nájdete v procedúre Worksheet_Change desatinné číslo, ktoré už zodpovedá desatinnému číslu skutočného času, ale to neviete, lebo pre makro to bude zase iba číslo, ktoré treba zmeniť na "správnu" formu čísla času - teda ten čas pokaká. Zatiaľ ma nenapadá možnosť, ako zistiť či bolo zapísané desatinné číslo 8,25, alebo čas 8:25, lebo v oboch prípadoch dostanete až výsledok = desatinné číslo.
Ak ten oddeľovací znak bude iný ako čiarka, tak sa to bude dať identifikovať a spracovať. Ale zase nesmie to byť bodka na EN Office, lebo tá je desatinným oddeľovačom na EN.

No tak to Vám potom z toho všetkého stačí len tá jednoduchá funkcia UDF:
Function UDF_OBSAH_SUBORU(Cesta As String, Subor As String) As String
Dim F As Integer
Application.Volatile
F = FreeFile
Open Cesta & Subor For Input As #F
UDF_OBSAH_SUBORU = Replace(Input(LOF(F), F), vbCrLf, vbNullString)
Close #F
End Function


Strana:  1 ... « předchozí  171 172 173 174 175 176 177 178 179   další » ... 298

Uživatelské menu

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

Menu

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