Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Funzione CountIf

  1. #1

    Funzione CountIf

    Buongiorno a tutti.
    Sono di nuovo qui per una richiesta di aiuto

    Ho messo giù una macro in Excel 2010 che, tra le varie cose, mi deve controllare la presenza di un dato in una riga situata in altro foglio e, qualora il dato sia presente, mi deve incrementare un contatore.
    A tal fine ho utilizzando un ciclo For.. Next ma vorrei risolverlo in maniera più snella, magari con la funzione CountIf() che purtroppo non sono riuscito ad utilizzare. Di seguito riporto il codice in questione.
    Grazie mille.

    ........................ inizio stralcio del codice

    For riga = ultimariga To 5 Step -1
    Controllo = 0
    For col = 3 To 8 ' <--------------ciclo for next che vorrei sostituire con la Funzione CountIf()
    If Sheets("archivio storico").Cells(riga, col) = numero Then ' numero che cerco nella riga
    Controllo = 1
    Exit For
    End If
    Next <----------------------------------------------------------------------------------
    If Controllo = 0 Then
    nx = nx + 1
    Else
    Exit For
    End If
    Next
    ........................... fine stralcio codice

  2. #2
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    non ho capito la logica del tuo codice, ma questo è un esempio di come si usa countif
    codice:
    Sub cercainriga()
    ultimariga = 10
    numero = 5
    For riga = ultimariga To 5 Step -1
      If Application.WorksheetFunction.CountIf(Range("C" & riga & ":H" & riga), numero) > 0 Then
        controllo = controllo + 1
      End If
    Next
    MsgBox controllo
    End Sub

  3. #3
    Patel, innanzi tutto grazie per la risposta. La logica consiste nel trovare la corrispondenza di un dato numero in una matrice piuttosto grande e, alla fine, indicarmi la quantità di volte che lo stesso numero è presente.

    La tua soluzione è assolutamente pregevole e, pertanto, la utilizzerò immediatamente.
    Di nuovo grazie

  4. #4
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    io ho seguito la tua impostazione, ma se le cose stanno così basta
    codice:
    Sub cerca()
    numero = 5
    n = Application.WorksheetFunction.CountIf(Range("C5:H10"), numero)
    MsgBox n
    End Sub

  5. #5
    Mi rendo conto che non sono stato esaustivo. La ricerca non deve essere in assoluto su tutta la matrice ma bensì mi deve dare il risultato per ciascuna riga della matrice

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.