Condividi:        

cercansi numeri dopp. tripl ecc

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

cercansi numeri dopp. tripl ecc

Postdi giorgioa » 02/07/23 09:28

Salve e buona domenica

non trovo in ricerca su internet una formula o function oppure macro che cerchi numeri duplicati in orizzontale tutti in verticali mah!!!

mi rivolgo qui se c'è qualcuno che mi può aiutare

formula, function, codice macro

ho un archivio che va da J2:AH2 se in questo intervallo ci sono numeri raddoppiati o triplicati da riportare un numero dei doppi trovati in AI2, AK2, AL eccmax 6

se formula da trascinarla in giu se macro indico variabile c= cells(Rows.count, 3).End(xlup).row -1

spero di essere stato chiaro

Grazie dell'aiuto
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Sponsor
 

Re: cercansi numeri dopp. tripl ecc

Postdi Anthony47 » 02/07/23 21:25

Se usi Office 365 o 2021 puoi provare la formula
Codice: Seleziona tutto
=LET(myData;J2:AH2;myInt;DATI.ORDINA(UNICI(MATR.TRASPOSTA(myData*(CONTA.SE(myData;myData)>1))));MATR.TRASPOSTA(INDICE(myInt;SEQUENZA(RIGHE(myInt)-1;;2))))

Per Office piu’ vecchi la formula diventa alquanto pesante pertanto procedo direttamente con l'ipotesi Macro, che corrisponde al sequente codice:
Codice: Seleziona tutto
Sub Multiplix(ByRef myRan As Range, ByRef oPos As Range)
Dim oArr(), Warr, I As Long, J As Long
Dim oneL, hMax As Long, ccVal, myMatch, UB2 As Long
'
Warr = Range(myRan.Cells(1, 1), myRan.Cells(50000, 1).End(xlUp)).Resize(, 25).Value
UB2 = UBound(Warr, 2)
ReDim oArr(1 To UBound(Warr), 1 To UB2)
'
For I = 1 To UBound(Warr)
    oneL = Application.WorksheetFunction.Index(Warr, I, 0)
    For J = 1 To UB2
        ccVal = oneL(J)
        If ccVal < 999 Then
            oneL(J) = 999
            myMatch = Application.Match(ccVal, oneL, False)
            If Not IsError(myMatch) Then
                oArr(I, UB2) = oArr(I, UB2) + 1
                oArr(I, oArr(I, UB2)) = ccVal
                oneL(myMatch) = 999
                If oArr(I, UB2) > hMax Then hMax = oArr(I, UB2)
            End If
        End If
    Next J
Next I
If hMax > 6 Then hMax = 6
oPos.Resize(UBound(oArr), hMax).Value = oArr
End Sub


Ho capito che userai questo codice da un’altra macro; dovrai richiamare la Sub Multiplix “passandogli nella chiamata) l’indirizzo di inizio del tuo tabellone e l’indirizzo dove l’output sara’ creato.
Esempio:
Codice: Seleziona tutto
Call Multiplix(Range("J2"), Range("AX2"))             ‘Se l’output lo vuoi da AX2 in poi


L’area del tabellone da esaminare sara’ calcolata dalla Sub Multiplix, dando per assodato che la larghezza e’ di 25 colonne.
Darei per scontato che lo stesso quesito e' stato postato per errore anche nella vecchia discussione intitolata Function, quindi posso procedere a cancellare quel messaggio

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19425
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cercansi numeri dopp. tripl ecc

Postdi giorgioa » 03/07/23 08:45

Salve, adesso provo e la formula che la macro
per l'altro post mi pare di non aver scritto il titolo della discussione
ma l'argomento è questo,
Si ho da pochissimo installato il 2021 occasione imperdibile di appena 13 € su sito planet
Se posso una domanda fuori luogo, mi è venuto il prurito di passare la macro in cartelle personali
solo che ogni volta che apro il file succede di aver aperto altri 3-4 file personali
possibile che non correggono questo inconveniente oppure occorre fare qualche altra operazione.
Grazie e provo quanto mi hai fatto
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: cercansi numeri dopp. tripl ecc

Postdi giorgioa » 03/07/23 11:18

sto provando la formula ma esce #calc!

mica devo aggiungere le parentesi fraffe
ho provato ma senza esito
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: cercansi numeri dopp. tripl ecc

Postdi Anthony47 » 03/07/23 11:31

#CALC! esce quando non c'e' nulla da visualizzare
Se vuoi evitare, usa SE.ERRORE; es
Codice: Seleziona tutto
=SE.ERRORE(LET(myData;J7:AH7;myCnt;CONTA.SE(myData;INDICE(myData;SEQUENZA(COLONNE(myData))));pippo;DATI.ORDINA(UNICI(MATR.TRASPOSTA(myData)*(myCnt>1)));pappo;MATR.TRASPOSTA(INDICE((pippo);SEQUENZA(RIGHE(pippo)-1;;2)));pappo);"")

