Ako píše misocko, tak je to najjednoduchšie. Len by som po zoradení použil funkciu OFFSET(POSUN) alebo INDEX.
Ale ak by si chcel iba funkciu, tak si môžeš naprogramovať vlastnú. Algoritmus na QUICKSORT alebo BUBLESORT si vygúgliš.
A vieš to dať do zip alebo rar?
Tu je makro pre jeden zošit.
Sub makro()
Dim rng As Range
Set rng = Range("A2:A" & ActiveSheet.UsedRange.Rows.Count)
Range("A2") = "1"
Range("A2").AutoFill Destination:=rng, Type:=xlLinearTrend
Columns("H:H").Delete Shift:=xlToLeft
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True
' dorobil som hlavičku a pätu
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.CenterHeader = "&F"
.CenterFooter = "&F"
End With
Application.PrintCommunication = True
End Sub
Skúsim aj ja pridať.
Najlepšie je to vlastnou funkciou.
V prílohe sú dva spôsoby. S makrom a bez makra.
Bez makra je to iba na dvoch najlepších kandidátov.
Presne na toto je podmienené formátovanie.
A nestačilo by kliknúť na čísla riadkov v stlpci úplne vľavo?
=max(a-b;0)
alebo
=If(a-b>0;a-b;"")
Namiesto
Sheets.Add.Name = List1.Cells(i, 1)
daj
Sheets.Add after:=ActiveSheet
ActiveSheet.Name = List1.Cells(i, 1)
Možno takto. V zošite by mal byť len jeden list(január)
Sub vloz_list()
Dim mesiac
mesiace = Array("január", "február", "marec", "apríl", "máj", "jún", "júl", "august", "september", "október", "november", "december")
For i = 1 To 11
Sheets(1).Copy After:=Sheets(i)
ActiveSheet.Name = mesiace(i) ' január má index=0
Next i
End Sub
Je pravda, že ja sa už v zadaní strácam. Niekde písal, že chce aby mu to vypísalo aj názov a ten je naľavo od vyhľadávanej hodnoty. Preto som povedal, že SVYHLEDAT nebude stačiť. Iba ak by tie stlpce prehodil.
Mám rád takéto upresňovania.
Mal dať ako má vyzerať celý riadok. A nie to po jednom doplňovať.
Prečítaj si niečo o funkcii VLOOKUP(SVYHLEDAT)
Danú hodnotu hľadá v prvom stlpci, teda v tvojom prípade v stlpci "B". A ty máš tie hľadané hodnoty v stlpci "C"
Uprav si tú tabuľku, alebo môžeš použiť inú funkciu LOOKUP(VYHLEDAT) prípadne MATCH(POZVYHLEDAT)
Napríklad:
=IFERROR(LOOKUP(A10;List1!C3:C4;List1!B3:B4);"SKP nenalezeno!")
Ale hodnoty v stlpci C musia byť zoradené vzostupne.
Alebo
=IFERROR(OFFSET(List1!C2;MATCH(A10;List1!C3:C4;0);-1);"SKP nenalezeno!")
=IFERROR(POSUN(List1!C2;POZVYHLEDAT(A10;List1!C3:C4;0);-1);"SKP nenalezeno!")
Aký máš excel?
2003
=IF(ISERROR(VLOOKUP(D16;List1!B13:C16;2;FALSE));"položka nenalezena";VLOOKUP(D16;List1!B13:C16;2;FALSE))
excel 2007
=IFERROR(VLOOKUP(D16;List1!B13:C16;2;FALSE);"položka nenalezena")
Ten druhý vzorec je podobný.Len zložitejší.
Funguje to pri kopírovaní CTRL+C. Nie pri presune CTRL+X.
Pri presune(vyjmout) sa adresa nemení.
00"."000"/"000
Veď som ti dal vzorec
IF=když
HOUR=hodina?
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.