Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Somma univoca di duplicati.

155 views
Skip to first unread message

Ki$$

unread,
Dec 13, 2023, 8:48:52 AM12/13/23
to
Colonna A4

1
2
2
2
3
3
4
4
4
4
5
5
5
5
5
5

Colonna B4

=CONTA.SE($A$4:$A$19;A4)
...
...

avrei così in ogni cella di colonna "B" quanti sono i duplicati per ogni valore
riportato in Colonna "A".

Se io volessi in una specifica cella (mettiamo [B3]) una "somma di tutti valori
nella colonna" esclusi i duplicati?

in pratica, in questo caso, il risultato dovrebbe essere: 5

Avrei questo risultato se prima "rimuovessi i duplicati", ma come fare se
volessi evitare di farlo e lasciare la colonna così?

Tks

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 8:53:12 AM12/13/23
to
Scriveva Ki$$ mercoledì, 13/12/2023:
ERRORE, il risultato dovrebbe essere:

1+ n.1
3+ n.2
2+ n.3
4+ n.4
6 n.5


= 16

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 9:01:12 AM12/13/23
to
Ki$$ ha detto questo mercoledì :
aggiungiamo anche il n.6 per completezza:


6
6
6
6
6

sarebbe un altro +5 alla lista sopra e il risultato diverrebbe quindi: 21

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 9:03:54 AM12/13/23
to
Ki$$ scriveva il 13/12/2023 :
aggiunta sopra sbagliata:

corretta:

6
6
6
6

un +4 (già presente) e quindi: 20

--
Ki$$

Bruno Campanini

unread,
Dec 13, 2023, 12:28:49 PM12/13/23
to
Ki$$ formulated on Wednesday :
> Colonna A4
>
> 1
> 2
> 2
> 2
> 3
> 3
> 4
> 4
> 4
> 4
> 5
> 5
> 5
> 5
> 5
> 5
>
Da C1-down i dati ORDINATI, la colonna C conterrà poi
solo i valori univoci, mentre
da D1-down i duplicati rimossi da colonna C.

I totali delle due colonne uguagliano il
totale della colonna C INIZIALE.

Non ho fatto il raggruppamento delle colonne C e D
post "epurazione" in quanto ho pensato interessassero
solo le due somme.
===============================================
Public Sub Dups_Delete()
Dim R As Range, i, Dup, StartCell As Range

Set StartCell = [Sheet2!C1]
Set R = Range(StartCell(2, 1), StartCell(2, 1).End(xlDown))
Dup = R(0, 1)

For Each i In R
If i = Dup Then
i(0, 2) = i
i(1, 1) = vbNullString
Else
Dup = i
End If
Next

End Sub
==============================================

Bruno

Ki$$

unread,
Dec 13, 2023, 12:33:18 PM12/13/23
to
Ki$$ scriveva il 13/12/2023 :
mi sa che non si può fare (almeno com metodi semplici e convenzionali).

... bisogna sempre avere una colonna di appoggio (B), poi rimuovere i duplicati
da (A) e poi fare la somma di (B) e avere il totale infine in B3.

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 12:35:30 PM12/13/23
to
Bruno Campanini ha pensato forte :
oppla.. mentre stavo scrivendo :) provo subito...

Grazie.

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 1:32:25 PM12/13/23
to
Bruno Campanini ha detto questo mercoledì :
c'è un file di esempio sotto.

https://drive.google.com/uc?id=1XqivVTmsxsvrsBxQoJWYrCkGeYWHmPy8


in pratica io vorrei avere in cella [D2]: 64

lasciando inalterate le colonne C e D

...così facendo posso eliminare le colonne [G] e [H].

--
Ki$$

casanmaner

unread,
Dec 13, 2023, 2:13:10 PM12/13/23
to
Se con Office 2021 hai la funzione UNICI potresti provare questa:

=MATR.SOMMA.PRODOTTO(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))*(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))>=C2))

e se hai la funzione LET potrebbe essere articolata

=LET(Intervallo;$C$3:$C$92;
Criterio;$C$2;
ConteggioUnici;CONTA.SE(Intervallo;UNICI(Intervallo));
MATR.SOMMA.PRODOTTO(ConteggioUnici*(ConteggioUnici>=Criterio)))

In tal caso si potrebbe anche creare anche una funzione LAMBDA i cui due argomenti sarebbero Intervallo e Criterio.

Prova a vedere se restituisce i risultati desiderati.

Ki$$