No, non devi introdurre come formula a matrice (tanto meno aggiungere le graffe a mano)


Se posso una domanda fuori luogo, mi è venuto il prurito di passare la macro in cartelle personali
solo che ogni volta che apro il file succede di aver aperto altri 3-4 file personali
possibile che non correggono questo inconveniente oppure occorre fare qualche altra operazione.
All'avvio del programma, vengono aperti automaticamente i file che si trovano nella directory XLSTARTUP.
Il percorso completo in genere e'
C:\Users\(User name)\AppData\Microsoft\Excel\XLSTART
oppure
C:\Program Files\Microsoft Office\Office xx\XLSTART
oppure
C:\Program Files\Microsoft Office xx\root\Office xx\XLSTART
Oppure puo' essere una directory personalizzata tramite Menu /Opzioni /Impostazioni avanzate; gruppo Generale

Se non vuoi che vengano aperti, devi spostarli in altra directory
Avatar utente
Anthony47
Moderatore
 
Post: 19425
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cercansi numeri dopp. tripl ecc

Postdi Anthony47 » 03/07/23 23:32

Ti sarai accorto che per la formula con SE.ERRORE ho usato una formula diversa da quella che avevo già proposto: è una svista di cui mi accorgo solo ora. Anche se funziona, usa quella proposta in precedenza che è più efficiente; la sintassi
Codice: Seleziona tutto
 =SE.ERRORE(LaFormula;"")
Avatar utente
Anthony47
Moderatore
 
Post: 19425
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cercansi numeri dopp. tripl ecc

Postdi giorgioa » 04/07/23 07:04

parliamo della formula

ho utilizzato la seconda quella con se.Errore:
la incollo in ax2 e devo trascinarla a DX ? se si all'intervallo dove ci sarebbero i duplicati cioè J2 e AH2 devo aggiungere il $?
perchè spostandomi a DS va ad invadere un altro intervallo e cmq alcune cella danno il #CALC! e altre celle in bianco

per la macro l' ho inserita in unalta macro con call ecc e non mi da nessun risultato
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00

Re: cercansi numeri dopp. tripl ecc

Postdi Anthony47 » 04/07/23 09:01

1) Hai notato il mio messaggio di ieri sera tardi in cui segnalavo che con SE.ERRORE avevo usato (per errore) una formula diversa da quella che ti avevo dato precedentemente?

2) La formula non ha bisogno di $ e non deve essere copiata verso destra, perche’ il risultato “si allarga” da solo per visualizzare tutti i risultati calcolati (merito della prestazione “matrice dinamica” introdotta con XL365). Se allargandosi non trovasse spazio a sufficienza ti visualizzerebbe l’errore #ESPANSIONE!

3) Proprio pensando all’errore #ESPANSIONE mi sono ricordato che avevi chiesto “max 6 [risultati]”, che la macro controlla ma non la formula, che quindi ha bisogno di essere modificata per inserire questa clausola.

Per tutte queste considerazioni, la formula da usare in AI2 (o dove vuoi i risultati) e’
Codice: Seleziona tutto
=SE.ERRORE(LET(myData;J2:AH2;myInt;DATI.ORDINA(UNICI(MATR.TRASPOSTA(myData*(CONTA.SE(myData;myData)>1))));MATR.TRASPOSTA(INDICE(myInt;SEQUENZA(MIN(6;RIGHE(myInt)-1);;2))));"")


Guarda il mio file di test: https://www.dropbox.com/s/81m9f3g2vke7o ... .xlsm?dl=0
La macro che usa la “soluzione via macro” e’ la Sub evvai

Se a te non restituisce i risultati allora forse e' meglio che pubblichi un file dimostrativo di questa situazione

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19425
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cercansi numeri dopp. tripl ecc

Postdi giorgioa » 04/07/23 17:58

Save Anthony

cosa vuoi che ti dica
col copia e incolla da Pc-Facile non funzione
:D :D :D
apro il tuo file ho fatto copia e incolla dei tuoi dati
:lol: :lol: :lol:
FUNZIONA PERFETTAMENTE!!!

Poi ho provato anche la macro
e a Dio piacendo anche quella funziona
naturalmente ho inserito i miei dati sostituendo i tuoi
e quindi funziona

Non so da cosa dipendeva il non funzionamento

a questo punto con i dovuti ringraziamenti

posso dire MISSIONE COMPIUTA
(nn mi viene la parola di chiusura)
giorgioa
Utente Senior
 
Post: 773
Iscritto il: 16/04/12 15:00


Torna a Applicazioni Office Windows


Topic correlati a "cercansi numeri dopp. tripl ecc":


Chi c’è in linea

Visitano il forum: Nessuno e 88 ospiti