Condividi tramite

Subtotale senza duplicati

Anonimo
2013-11-29T13:30:56+00:00

Buongiorno a tutti,

vorrei sapere se è possibile contare i valori univoci di una colonna, tenendo conto dei filtri (con lo stesso principio del subtotale, per intenderci).

Grazie dell'aiuto

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2013-12-03T11:14:40+00:00

    Vi ringrazio,

    ma il problema continua ad essere il filtro.

    Se io applico, ad esempio, un filtro al campo 1 ho bisogno di contare i valori univoci del campo 2, tenendo conto del fatto che il filtro è stato fatto.

    Questa UDF fa quanto chiedi:

    Public Function f(ByVal v As Variant) As Long

        Dim c As Range

        Dim col As Collection

        Set col = New Collection

        On Error Resume Next

        For Each c In v

            If Not c.EntireRow.Hidden Then

                col.Add CStr(c.Value), CStr(c.Value)

            End If

        Next

        f = col.Count

    End Function

    Da utilizzare così:

    B11: =f(B2:B10)

    Conterà un modo univoco quanto filtrato nell'intervallo. Si comporterà come la funzione Subtotale, modificando il totale in base al filtro.

    La funzione va copia/incollata in un modulo standard. Se non hai mai utilizzato le UDF, vedi qui:

    La risposta è stata utile?

    0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2013-12-03T10:43:50+00:00

    Ciao,

    la formula dovrebbe contare univocamente i dati filtrati - e non filtrati- della colonna B, in un database teorico A5:B100, nella riga 5 le intestazioni

    =SOMMA(SE(FREQUENZA(SE(SUBTOTALE(3;SCARTO(A6;RIF.RIGA($A$6:$A$100)-6;0));CONFRONTA($B$6:$B$100;$B$6:$B$100;0));CONFRONTA($B$6:$B$100;$B$6:$B$100;0));1))

    La formula, una volta copiata, deve essere confermata con control+maiusc+invio.

    Spero sia d'aiuto

    Saluti

    La risposta è stata utile?

    0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-12-02T20:14:08+00:00

    Per quanto riguarda la seconda opzione ho la necessità di lasciare che siano tutti visibili contemporaneamente, record duplicati compresi (dal momento che solo alcuni campi si ripetono), ma che siano contati in maniera univoca come nel primo caso.

    Spero di essere riuscita a spiegare il problema

    Una per tutte (per intervalli abbondanti e non), ovviamente non matriciale ...

    =MATR.SOMMA.PRODOTTO(--(FREQUENZA($A2:$A100; $A2:$A100)>0))

    Andrea.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2013-12-02T17:02:11+00:00

    Grazie Mauro,

    la prima soluzione è perfetta nel caso in cui non abbia la necessità di filtrare.

    Per quanto riguarda la seconda opzione ho la necessità di lasciare che siano tutti visibili contemporaneamente, record duplicati compresi (dal momento che solo alcuni campi si ripetono), ma che siano contati in maniera univoca come nel primo caso.

    Spero di essere riuscita a spiegare il problema

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-11-29T14:43:33+00:00

    Buongiorno a tutti,

    vorrei sapere se è possibile contare i valori univoci di una colonna, tenendo conto dei filtri (con lo stesso principio del subtotale, per intenderci).

    Grazie dell'aiuto

    Senza filtri.

    =SOMMA(SE(FREQUENZA(CONFRONTA(A2:A10;A2:A10;0);CONFRONTA(A2:A10;A2:A10;0))>0;1))

    Se filtri, fai un filtro avanzato, spuntando Copia univoca dei record e Filtra l'elenco sul posto.

    Quindi la formula sarà:

    =SUBTOTALE(3;A2:A10)

    Modifica i riferimenti delle celle con i tuoi.

    La risposta è stata utile?

    0 commenti Nessun commento