unread,
Dec 13, 2023, 2:47:46 PM12/13/23
to
casanmaner scriveva il 13/12/2023 :
> Il giorno mercoledì 13 dicembre 2023 alle 19:32:25 UTC+1 Ki$$ ha scritto:
>> Bruno Campanini ha detto questo mercoledì :
>>> Ki$$ formulated on Wednesday :
Azz... mi stai chiedendo troppo... :)


provo... con calma...

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 3:12:05 PM12/13/23
to
Sembra che casanmaner abbia detto :
> Il giorno mercoledì 13 dicembre 2023 alle 19:32:25 UTC+1 Ki$$ ha scritto:
>> Bruno Campanini ha detto questo mercoledì :
>>> Ki$$ formulated on Wednesday :
WOW :)

olè... 2 colonne in meno...

poi proverò, se riesco pure il LET.
(LAMBDA non c'è)

TKS...

--
Ki$$

Ki$$

unread,
Dec 13, 2023, 3:25:46 PM12/13/23
to
Ki$$ ci ha detto :
> Sembra che casanmaner abbia detto :
>> Il giorno mercoledì 13 dicembre 2023 alle 19:32:25 UTC+1 Ki$$ ha scritto:
>>> Bruno Campanini ha detto questo mercoledì :
>>>
>>> c'è un file di esempio sotto.
>>>
>>> https://drive.google.com/uc?id=1XqivVTmsxsvrsBxQoJWYrCkGeYWHmPy8
>>>
>>> in pratica io vorrei avere in cella [D2]: 64
>>>
>>> lasciando inalterate le colonne C e D
>>>
>>> ...così facendo posso eliminare le colonne [G] e [H].
>>>
>>> -- Ki$$

>> Se con Office 2021 hai la funzione UNICI potresti provare questa:

>> =MATR.SOMMA.PRODOTTO(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))*(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))>=C2))

> WOW :)

> olè... 2 colonne in meno...

> poi proverò, se riesco pure il LET.
> (LAMBDA non c'è)

> TKS...

anche io stamattina ho provato un mix tra Matr.Somma.Prod, Conta.se e avevo
aggiunto pure un Somma.se... ma "unici" no

comunque sta funzione mi ha tolto 2 colonne, ma mi permette anche di toglierne
ulteriori 2 o 3 se riesco ad adattare il tutto.


... va a finire che via via e forse forse, compattando il tutto, riesco a farci
stare tutto su un unico foglio da vedere agevolmente uno schermo di Laptop 15
pollici se tutto fila liscio... con appena 2Mb di dimensione del file (poi
compattando, questa piccola dimensione si riduce ancora ulteriormente)...

vediamo... (comunque pure 2 fogli van benissimo mal che vada :) )




--
Ki$$

Ki$$

unread,
Dec 14, 2023, 7:10:48 AM12/14/23
to
Ki$$ ha pensato forte :
Stimando il tutto...
viene su perfetto...

Font Calibri-10 1366x768 (ho anche spazio per un paio di colonne)

bene.. ora mi dedico a posizionare tutto in modo "adeguatamente perfetto" :D ci
sentiamo il 23-12 in mattinata per i numeri vincenti...


Casa reinstalla tutto.. pure Windows.. cos' facendo fai 3 cose utili:

tagli la testa al toro con 365 e vedi se il tutto dipende da Office o no...

e poi una reinstallazione rende il PC un fulmine... (almeno all'inizio)...

installi solo i programmi che ti servono e eviti la Softwar-monnezza... che non
usi mai...

--
Ki$$

Elio Buonocore

unread,
Dec 15, 2023, 1:11:16 PM12/15/23
to
Se si ha una versione Excel che ha la funzione UNICI la più rapida /compatta mi sembra
=SOMMA(FREQUENZA(Dati[Num];UNICI(Dati[Num])))
dopo aver fatto tabella chiamata Dati con una colonna denominata Num; ovviamente non si vuol fare una tabella si sostituisce Dati[Num] con $C$3:$C$92
Se non si ha nessuna delle versioni con UNICI e non si vogliono usare colonne di appoggio si può anche utilizzare Power Query con

let
Origine = Excel.CurrentWorkbook(){[Name="Dati"]}[Content],
#"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Num", Int64.Type}}),
#"Raggruppate righe" = Table.Group(#"Modificato tipo", {"Num"}, {{"Conteggio", each Table.RowCount(_), Int64.Type}}),
#"Somma calcolata" = List.Sum(#"Raggruppate righe"[Conteggio])
in
#"Somma calcolata"

casanmaner

unread,
Dec 15, 2023, 1:52:34 PM12/15/23
to
Il 15/12/2023 19:11, Elio Buonocore ha scritto:

> Se si ha una versione Excel che ha la funzione UNICI la più rapida /compatta mi sembra
> =SOMMA(FREQUENZA(Dati[Num];UNICI(Dati[Num])))
> dopo aver fatto tabella chiamata Dati con una colonna denominata Num; ovviamente non si vuol fare una tabella si sostituisce Dati[Num] con $C$3:$C$92
> Se non si ha nessuna delle versioni con UNICI e non si vogliono usare colonne di appoggio si può anche utilizzare Power Query con
>
> let
> Origine = Excel.CurrentWorkbook(){[Name="Dati"]}[Content],
> #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Num", Int64.Type}}),
> #"Raggruppate righe" = Table.Group(#"Modificato tipo", {"Num"}, {{"Conteggio", each Table.RowCount(_), Int64.Type}}),
> #"Somma calcolata" = List.Sum(#"Raggruppate righe"[Conteggio])
> in
> #"Somma calcolata"

Ed ecco che arriva Elio e sbaraglia il campo.
Più tardi la provo ma non ho dubbi che funzioni :)

