Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

duplicato in

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

duplicato in

Postdi giorgioa » 03/04/16 15:46

Salve a tutti,

da AK10:BI10 sono preenti questi numeri
68-49-47-73-1-76-57-55-81-9-11-82-80-16-34-82-63-61-87-15-75-56-54-80-8

Fra questi numeri sono presenti 2 doppioni
di cui il numero 82 e 80 uno dei 2 vorrei fosse
presente in BJ10 e l'altro in BQ10 senza dare importanza
alla locazione dell'uno e dell'altro (nel senso chi prima o dopo).
Domanda si può avere il duplicato in cella senza trascriverlo
manualmente ma con formula? E poi da trascinare la formula in giù.
La prima cella sarebbe BJ10 mentre la seconda BQ10
ed entrambe prenderanno il duplicato da BK10:BI10.

Grazie e Buona domenica
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Sponsor
 

Re: duplicato in

Postdi Anthony47 » 04/04/16 01:35

Per evitare di rincitrullire con le formule ti propongo questa Function:
Codice: Seleziona tutto
Function myDups(ByRef myRan As Range, Optional ByVal WOne As Long = 1) As Variant
Dim retArr(1 To 16), myVal As Range, J As Long
'
For Each myVal In myRan
    If Application.WorksheetFunction.CountIf(myRan, myVal.Value) = 2 Then
        mymatch = Application.Match(myVal.Value, retArr, 0)
        If IsError(mymatch) Then
            retArr(J + 1) = myVal.Value
            J = J + 1: If J > 15 Then J = 15
        End If
    End If
Next myVal
myDups = retArr(WOne)
'
End Function

Metti il codice in un Modulo standard del vba, poi nella cella dove vuoi il primo risultato usi la formula
Codice: Seleziona tutto
=myDups(AI10:BJ10;1)

Per il secondo risultato userai
Codice: Seleziona tutto
=myDups(AI10:BJ10;2)

Invece di AI10:BJ10 puoi usare qualsiasi altro intervallo, anche verticale; la Function tiene traccia di fino a 15 "Duplicati", quindi nelle formule al posto di 1 e 2 puoi usare qualsiasi numero tra 1 e 16.

Tutto questo in attesa della formula in stile canapone, ovviamente.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: duplicato in

Postdi CANAPONE » 04/04/16 06:25

Ciao a tutti,

la formula

Codice: Seleziona tutto
=SE.ERRORE(INDICE($AI$10:$BJ$10;PICCOLO(SE(FREQUENZA(CONFRONTA($AI$10:$BJ$10;$AI$10:$BJ$10;0);CONFRONTA($AI$10:$BJ$10;$AI$10:$BJ$10;0))>1;MATR.TRASPOSTA(RIF.COLONNA($AI$10:$BJ$10)-RIF.COLONNA($AI$1)+1);"");RIGHE($1:1)));"")


una volta confermata con control+maiusc+invio, copiandola in basso, si dovrebbe - spero - ottenere l'eleno dei numeri.

Per metterli in ordine crescente i doppioni:

Codice: Seleziona tutto
=SE.ERRORE(PICCOLO(SE(FREQUENZA(AI$10:$BJ$10;$AI$10:$BJ$10)>1;MATR.TRASPOSTA($AI$10:$BJ$10);"");RIGHE($1:1));"")


Anche questa matriciale.

Meglio l'aiuto del VBA.

Un caro saluto da Firenze ad Anthony47
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi giorgioa » 04/04/16 09:20

Salve e buona giornata,

per Anthony47
ho provato la Function e mi da "#Nome?" senza virgolette naturalmente.
Il periodo è AK10:BI10, da un mio errore AI e BI ma questi dati li ho corretti,
per maggiore attenzione ho messo l'apice, nel modulo, davanti Option Explicit
pechè non lo uso e quindi mi darebbe quell'errore che ho segnalato.
Da cosa potrebbe dipendere?
Indico una supposizione i dati del periodo AK10:BI10 sono dati ottenuti da formule
potrebbe essere questa una causa di non fuzionamento?
Poi non ho altro da segnalare in merito.

Salve Canapone ho copiato la tua formula e ho dovuto togliere il
suffisso dollaro $, naturalmente mi sono corretto i dati di colonna
e funziona.

Cmq, grazie Canapone
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi giorgioa » 04/04/16 09:57

Salve Canapone,

