Vráťte každú n-tú položku pomocou jazyka VBA v programe Microsoft Excel

Anonim

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