ciao

Elio Buonocore

unread,
Dec 15, 2023, 2:25:49 PM12/15/23
to
Ripensandoci forse non ho capito il calcolo richiesto. Avevo inteso la somme delle ricorrenze dei valori univoci e pertanto ho pensato per ricavare le ricorrenze a FREQUQNZQ. MA se serve solo una somma di tali ricorrenze dei valori univi, comunque si distribuiscano i numeri , poiché ogni ricorrenza di qualsivoglia numero e di qualsivoglia ricorrenza dello stesso occupa una riga basterebbe
=CONTA.VALORI(C3:C92). Doverso sarebbe se serve un calcolo tra i numeri e la ricorrenza (frequenza) di ognuno di quei numeri.
A questo punto chiedo un chiarimento sul calcolo richiesto.

casanmaner

unread,
Dec 15, 2023, 3:09:25 PM12/15/23
to
Il 15/12/2023 20:25, Elio Buonocore ha scritto:

> Ripensandoci forse non ho capito il calcolo richiesto. Avevo inteso la somme delle ricorrenze dei valori univoci e pertanto ho pensato per ricavare le ricorrenze a FREQUQNZQ. MA se serve solo una somma di tali ricorrenze dei valori univi, comunque si distribuiscano i numeri , poiché ogni ricorrenza di qualsivoglia numero e di qualsivoglia ricorrenza dello stesso occupa una riga basterebbe
> =CONTA.VALORI(C3:C92). Doverso sarebbe se serve un calcolo tra i numeri e la ricorrenza (frequenza) di ognuno di quei numeri.
> A questo punto chiedo un chiarimento sul calcolo richiesto.

Il calcolo richiesto potrebbe essere effettuato dalla funzione SOMMA.SE
se la stessa accettase come argomento la matrice di valori e non solo il
range.
Esempio ipotestico:

=SOMMA.SE(UNICI($C$3:$C$92);">="&C2)

però la funzione UNICI restituisce una matrice di valori e CONTA.SE non
lo accetta.

Io per arrivare al risultato ho utilizzato
=MATR.SOMMA.PRODOTTO(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))*(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))>=C2))

però ripensandoci dovrebbe bastare anche:

=SOMMA(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))*(CONTA.SE($C$3:$C$92;UNICI($C$3:$C$92))>=C2))

ciao

casanmaner

unread,
Dec 15, 2023, 3:33:54 PM12/15/23
to
Il 15/12/2023 21:09, casanmaner ha scritto:

>
> Il calcolo richiesto potrebbe essere effettuato dalla funzione SOMMA.SE
> se la stessa accettase come argomento la matrice di valori e non solo il
> range.
> Esempio ipotestico:
>
> =SOMMA.SE(UNICI($C$3:$C$92);">="&C2)
>
> però la funzione UNICI restituisce una matrice di valori e CONTA.SE non
> lo accetta.


Perdona Elio ma in realtà questa spiegazione non è corretta.

L'esempio corretto sarebbe:

=SOMMA.SE(CONTA.SE(C3:C92;UNICI(C3:C92));">="&C2)

ma CONTA.SE(C3:C92;UNICI(C3:C92)) non è un intervallo di celle e la
formula non viene accettata.

Elio Buonocore

unread,
Dec 15, 2023, 5:08:40 PM12/15/23
to
=MATR.SOMMA.PRODOTTO((FREQUENZA(C3:C12;UNICI(C3:C12))>=C2)*FREQUENZA(C3:C12;UNICI(C3:C12)))
È l'equivalente di Ermanno con la funzione FREQUENZA.
Per il resto, non mi sembrano esserci alternative se non si può utilizzare una LAMBDA

