Restituisci ogni n-esimo elemento utilizzando VBA in Microsoft Excel

Anonim

Nel caso ti stia chiedendo come qualcuno possa trovare ogni ennesimo elemento in una colonna. In questo articolo impareremo come restituire ogni n-esimo articolo da un elenco. Useremo il codice VBA per trovare il risultato.

Domanda: Voglio un codice macro per estrarre ogni ennesimo valore da una colonna. Sto cercando di estrarre i valori da un foglio/colonna in un altro foglio/colonna. Ho provato a usare molte funzioni come OFFSET ma non sono riuscito a capire la formula che può dare il risultato.

Facciamo un esempio di 100 valori nella colonna A e vogliamo scoprirlo ogni 10ns valore nella colonna B

I valori di esempio a partire dalla cella A1 uguale a 1 fino alla cella A100 uguale a 100; di seguito è riportato lo snapshot dei dati nella colonna A:

Per ottenere risultati, dobbiamo seguire i passaggi seguenti per avviare l'editor VB

  • Fare clic sulla scheda Sviluppatore
  • Dal gruppo Codice, seleziona Visual Basic

  • Copia il codice sottostante nel modulo standard
 Funzione INDEXN(InputRange As Range, N As Integer) As Variant ' restituisce ogni N-esimo elemento da InputRange' --- Comment ' seleziona l'intervallo di destinazione desiderato per la funzione e' --- Comment ' entra come funzione array con Ctrl +Maiusc+Invio.' --- 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) Per ogni c In InputRange i = i + 1 If i Mod N = 0 Then iCount = iCount + 1 On Error Riprendi 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 

  • Per ottenere ogni n elemento nell'intervallo B1: B10, la formula è
  • {=INDICEN($A$1:$A$100, 10)}

Nota: questa è una formula di matrice; quindi, i tasti Ctrl + Maiusc + Fine devono essere premuti insieme

  • Per ottenere ogni 7ns valore dall'intervallo A1:A100; cambieremo l'ultimo argomento da 10 a 7 e la formula sarà
  • {=INDICEN($A$1:$A$100, 7)}

In questo modo, possiamo restituire ogni n-esimo articolo da un foglio al foglio principale.

  • La formula in un altro foglio conterrà il riferimento del foglio
  • {=INDEXN(Foglio1!$A$1:$A$100, 10)}

Conclusione: Con l'aiuto della precedente funzione definita dall'utente, possiamo avere la flessibilità di scoprire ogni ennesimo elemento da un foglio all'altro.

Se ti è piaciuto il nostro blog, condividilo con i tuoi amici su Facebook. E puoi anche seguirci su Twitter e Facebook. Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare, completare o innovare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica