V prípade, že vás zaujíma, ako môže niekto nájsť každú n -tú položku v stĺpci. V tomto článku sa naučíme, ako vrátiť každú n-tú položku zo zoznamu. Na nájdenie výsledku použijeme kód VBA.
Otázka: Chcem, aby kód makra extrahoval každú n -tú hodnotu zo stĺpca. Snažím sa vytiahnuť hodnoty z jedného listu / stĺpca do iného listu / stĺpca. Skúsil som použiť mnoho funkcií, ako napríklad OFFSET, ale nevedel som prísť na vzorec, ktorý môže poskytnúť výsledok.
Zoberme si príklad 100 hodnôt v stĺpci A & chceme zistiť každých 10th hodnota v stĺpci B
Hodnoty vzorky vychádzajúce z bunky A1 rovnajúcej sa 1 až bunky A100 rovnajúcej sa 100; Nasleduje prehľad údajov v stĺpci A:
Aby sme dosiahli výsledok, musíme pri spustení editora VB vykonať nasledujúce kroky
- Kliknite na kartu Vývojár
- V skupine Kód vyberte položku Visual Basic
- Skopírujte nižšie uvedený kód do štandardného modulu
Funkcia INDEXN (InputRange As Range, N As Integer) As Variant 'returns every N-th item from InputRange' --- Comment 'select the desired target range for the function and' --- Comment 'enter as an array function with Ctrl +Shift+Enter. ' --- Komentár Dim Dim ItemList () ako variant, c Ako rozsah, i tak dlhý, iCount ako dlhý i = 0 iCount = 0 ReDim ItemList (1 na InputRange.Cells.Count \ N) Pre každý c In InputRange i = i + 1 If i Mod N = 0 Then iCount = iCount + 1 On Error Resume Next ItemList (iCount) = c.Value On Error GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count> = InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose (INDEXN) End If Erase ItemList End Funkcia
- Na získanie každej n -tej položky v rozsahu B1: B10 je vzorec
- {= INDEXN ($ A $ 1: $ A $ 100, 10)}
Poznámka: toto je maticový vzorec; klávesy Ctrl + Shift + End preto musíte stlačiť spoločne
- Ak chcete získať každých 7th hodnota z rozsahu A1: A100; zmeníme posledný argument z 10 na 7 a vzorec bude
- {= INDEXN ($ A $ 1: $ A $ 100, 7)}
Týmto spôsobom môžeme vrátiť každú n-tu položku z jedného listu na hlavný list.
- Vzorec v inom liste bude obsahovať odkaz na list
- {= INDEXN (List1! $ A $ 1: $ A $ 100, 10)}
Záver: S pomocou vyššie uvedenej funkcie definovanej používateľom môžeme mať flexibilitu pri zisťovaní každej n-tej položky z jedného listu na druhý.
Ak sa vám páčili naše blogy, zdieľajte ich so svojimi priateľmi na Facebooku. A tiež nás môžete sledovať na Twitteri a Facebooku. Radi by sme vás počuli, dajte nám vedieť, ako môžeme zlepšiť, doplniť alebo inovovať našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku