È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Trovare valori uguali

Ultimo Aggiornamento: 09/10/2023 08:53
Post: 28
Registrato il: 23/02/2014
Città: AGUGLIANO
Età: 42
Utente Junior
2010
OFFLINE
26/09/2023 19:42

Salve a tutti !!!
Avrei la necessità di trovare i valori uguali nelle due colonne ( B;C ) e riportare il risultato nella colonna D come da esempio.
Post: 4.956
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
27/09/2023 10:59

Prova questa macro; i dati vengono estratti in colonna F

vb
Sub controllauguali()
Dim i As Long
Dim ur As Long
Dim riga As Long
riga = 1
ur = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To ur
    If WorksheetFunction.CountIf(Range("c:c"), Range("B" & i).Value) > 0 And WorksheetFunction.CountIf(Range("F:f"), Range("B" & i).Value) = 0 Then
        Cells(riga, 6).Value = Range("b" & i)
        riga = riga + 1
    End If
Next i
End Sub

Alfredo
Post: 7.358
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
27/09/2023 11:12

Ciao Prova anche questa

Sub Uguali()
Dim r, c, d, x, y, dd As New Collection

r = 1
c = 4
Range("D:D").Clear
For x = 1 To Cells(Rows.Count, 2).End(xlUp).Row
    d = Cells(x, 2)
    On Error Resume Next
    dd.Add d, CStr(d)
    On Error GoTo 0
Next x
For x = 1 To dd.Count
  d = Val(dd(x))
  For y = 1 To Cells(Rows.Count, 3).End(xlUp).Row
    If d = Cells(y, 3) Then Cells(r, c) = d: r = r + 1: Exit For
  Next y
Next x
Range("D1").CurrentRegion.Sort key1:=Range("D1"), order1:=xlAscending
End Sub


quella di Alfredo che saluto, è più lineare, e non usa la collection per i dati unici, ma non ordina, ma puoi ovviare copiando l'ultima mia riga cambiando "D1" in "F1"

Ciao By Sal (8-D
[Modificato da by sal 27/09/2023 11:15]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 4.957
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
27/09/2023 11:22

Salvatore l'ordinamento, visto che è una cosa banale, lo avevo lasciato all'utente

Alfredo
Post: 783
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
27/09/2023 11:52

vedi che significa oziare facendo il moderatore ? devo essermi rimbecillito

Alfredo e Sal, mi spiegate cosa si intende esattamente per

trovare i valori uguali nelle due colonne ( B;C )

Grazie
Leo

LEO
https://t.me/LordBrum
Post: 7.359
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
27/09/2023 11:56

Ciao Leo niente di difficile, sarebbe un confronto tra le 2 colonne e trovare quali dati(numeri) sono presenti nelle 2 colonne.

esempio il numero 100 e presente in una colonna e non nell'altra, quindi non viene riportato, se il numero 1 e presente sia nella colonna B che nella colonna C allora deve essere riportato nella colonna D o quella di scelta.

Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 784
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
ONLINE
27/09/2023 12:04

ecco la mia stupidità, io cercavo le uguaglianze rigo per rigo invece di considerare tutta la colonna

Grazie Sal, scusa

Leo

LEO
https://t.me/LordBrum
Post: 1.224
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Veteran
2016
OFFLINE
27/09/2023 12:57


Buongiorno a tutti lato formule

Inserisci una riga in modo da fare partire i dati da riga 2.... uso una colonna di servizio in F2 da trascinare in basso


=SE.ERRORE(AGGREGA(15;6;INDICE($C$2:$C$19;AGGREGA(15;6;RIF.RIGA($2:$19)-1/(CONTA.SE($B$2:$B$19;$C$2:$C$19)>0);RIF.RIGA($2:$19)-1));RIF.RIGA(A1));"")

In D2 da trascinare in basso


=SE.ERRORE(INDICE($F$2:$F$19;CONFRONTA(0;INDICE(CONTA.SE($D$1:$D1;$F$2:$F$19&"");;);0));"")


[Modificato da DANILOFIORINI 27/09/2023 13:00]
Post: 319
Registrato il: 11/07/2015
Età: 33
Utente Senior
office 2013-2016
OFFLINE
27/09/2023 17:12

D1=SE.ERRORE(INDICE($C$1:$C$18;PICCOLO(SE(FREQUENZA(SE(VAL.NUMERO(CONFRONTA($C$1:$C$18;$B$1:$B$18;0));$C$1:$C$18);$C$1:$C$18);RIF.RIGA($C$1:$C$18)-RIF.RIGA($C$1)+1);RIGHE($A$1:A1)));"")

Control+shift+enter

copia in basso
Post: 320
Registrato il: 11/07/2015
Età: 33
Utente Senior
office 2013-2016
OFFLINE
27/09/2023 17:13

D1=SE.ERRORE(INDICE($C$1:$C$18;PICCOLO(SE(FREQUENZA(SE(VAL.NUMERO(CONFRONTA($C$1:$C$18;$B$1:$B$18;0));$C$1:$C$18);$C$1:$C$18);RIF.RIGA($C$1:$C$18)-RIF.RIGA($C$1)+1);RIGHE($A$1:A1)));"")

Control+shift+enter

copia in basso
Post: 28
Registrato il: 23/02/2014
Città: AGUGLIANO
Età: 42
Utente Junior
2010
OFFLINE
27/09/2023 22:09

Grazie a tutti !!!
Post: 29
Registrato il: 23/02/2014
Città: AGUGLIANO
Età: 42
Utente Junior
2010
OFFLINE
09/10/2023 08:53

Se volessi avere dei valori da confrontare anche nella colonna A ?
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 19:01. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com