Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  120 121 122 123 124 125 126 127 128   další » ... 286

Dalo by sa aj:
=VLOOKUP(F17;$K$3:$R$12;MATCH(C17;$L$2:$R$2;0)+1;FALSE)
=SVYHLEDAT(F17;$K$3:$R$12;POZVYHLEDAT(C17;$L$2:$R$2;0)+1;NEPRAVDA)

https://www.extendoffice.com/sk/documents/excel/771-excel-fill-blank-cells-with-value-above.html

Žiaľ nemám žiadnu literatúru k doporučeniu :(
Ale ani som nehľadal.
Ja som si vo VBA vystačil s netom. Ale zase aké také "programátorské" myslenie som mal naučené ešte z čias Delphi na Pentium I/II, či dokonca z Basicu a Assembleru na PMD-85 :)
Dnes sú určite lepšie možnosti ako kedysi. Takmer na všetko nájdete odpoveď pri zadaní EN dotazu v Googli.
V CZ napr. táto stránka, je tu všetkého mraky. Alebo office.lasakovi.
Z EN napr. stránky rondebruin alebo stackoverflow ...

Napr. takto:
Dim S(), Pocet As Long

Sub Zoznam_MP3()
Dim FSO As Object, fsoAdresar As Object, Cesta As String, T()

Pocet = 0 'Výmaz prípadných predošlých výsledkov v poli
Erase S

With wsMP3
Cesta = .Cells(1, 3).Value
If Right$(Cesta, 1) <> "\" Then Cesta = Cesta & "\" 'Kontrola cesty
If Len(Cesta) < 3 Or Len(Dir(Cesta, vbDirectory)) = 0 Then MsgBox "Chybná cesta :" & vbNewLine & Cesta, vbExclamation: Exit Sub

Set FSO = CreateObject("Scripting.FileSystemObject") 'Vytvorenie prístupu k súborom
Set fsoAdresar = FSO.getFolder(Cesta)

Call ZoznamSuborov(fsoAdresar) 'Načítaj prvý adresár

Application.ScreenUpdating = False
With .Columns(1)
.ClearContents 'Vymaž starý zoznam
Select Case Pocet 'Podľa počtu súborov v poli toto pole prevráť cyklom alebo transponuj (nedá sa transponovať viac ako 32767 prvkov)
Case Is > 32767: ReDim T(1 To Pocet, 1 To 1) 'Prevráť
For i = 1 To Pocet
T(i, 1) = S(i)
Next i
.Resize(Pocet).Value = T
Case Is > 0: ReDim Preserve S(1 To Pocet) 'Uprav správnu veľkosť a transponuj
.Resize(Pocet).Value = Application.Transpose(S)
End Select
End With
Application.ScreenUpdating = True

MsgBox "Počet súborov *.mp3 :" & vbNewLine & Pocet, vbInformation
End With

Erase S: Set FSO = Nothing: Set fsoAdresar = Nothing
End Sub

Sub ZoznamSuborov(ByRef fsoAdresar As Object) 'Rekurzívna metóda
Dim fsoSubor As Object, fsoPodAdresar As Object, PocS As Long

With fsoAdresar
PocS = .Files.Count 'Zisti počet súborov v aktuálne skúmanom adresári/podadresári
If PocS > 0 Then
ReDim Preserve S(1 To Pocet + PocS) 'Navýš jednorázovo pole, aj keď nebude využité

For Each fsoSubor In .Files 'Prejdi všetky súbory
If LCase(Right$(fsoSubor.Name, 4)) = ".mp3" Then 'Skontroluj príponu *.mp3
Pocet = Pocet + 1 'Navýš index v poli názvov
S(Pocet) = fsoSubor.Path 'Zapíš cestu súboru
End If
Next fsoSubor
End If

For Each fsoPodAdresar In .subFolders 'Prehľadaj aj prípadné podadresáre
Call ZoznamSuborov(fsoPodAdresar) 'Načítaj podadresár
Next fsoPodAdresar
End With

Set fsoPodAdresar = Nothing: Set fsoSubor = Nothing
End Sub

Ale prečo by to nefungovalo ???

Tak vymazať alebo preniesť ? Asi preniesť.
Tým extra súborom je myslený skutočne iný súbor, alebo len iný list ? (Ľudia v tom majú bežne chaos).
Ten súbor/list už existuje (ako sa volá, v prípade súboru aj kde sa nachádza) ? Ak áno, tak pridať dáta k už existujúcim za ne, alebo nahradiť tie čo tam už sú ?
Treba testovať od prvej bunky až po poslednú použitú v danom stĺpci, alebo je pevne daný rozsah (napr. objektom Tabuľka)?
Treba kopírovať aj formát (ohraničenie, farba a pod ...), alebo iba hodnoty do prednaformátovaných buniek ?
...

Príloha?

EDIT: Malý príklad prenosu dát do iného listu. Ak by hrozilo viac ako 32767 prenášaných riadkov, treba prirobiť ešte preklápací cyklus.

"Počet výskytov" a "Počet jedinečných hodnôt" je veľký rozdiel.
Počet jedinečných podľa 2 podmienok, by sa dal takto:
=SUM(--(COUNTIFS(OFFSET(E8:E14;;;ROW(E8:E14)-1);J8;OFFSET(F8:F14;;;ROW(F8:F14)-1);K8;OFFSET(D8:D14;;;ROW(D8:D14)-1);IF((E8:E14=J8)*(F8:F14=K8);D8:D14))=1))

