Nejsem si jistý, ale podle mě to je správně. Položky jsou duplicitní jen podle sloupce B, ale při třídění bere v úvahu celou oblast DRUHA a tam jsou např. u hodnoty "a" (ve sloupci B) jiná čísla ve sloupcích C a D. Takže ač název se zdá být stejný, nejsou stejné hodnoty. Takže podle mě není "a" jako "a" protože se liší sloupcem C a D.
hmmm, tak asi to tak není
Myslím, že všichni chápou, co potřebuješ, ale asi nikdo neporadí, když tu nedáš vzorovou tabulku. Nikdo totiž neví, jak vypadá to "7.8. přidal na sklad 2ks kodu 123". Nepíšeš ani do jakého sloupce a jakým způsobem zapisuješ přírůstek (asi kladné číslo) a jak odebrání ? Záporné ve stejném sloupci nebo kladné v jiném sloupci ?
Dej vzor a na sto procent ti tu někdo poradí. Takhle asi ne.
edit:
něco jsem si možná nedočetl nebo se v tom ztratil, sloupce popisuješ, přesto si myslím, že vzor by byl dobrý.
Palooo napsal/a:
tu som este dorobil to opravovanie datumu ale ked bude 5.5 - 4.5.2014 .... tak k tomu priradi 2014 rok a nie 2013 ... to sa mi uz nechcelo dorabat :)Příloha: 20964_sort2.zip
tak, excel 97-2003 nezná fci EOMONTH, tedy poslední den příslušného měsíce. Vytvořil jsem ji jinak, takže tím by mělo být odstraněno to že nefunguje při změně měsíce. použito ve vzorcích A2:A32.
31 už to taky zvolí, jen jsem upravil rozsah generovaných náhodných čísel.
Doplněné a upravené.
vzorce nebyly roztažené až do řádku 32, ale jen 29.
upravené makro, aby nebyl možný požadavek více náhodných výběrů, než je počet dnů a vyloučení vynulování B1, k čemuž opravdu mohlo dojít, ale mě se to ani jednou nestalo, až na tvém xls.
upraivl jsem jen vzorec. mě to funguje nevím jak je možné, že by to mazalo B1, v kodu nic takového není.
upravený vzorec:
=KDYŽ(ŘÁDEK(A2)>DEN(EOMONTH(DATUM($C$1;$B$1;1);0));"";KDYŽ(DENTÝDNE(DATUM($C$1;$B$1;ŘÁDEK(A2)-1);2)>5;"";ŘÁDEK(A2)-1))
edit:
ještě oprava vzorce:
=KDYŽ(ŘÁDEK(A2)-1>DEN(EOMONTH(DATUM($C$1;$B$1;1);0));"";KDYŽ(DENTÝDNE(DATUM($C$1;$B$1;ŘÁDEK(A2)-1);2)>5;"";ŘÁDEK(A2)-1))
do A2 dej vzorec:
=KDYŽ(DENTÝDNE(DATUM($C$1;$B$1;ŘÁDEK(A2)-1);2)>5;"vikend";ŘÁDEK(A2)-1)
a zkopírovat až do A32
do C1 rok, např. 2014
do B1 měsíc, např. 8
do C2 zadej požadovaný počet náhodných výběrů , např. 5
a do listu vložit makro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Row = 2 Then
k = Range("C2")
Dim CisloNeduplicitni As New Collection
Range("B2:B32").ClearContents
If k < 1 Then Exit Sub
On Error Resume Next
While CisloNeduplicitni.Count < k
xx:: m = Int(Rnd() * 31) + 1
If IsNumeric(Cells(m, "A")) Then
CisloNeduplicitni.Add m, CStr(m)
Else
GoTo xx
End If
Wend
For x = 1 To k
Cells(CisloNeduplicitni(x), "B") = CisloNeduplicitni(x) - 1
Next
On Error GoTo 0
End If
End Sub
něco takového ?
může to být nějak tak nebo s fcí jak píše Pavlus
bunky jsem umístil jinak, ale to je jedno
Vy máte v JEDNÉ buňce seznam o 6000 řádcích ?
poněkud větším vzorce, ale nevím, jestli je to to pravé
ws.Range("A56:B68").Sort ws.Range("B56"), xlDescending
oblast je nastavena na 13 řádků
Šlo by to tak, ale předpokládám nějaké rychlejší řešení. Jde o to, jak často má makro "makat" jestli je to jen občasné hledání. Při tisíci řádcích to bude asi chvilku trvat.
Columns(4).HorizontalAlignment = xlCenter
Columns(4).VerticalAlignment = xlCenter
v tomto případě sloupec 4 tedy "D"
Zřejmě adresování. Absolutní nebo relativní je třeba upravit.
Relativní se mění s kopírováním, Absolutní ($) je neměnné.
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.