Si vous vous demandez comment quelqu’un peut trouver chaque nième élément d’une colonne. Dans cet article, nous allons apprendre à renvoyer chaque n-ième élément d’une liste. Nous utiliserons le code VBA pour trouver le résultat.

Question: Je souhaite qu’un code de macro extrait chaque nième valeur d’une colonne. J’essaye d’extraire des valeurs d’une feuille / colonne dans une autre feuille / colonne. J’ai essayé d’utiliser de nombreuses fonctions comme OFFSET mais je n’ai pas réussi à comprendre la formule qui peut donner le résultat.

Prenons un exemple de 100 valeurs dans la colonne A & nous voulons trouver chaque 10 ^ ème ^ valeur dans la colonne B Les valeurs d’échantillon à partir de la cellule A1 égale à 1 à la cellule A100 égale à 100; Voici un instantané des données de la colonne A:

img1

Pour obtenir le résultat, nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic

img2

  • Copiez le code ci-dessous dans le module standard

Function 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.' --- Comment

Dim ItemList() As Variant, c As Range, i As Long, iCount As Long

i = 0

iCount = 0

ReDim ItemList(1 To InputRange.Cells.Count \ N)

For Each 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 Function

img3

Pour obtenir chaque nième élément de la plage B1: B10, la formule est \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Remarque: il s’agit d’une formule matricielle; par conséquent, les touches Ctrl + Maj + Fin doivent être pressées ensemble

img4

Pour obtenir toutes les 7 ^ e ^ valeurs de la plage A1: A100; nous changerons le dernier argument de 10 à 7 & la formule sera \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}

img5

De cette façon, nous pouvons renvoyer chaque n-ième élément d’une feuille à la feuille principale.

La formule dans une autre feuille contiendra la référence de feuille \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

img6

Conclusion: Avec l’aide de la fonction définie par l’utilisateur ci-dessus, nous pouvons avoir la flexibilité de trouver chaque nième élément d’une feuille à l’autre.

image 48

Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez également nous suivre sur Twitter et Facebook. Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]