casanmaner

unread,
Dec 16, 2023, 3:03:22 AM12/16/23
to
Il 15/12/2023 23:08, Elio Buonocore ha scritto:
> =MATR.SOMMA.PRODOTTO((FREQUENZA(C3:C12;UNICI(C3:C12))>=C2)*FREQUENZA(C3:C12;UNICI(C3:C12)))
> È l'equivalente di Ermanno con la funzione FREQUENZA.
> Per il resto, non mi sembrano esserci alternative se non si può utilizzare una LAMBDA

Ciao Elio,
nel file di esempio in colonna C da C3 a C92 ci sono delle stringhe di
testo (es. "1-0-1").
In corrispondenza del medesimo intervallo di righe colonna D ci sono i
numeri dati dalla formula applicata ad ogni riga dell'intervallo:

CONTA.SE($C$3:$C$92;C3)

La somma di quei numeri, in base ai dati presenti in C3:C92 è 90

La tua formula andrebbe applicata quindi all'intervallo D3:D92.
Ma così facendo viene comunque restituito il valore di 90.
La formula FREQUENZA(D3:D92;UNICI(D3:D92)) restituisce questa matrice di
valori: {6.15.28.15.10.16.0}

Diciamo che la base di partenza, se si volesse ragionare sui valori in
colonna D sarebbe questa:
{6.6.5.5.5.5.5.4.4.4.4.4.3.3.3.6.5.4.4.3.6.5.5.5.5.5.4.4.4.4.4.4.4.4.4.4.4.4.3.3.3.3.3.3.6.6.5.5.5.5.4.4.4.4.4.4.4.4.4.3.3.3.3.3.2.2.2.2.2.2.2.2.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1}
Quello che sarebbe da ottenere è una matrice di questo genere che
{6.5.5.5.4.4.4.4.3.3.4.4.3.3.4.3.2.2.2.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1}
di cui sommare solo i numeri maggiori o uguali ad un valore di
riferimento (nell'esempio il valore in C2=3) che in pratica sono i seguenti:
{6.5.5.5.4.4.4.4.3.3.4.4.3.3.4.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0}

Ma non credo si raggiungerebbe la somma desiderata di 64 partendo dalla
serie di numeri di colonna D perché qui numeri potrebbero rappresentare
la ripetizioni di stringhe di testo differenti ma che si ripetono allo
stesso modo.

Elio Buonocore

unread,
Dec 18, 2023, 5:09:43 PM12/18/23
to
Concordo. In tutta sincerità mi sfugge il senso della richiesta iniziale. Per quanto riguarda il mio ricorso a FREQUENZA era legato al convincimento che i dati di partenza fossero dei numeri e non delle stringhe
Alla prossima

Ki$$

unread,
Dec 30, 2023, 11:48:34 AM12/30/23
to
Ki$$ ha spiegato il 14/12/2023 :
> Ki$$ ha pensato forte :
>> Ki$$ ci ha detto :
>>> Sembra che casanmaner abbia detto :
>>> WOW :)

>>> olè... 2 colonne in meno...


Colonna A (numeri da 1 a 90 univoci)

12
65
3
68
86
58
36
31
24
73
18
27
30
25
1
10
11
47
53
16
38
71
75
76
59
67
9
46
26
85
88
60
51
42
22
45
78
33
63
41
61
64
81
89
52
7
72
50
90
55
2
21
6
15
34
40
70
82
62
4
54
84
13
79
32
87
14
39
56
69
29
20
19
80
37
43
35
44
77
57
49
74
5
48
66
8
17
83
28
23



Colonna C (con duplicati)

22
70
64
59
81
32
82
24
16
68
13
72
67
63
40
47
51
86
79
32
68
9
62
4
27
78
60
2
34
30
26
10
16
25
52
89
50
90
76
61
27
38
12
90
11
36
53
73
75
22
21
50
53
90
65
64
61
75
45
55
88
64
85
3
12
41
58
36
10
84
50
42
32
33
87
31
51
50
72
84
7
33
6
46
54
71
76
24
18
78
65
2
15
59
1



come fare a far venire 24?

"24" sarebbero i numeri in colonna A che non sono presenti in colonna C (la
quale presenta duplicati)



--
Ki$$

Ki$$

unread,
Dec 30, 2023, 12:48:33 PM12/30/23
to
Nel suo scritto precedente, Ki$$ ha sostenuto :
> Ki$$ ha spiegato il 14/12/2023 :
>> Ki$$ ha pensato forte :
>>> Ki$$ ci ha detto :
il panettone :)