=SUMA(--(COUNTIFS(POSUN(E8:E14;;;ŘÁDEK(E8:E14)-1);J8;POSUN(F8:F14;;;ŘÁDEK(F8:F14)-1);K8;POSUN(D8:D14;;;ŘÁDEK(D8:D14)-1);KDYŽ((E8:E14=J8)*(F8:F14=K8);D8:D14))=1))


Išlo by doplniť aj ďalšie podmienky (neskúšal som, teoretizujem), ale dajte reálny príklad, kde bude potreba viacero podmienok. Ak bude potreba variabilný počet podmienok, bez zmeny vzorca, tak to tato nepôjde. Len pevný počet podmienok, prípadne vždy zmeniť vzorec.

Riešením by mohol byť aj takýto vzorec:
=IFERROR(MATCH(TRUE;MMULT(COUNTIF(OFFSET(OBLAST;ROW(OBLAST)-2;;1);TRANSPOSE("*"&HLADAJ&"*"));--(ROW(HLADAJ)>0))>0;0);"")

=IFERROR(POZVYHLEDAT(PRAVDA;SOUČIN.MATIC(COUNTIF(POSUN(OBLAST;ŘÁDEK(OBLAST)-2;;1);TRANSPOZICE("*"&HLADAJ&"*"));--(ŘÁDEK(HLADAJ)>0))>0;0);"")

Podľa mňa to bude OK cez tú KT...

Okrem vyššie spomínaných môžete použiť aj ďalšie spôsoby naväzujúce na fakt, že tam máte smerodajný dátum, podľa ktorého môžete vyhľadávať hodnoty. Najvyšší dátum = posledná hodnota. Zakomponoval som tam výber stĺpca pomocou Overenia dát.

Zatiaľ som urobil jeden príklad tak, že sa hľadané hodnoty proste iba pridávajú a uberajú počtom oddelených parametrov funkcie. Dalo by sa to prerobiť aj na oblasť hodnôt ako jeden parameter. Popis je v makre. Je tam príklad v makre "Priklad" aj ďalší na použitie ako UDF v liste.
Pozrite si popis, doplňte požiadavky, a najlepšie priložte aj prílohu.

Napr. neviem, čo to má vracať, ak nenájde nič, čo má urobiť pri chybe parametrov, pole horizontálne/vertikálne, čo ak bude oblasť viacoblastná (multiareas), ...

Nejaký ten príklad. Nieje to merná minca, len pár návrhov. Každopádne by som na Vašom mieste používal radšej nejakú rozumne definovanú oblasť, ako celý stĺpec s miliónom riadkov a ešte vylučovaním prvého riadku...

To pomocou Find možné nieje. Použil by som InStr() v cykle nad poľom. Ak si nebudete vedieť rady, pozriem na to ak bude čas.

1. Ide iba o nájdenie prvej spĺňajúcej bunky ?
2. Počet parametrov je dynamický či statický ?
3. Parametre sa berú z premenných, alebo to chcete dostať do nejakej bunky pomocou UDF a parametre sú odkazy na bunky ?

Teda nedozvedeli sme sa:
-Koľko bude +- kategórií
-Koľko bude +- max položiek na kategóriu
-Čo ešte obsahuje tá tabuľka kategórií/položiek ? Pochybujem, že je to len takto. Nieje tam náhodou napr. cena, balenie, stav skladu, popis, ... ?

Priložte reálne vyzerajúcu prílohu. Ak nechcete zverejniť reálne názvy položiek, tak ich zmente. Ponechajte ale typ, rozumné množstvo, rozloženie...

Tieto informácie sú potrebné na nasimulovanie a vyskúšanie toho, čo bude ešte dopočítateľné maticovými vzorcami v RealTime, a čo už bude lepšie riešiť občasnou aktualizáciou napr. KT.

Primárne je to určené samozrejme na premenovanie súborov, nie na zmenu prípony, čo vo väčšine prípadov znamená nutnosť konverzie súboru na daný typ. A to sa asi deje u Wordu. DOC nieje DOCX, je to iná štruktúra dokumentu. To že to Word dokáže otvoriť viac druhov súborov, je tak naprogramované, to neznamená, že sú súbory rovnaké. Podobnosť XLS a XLSX je
a) asi väčšia ako Doc vs. Docx
b) alebo je Excel naprogramovaný tak, že si sám zistí bez ohľadu na príponu Xls/Xlsx, podľa štruktúry súboru, ako ho má spracovať.
Tomuto sa vôbec nemôžete čudovať.


Strana:  1 ... « předchozí  120 121 122 123 124 125 126 127 128   další » ... 286

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

Relativní cesta - zdroje Power Query

Alfan • 25.4. 10:49

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 10:47

Relativní cesta - zdroje Power Query

Alfan • 25.4. 10:40

Relativní cesta - zdroje Power Query

Alfan • 25.4. 9:44

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 9:02

Vynásobit hodnoty kurzem - Power Query

elninoslov • 25.4. 8:40

Relativní cesta - zdroje Power Query

Alfan • 25.4. 8:04