nel distribuire la formula si viene a trovare il caso che di duplicati
potrebbero non essere presenti oppure di essercene uno solo,
Col segno +1 fa riferimento al primo duplicato che trova
mentre col segno +2 fa riferimento al secondo duplicato
solo che quando il duplica non c'è prende il primo numero
del periodo cioè AI10 e lo stesso fa quando non c'è il secondo.
Detto questo se possibile che quando non ci sono duplicati
vorrei il "" e quando non c'è uno dei 2 lo stesso "".

Se possibile la correzione ma questo vale anche per la Fuction se possibile.

Grazie
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi CANAPONE » 04/04/16 10:31

Ciao del cortese riscontro

la formula - se ho capito - dovrebbe già lavorare nel modo che hai descritto.

E' richiesta come condizione che nell'intervallo

AI$10:$BJ$10

non ci siano celle vuote.

Se alleghi un piccolo file possiamo esserti più facilmente d'aiuto.

L'UDF di Anthony47 mi sembra funzioni bene.

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi Anthony47 » 04/04/16 11:58

Grazie canapone per le tue formule al cubo.

L'errore #Nome probabilmente e' dovuto al fatto che hai messo il codice non in un modulo standard del vba (es Modulo1) ma in un "modulo di classe di un foglio".

Se il duplicato richiesto non esiste allora ti viene restituito 0; se vuoi mascherarlo allora sostituisci nel codice della funzione
myDups = retArr(WOne)
con
Codice: Seleziona tutto
If retArr(WOne) <> 0 Then myDups = retArr(WOne) Else myDups = ""


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: duplicato in

Postdi giorgioa » 04/04/16 16:41

Salve Canapone,

se vuoi ti propongo il file ma ti servirebbe a poca cosa.
Il periodo AK:BI ha sempre e cmq dei numeri.
Solo che a volte i numeri doppi non ci sono o se ce ne uno
oppure zero (mi riferisco agli altri casi in cui di doppioni
o mancano o ce ne uno solo ma cmq i numeri ci sono sempre)
se con zero doppioni scrive il primo numero cioè quello di AK
Tutto qua, ma se ne è presentato un altro problema che spiego di seguito.

Mentre dovrei dare un po di fastidio ad Anthony,
preciso che in mancanza di doppioni lo zero mi sta bene
mentre c'è il caso che alcune volte si presenta un triplone
cioè 3 numeri uguali e in questo caso mi servirebbe ne scrivesse
dei 3 uguali uno.
Se si può apportare una correzione.
Purtroppo nel corso della estensione della formula si sono
presentati questi problemi.
Però se il caso si potrebbe soprassedere essendo che di questi
triploni se ne presentano pochissimi.

Saluti
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi CANAPONE » 04/04/16 16:55

Ciao Giorgio,

riesci ad allegare un file con qualche esempio?

Forse qualche amico del Forum riesce più facilmente ad esserti d'aiuto.

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi giorgioa » 04/04/16 17:37

Salve

ecco il file con i casi possibili.

http://www.filedropper.com/duplicati

Salve
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi CANAPONE » 04/04/16 18:49

Ciao,

adatto la seconda formula al tuo file.

In BI10 da confermare con control + maiusc+ invio

=SE.ERRORE(PICCOLO(SE(FREQUENZA($AK10:$BI10;$AK10:$BI10)>1;MATR.TRASPOSTA($AK10:$BI10);"");COLONNE($A:A));"")

una volta confermata copi la formula in basso ed a destra

Ho modificato l'ultimo segmento da RIGHE a COLONNE perchè la formula produce dei risultati per riga copiandola verso destra.

Spero sia d'aiuto
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi CANAPONE » 04/04/16 19:08

Ciao di nuovo,

la formula devi copiarla in BJ10.

Se vuoi che la serie rispetti l'ordine in cui compaioni i doppioni o le triplette...sempre in BJ10



Codice: Seleziona tutto
=SE.ERRORE(INDICE($AK10:$BI10;PICCOLO(SE(FREQUENZA(CONFRONTA($AK10:$BI10;$AK10:$BI10;0);CONFRONTA($AK10:$BI10;$AK10:$BI10;0))>1;MATR.TRASPOSTA(RIF.COLONNA($AK:$BI)-RIF.COLONNA($AK$1)+1);"");COLONNE($A:A)));"")


Anche questa è da confermare con control+maiusc+invio.