--
Ki$$

Ki$$

unread,
Dec 30, 2023, 4:16:45 PM12/30/23
to
Dopo dura riflessione, Ki$$ ha scritto :
> Nel suo scritto precedente, Ki$$ ha sostenuto :
>> Ki$$ ha spiegato il 14/12/2023 :
>>> Ki$$ ha pensato forte :
L'anno vecchio è finito, ormai
Ma qualcosa ancora qui non va...

"Il nuovo anno porterà una trasformazione ...
E tutti quanti stiamo già aspettando...

vabbè... (azzeccato uno)

questa formula: 90-CONTA.VALORI(UNICI(C1:C95))
mi farà terminare il rodaggio della versione Alpha (0.1290-Alpha)

e... si inizia con la Beta.


Bye...



--
Ki$$

Ki$$

unread,
Dec 31, 2023, 3:33:06 AM12/31/23
to
Il 30/12/2023, Ki$$ ha detto :
> Dopo dura riflessione, Ki$$ ha scritto :
>> Nel suo scritto precedente, Ki$$ ha sostenuto :
>>> Ki$$ ha spiegato il 14/12/2023 :
La formula corretta è:

91-CONTA.VALORI(UNICI(C1:C95))

--
Ki$$

casanmaner

unread,
Dec 31, 2023, 3:38:15 AM12/31/23
to
Il 31/12/2023 09:33, Ki$$ ha scritto:

>
> La formula corretta è:
>
> 91-CONTA.VALORI(UNICI(C1:C95))
>

Sicuro?

Se nella tua matrice di valori multipli fossero contenuti, comunque,
tutti i numeri da 1 a 90 otterresti 1.
Ma in realtà i numeri mancanti dovrebbero essere 0.

Ki$$

unread,
Dec 31, 2023, 3:40:24 AM12/31/23
to
casanmaner ha detto questo domenica :
ho provato manualmente, ne manca uno.

riprovo, se ho ragione posto file.

--
Ki$$

Ki$$

unread,
Dec 31, 2023, 3:51:49 AM12/31/23
to
Ki$$ ha detto questo domenica :
ho ragione io.. almeno a prima vista.



...non posto il file ma i 95 valori...

se io rimuovo i duplicati dalla colonna dei 95 valori(sotto) rimangono 63
valori
il risultato di 90-63 = 27 (giusto)

se io faccio 90-CONTA.VALORI(UNICI(C1:C95)) il risultato è 28 (che secondo me è
errato)


14
87
49
19
69
18
62
47
37
73
59
9
85
56
17
53
46
65
14
62
30
2
14
20
66
84
35
47
76
31
36
40
65
68
3
62
19
15
55
25
70
30
44
56
2
50
48
8
82
16
10
70
90
6
80
59
47
10
15
75
12
11
38
80
43
36
25
46
27
6
73
80
69
68
1
24
72
26
58
90
19
67
17
27
35
39
21
4
71
44
69
34
29
86
40

--
Ki$$

Ki$$

unread,
Dec 31, 2023, 3:58:59 AM12/31/23
to
Nel suo scritto precedente, Ki$$ ha sostenuto :
al di la di questo a me (in questo caso specifico) interessa il rapporto
comparato (peso) tra tante colonne per stilare una "graduatoria". e non tanto
il valore esatto di questa unica colonna. Quindi questo (+-) 1 non ha nessun
effetto.

è solo per fare le cose per bene... passo dopo passo.

--
Ki$$

casanmaner

unread,
Dec 31, 2023, 4:02:09 AM12/31/23
to
Con questi numeri dalla formula:

=90-CONTA.VALORI(UNICI(C1:C95))

ottengo 27

Non è che in mezzo hai qualche "vuoto" dato da una formula?

Eventualmente prova ad utilizzare CONTA.NUMERI

Ki$$

unread,
Dec 31, 2023, 4:09:09 AM12/31/23
to
Dopo dura riflessione, casanmaner ha scritto :
urca... provo subito.

--
Ki$$

Ki$$

unread,
Dec 31, 2023, 4:29:01 AM12/31/23
to
Scriveva Ki$$ domenica, 31/12/2023:
hai ragione...

il motivo è come dicevi tu. la formula era rimasta tale

=90-CONTA.VALORI(UNICI(C1:C95))

anche dopo:

ma io per una verifica ho fatto <<elimina i duplicati>> ... ma la formula
conteggia anche il valore VUOTO (duplicato) che si è prodotto in quel range.

risolto. Thank You.

--
Ki$$
0 new messages