Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak na vyhledávací funkce pomocí VBA.
Sem tam potřebuji použít vyhledávací funkci ve VBA. Proto jsem si připravil tento seznam:
Článek nemá za cíl byt kompletní příručkou. Průběžně jen doplňují jako ostatní články.
Range("B4").Formula = "=FORMULATEXT(A4)"
Range("B5").FormulaLocal = "=FORMULATEXT(A5)"
Bohužel WorksheetFunction pro FORMULATEXT neexistuje, ale lze využít:
Pokus = Range("A4").Formula
MsgBox (Pokus)
Pokus = Range("B23").FormulaR1C1
MsgBox (Pokus)
Funkce si můžeme zobrazovat ve formátu A1 (Formula) nebo R1C1 (FormulaR1C1).
Range("B4").Formula = "=HYPERLINK("http://JakNaExcel.cz")"
Range("B5").FormulaLocal = "=HYPERTEXTOVÝ.ODKAZ("http://JakNaExcel.cz")"
Pro vložení a smazání
ActiveSheet.Hyperlinks.Add anchor:=Range("B15"), Address:="http://JakNaExcel.cz", ScreenTip:="Nej web", TextToDisplay:="Top web o Excel ;)"
Selection.Hyperlinks.Delete
V přípravě.
Range("B13").Formula = "=INDEX(C6:E10,2,2)"
Range("B15").FormulaLocal = "=INDEX(C6:E10;2;2)"
zjištění hodnoty v řádku a sloupci 2.
x = WorksheetFunction.Index(Range("C6:E10"), 2, 2)
MsgBox x
budu-li chtít ošetřit...
' Dim
On Error Resume Next
x = WorksheetFunction.Index(Range("C6:E10"), 2, 2)
If Err = 0 Then
MsgBox x
Else
MsgBox "Nenalezeno."
Err.Clear
End If
On Error GoTo 0
V přípravě.
Range("B7").Formula = "=INDIRECT(B4)"
Range("B8").FormulaLocal = "=NEPŘÍMÝ.ODKAZ(B4)"
protože Excel opět nemá k dispozici WorksheetFunction Indirect, ale lze obejít, například:
x = Rang(Range("B4").Value).Value
MsgBox x
V přípravě.
Range("B4").Formula = "=ADDRESS(6;2;1)"
Range("B5").FormulaLocal = "=ODKAZ(6;2;2)"
a = ActiveCell.Address
MsgBox (a)
a = ActiveCell.Address(ReferenceStyle:=xlR1C1)
MsgBox (a)
V přípravě.
Jak zapsat funkci do buňky
Range("B13").Formula = "=AREAS((B5:D5,F5:F7))"
Range("B14").FormulaLocal = "=POČET.BLOKŮ(B5:D5)"
v přípravě
V přípravě.
Range("B13").Formula = "=OFFSET(B4,1,1)"
Range("B14").FormulaLocal = "=POSUN(B4;1;2)"
Jak využít offset pro buňku, neboli sse posunout o patřičný pořet řádku a sloupců.
x = Range("B4").Offset(1, 2)
MsgBox (x)
V přípravě.
Range("C10").Formula = "=MATCH(B10,B5:B8,0)"
Range("C11").FormulaLocal = "=POZVYHLEDAT(B11;B5:B8;0)"
Jak ajít pozici požadované hodnoty:
x = WorksheetFunction.Match(Range("B11"), Range("B5:B8"), 0)
MsgBox x
V přípravě.
V přípravě.
Range("B4").Formula = "=ROW()"
Range("B5").FormulaLocal = "=ŘÁDEK(B5)"
Range("B6").FormulaLocal = "=ŘÁDEK()"
x = ActiveCell.Row
MsgBox (x)
V přípravě.
Range("B9").Formula = "=ROWS(B5:B7)"
Range("B10").FormulaLocal = "=ŘÁDKY(B5:B7)"
Range("B11").FormulaLocal = "=ŘÁDKY($B$5:$B$7)"
x = Range("B7").Row - Range("B5").Row + 1
MsgBox (x)
V přípravě.
Když potřebuji vložit vzorec pro zjjištění počtu sloupců v danné oblasti:
Range("B8").Formula = "=COLUMNS(B5:F6)"
Range("B9").FormulaLocal = "=SLOUPCE(B5:F6)"
Protože WorksheetFunction neexistuje, lze využít zjištění sloupce přes Column.
x = Range("F6").Column - Range("B6").Column + 1
MsgBox (x)
V přípravě.
Range("B4").Formula = "=COLUMN()"
Range("B5").FormulaLocal = "=SLOUPEC()"
Range("B6").FormulaLocal = "=SLOUPEC(B6)"
x = ActiveCell.Column
MsgBox (x)
V přípravě.
najít odpovídající hodnotu:
x = WorksheetFunction.VLookup(Range("C15"), Range("B5:F13"), 2, False)
MsgBox x
On Error Resume Next
x = WorksheetFunction.VLookup(Range("C15"), Range("B5:F13"), 2, False)
y = WorksheetFunction.VLookup(Range("C15"), Range("B5:F13"), 4, False)
If Err = 0 Then
MsgBox x
MsgBox y
Else
MsgBox "Nenalezeno."
Err.Clear
End If
On Error GoTo 0
V přípravě.
Dim myarray As Variant
myarray = Array(1, 2, 3, 4, 5)
Range("A20:E20").Value = myarray
Range("B21:B25").Value = Application.Transpose(myarray)
Range("C21:C25").Value = Application.Transpose(Array(1, 2, 3, 4, 5))
V přípravě.
Range("C12").Formula = "=HLOOKUP(G11,B4:G8,2,TRUE)"
Range("C13").FormulaLocal = "=VVYHLEDAT(G11;B4:G8;3;PRAVDA)"
x = WorksheetFunction.HLookup(Range("G11"), Range("B4:G8"), 2, False)
MsgBox x
On Error Resume Next
x = WorksheetFunction.HLookup(Range("G11"), Range("B4:G8"), 2, False)
y = WorksheetFunction.HLookup(Range("G11"), Range("B4:G8"), 3, False)
If Err = 0 Then
MsgBox x
MsgBox y
Else
MsgBox "Nenalezeno."
Err.Clear
End If
On Error GoTo 0
V přípravě.
Range("C14").Formula = "=LOOKUP(B14;$B$5:$B$10;$C$5:$C$10)"
Range("C16").FormulaLocal = "=VYHLEDAT(B16;$B$5:$B$10;$C$5:$C$10)"
On Error Resume Next
x = WorksheetFunction.Lookup(Range("B16"), Range("B5:B10"))
y = WorksheetFunction.Lookup(Range("B16"), Range("B5:B10"), Range("C5:C10"))
If Err = 0 Then
MsgBox x
MsgBox y
Else
MsgBox "Nenalezeno."
Err.Clear
End If
On Error GoTo 0
V přípravě.
Range("F12").Formula = "=GETPIVOTDATA(""Zisk"",$F$4,""Prodavač"",""Fantomas"")"
Range("F15").FormulaLocal = "=ZÍSKATKONTDATA(""Zisk"";$F$4;""Prodavač"";""Pavel"")"
v přípravě
V přípravě.
Range("B11").Formula = "=CHOOSE($C$9,C5,C6,C7)"
Range("B12").FormulaLocal = "=ZVOLIT($C$9;C5;C6;C7)"
x = WorksheetFunction.Choose(Range("C9"), Range("C5"), Range("C6"), Range("C7"))
MsgBox x
V přípravě.
Další články související se statistickými funkcemi:
Soubor v přípravě.
Využíváte nějaký trik s funkcí INDEX, můžete zmínit v komentářích.
Článek byl aktualizován: 19.09.2020 11:06
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Můžete být prvními co zanechají smysluplný komentář.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |