Devuelva cada enésimo elemento usando VBA en Microsoft Excel

Tabla de contenido

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 averiguarlo cada 10th valor en la columna B

Los valores de muestra que comienzan en la celda A1 son iguales a 1 y la celda A100 es igual a 100; A continuación se muestra la instantánea de los datos en la columna A:

Para obtener un resultado, debemos seguir los pasos a continuación para iniciar el editor VB

  • Haga clic en la pestaña Desarrollador
  • Desde el grupo Código, seleccione Visual Basic

  • Copie el siguiente código en el módulo estándar
 Función INDEXN (InputRange como rango, N como entero) Como variante 'devuelve cada enésimo elemento de InputRange' --- Comentario 'seleccione el rango objetivo deseado para la función y' --- Comentario 'ingrese como una función de matriz con Ctrl + Mayús + Entrar. ' --- Comentar Dim ItemList () como variante, c como rango, i tan largo, iCount tan largo i = 0 iCount = 0 ReDim ItemList (1 a InputRange.Cells.Count \ N) para cada c en InputRange i = i + 1 Si i Mod N = 0 Entonces iCount = iCount + 1 En caso de error Continuar Siguiente ItemList (iCount) = c.Value On Error GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count> = InputRange.Columns.Count Entonces INDEXN = Application.WorksheetFunction.Transpose (INDEXN) End If Erase ItemList End Function 

  • Para obtener cada enésimo elemento en el rango B1: B10, la fórmula es
  • {= INDICEN ($ A $ 1: $ A $ 100, 10)}

Nota: esta es una fórmula de matriz; por lo tanto, las teclas Ctrl + Shift + End deben presionarse juntas

  • Para conseguir cada 7th valor del rango A1: A100; cambiaremos el último argumento de 10 a 7 y la fórmula será
  • {= INDEXN ($ A $ 1: $ A $ 100, 7)}

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

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

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.

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 al sitio de correo electrónico

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave