En caso de que se esté preguntando cómo alguien puede encontrar cada enésimo elemento de una columna. En este artículo, aprenderemos cómo devolver cada enésimo elemento de una lista. Usaremos el código VBA para encontrar el resultado .

Pregunta: Quiero un código de macro para extraer cada enésimo valor de una columna. Estoy tratando de extraer valores de una hoja / columna a otra hoja / columna. Intenté usar muchas funciones como OFFSET pero no pude averiguar la fórmula que puede dar el resultado.

Tomemos un ejemplo de 100 valores en la columna A y queremos averiguar cada décimo valor en la columna B Los valores de muestra comenzando desde la celda A1 igual a 1 hasta la celda A100 igual a 100; la siguiente es la instantánea de los datos en la columna A:

img1

Para obtener el resultado, debemos seguir los pasos a continuación para iniciar el editor de VB. Haga clic en la pestaña Desarrollador. Desde el grupo Código, seleccione Visual Basic

img2

  • Copie el siguiente código en el módulo estándar

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

Para obtener cada n-ésimo elemento en el rango B1: B10, la fórmula es \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Nota: esta es una fórmula de matriz; por lo tanto, las teclas Ctrl + Shift + End deben presionarse juntas

img4

Para obtener cada séptimo valor del rango A1: A100; cambiaremos el último argumento de 10 a 7 & la fórmula será \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}

img5

De esta forma, podemos devolver cada enésimo elemento de una hoja a la hoja maestra.

La fórmula en otra hoja contendrá la referencia de hoja \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

img6

Conclusión: Con la ayuda de la función definida por el usuario anterior, podemos tener flexibilidad para encontrar cada enésimo elemento de una hoja a otra.

image 48

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook. Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]