http://www.filedropper.com/duptrip

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi Anthony47 » 04/04/16 20:04

Per gestire il triplone, il quadruplone etc sostituisci in
If Application.WorksheetFunction.CountIf(myRan, myVal.Value) = 2 Then
quel "= 2" con "> 1"

Vedi le formule aggiornate da canapone, sopra.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: duplicato in

Postdi giorgioa » 05/04/16 23:16

Salve,

OK siala formula che la Function soddisfano le esigenze richieste.

Non ho risposto prima per mancanza di tempo.

Cordiali saluti ad entrambi e soprattutto GRAZIE.
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi giorgioa » 07/04/16 12:23

Salve Canapone,

cortesemente un aiuto.
vorrei nella formula matrice in BL7 inserire
2 gruppi di numeri segnalati col colore.
La formula mi dovrebbe segnalare/addizionare
complessivamente i punti ottenuti in entrambi i gruppi
se presenti nella venti.
Il tutto dovrebbe essere spiegato più chiaro nel file allegato.
Se si può.

Grazie.

http://www.filedropper.com/duplicati_1
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi giorgioa » 07/04/16 12:32

Salve,

mi scuso, mi è sfuggito di fare NOME nel messaggio precedente ma
se presente e competente può intervenire chiunque.

Grazie
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi CANAPONE » 08/04/16 17:36

Ciao,

non credo di aver capito.

La formula conta quante volte compaiono i numeri evidenziati in giallo arancione nel range P11:AI14

=MATR.SOMMA.PRODOTTO(CONTA.SE(P11:AI14;AK10:AT10))

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi giorgioa » 08/04/16 18:20

Salve Canapone,

ho intravisto con ritardo che la richiesta non ti sarebbe stata chiara.
I gruppi richiesti li ho messi vicini per cui.
Cerco di essere più chiaro,
fai conto che i 2 gruppi di 5 celle cisacuna siano lontani
il primo gruppo = AK:AO
il secondo gruppo =BF:BJ
questi due gruppi quanti numeri uguali hanno nelle righe sotto
di P:AI?
Inteso sempre rigo per rigo
Nella cella BL7 ho inserito la matriciale pensando di essere più chiaro.
Da tenere presente che la formula segnalasse i punti complessivi dei
che farebbero i 2 gruppi.

E grazie dell'aiuto.

Salve
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Re: duplicato in

Postdi CANAPONE » 08/04/16 19:25

Ciao,

qual è il risultato atteso?

Vedo una formula in BL10: cosa deve trovare la formula in CD1?

=SOMMA(--(MATR.PRODOTTO(CONTA.SE($AK10:$AO10;$P11:$AI15);RIF.RIGA($A$1:$A$20)^0)=CD$1))

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: duplicato in

Postdi giorgioa » 08/04/16 20:45

Ciao,

prendiamo in considerazione solo il primo gruppo di 5 celle
AK10:AO10 e utilizzola la formula in matrice con un solo gruppo
di 5 celle cioè AK10:AO10
SOMMA(--(MATR.PRODOTTO(CONTA.SE($AK10:$AO10;$P11:$AI14);RIF.RIGA($A$1:$A$20)^0)=2))
in cui come risultato mi da 3 coppie di 2:
P11:Ai11 =68-49 quindi punti 2;
P13:AI13 =47-49 quindi 2punti;
P14:AI14 = 68-73 quindi 2 punti.
La formula mi dice che ci sono 3 volte 2 punti Bl10=3.
Ora vorrei che nella formula (che sia questa o un'altra differente) aggiungere un altro
gruppo di celle e indico oltre a AK10:AO10 anche BF10:BJ10 da confrontare se nelle
righe P11:AI14 quanti numeri uguali ci sono di un gruppo e dell'altro
e riporto anche il risultato dei numeri presenti nelle righe in base a quanto scrivo in BL1
cioè se in BL1 scrivo 3 vorrei sapere quanti risultati da 3 numeri ci sono nelle righe
da P11:AI14
(esito rigo per rigo):
P11:AI11= 68-49;
P13:AI13 =47-49-54-56:
P14:AI14 =68-73:

Quindi se scrivo in BL1 2 BL10 =2;
se scrivo 5 BL10 =0;
se scrivo 4 BL10 = 1.
Ciao
giorgioa
Utente Senior
 
Post: 544
Iscritto il: 16/04/12 15:00

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "duplicato in":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti