Excel si duplica in una colonna in base a un'altra


1

Sperando che qualcuno possa aiutare con questo. Abbiamo un foglio di calcolo con i dati come di seguito:

A       B   C   D       E           F   G
777142  233 4   45151   te01-ccm    0
777303  233 6   45151   te01-ccm    0
775827  233 6   53922   rk01-ccm    0
777238  233 6   55520   rk01-ccm    0
775603  233 6   61139   te01-ccm    0
775824  233 6   61408   rk01-ccm    0
777833  233 6   67884   tt01-ccm    0
777837  233 6   74772   tt01-ccm    0
777838  233 4   82364   tt01-ccm    0
777809  233 4   87726   tt01-ccm    0
774541  233 4   87833   tt01-ccm    0
774550  233 4   87833   tt01-ccm    0
774560  233 4   87833   tt01-ccm    0
777128  233 6   90486   te01-ccm    0
775396  233 6   90741   nh01-ccm    0
777092  233 4   91310   te01-ccm    0
774568  233 6   91839   tt01-ccm    0
775398  233 6   100230  nh01-ccm    0
775677  233 6   101461  te01-ccm    0
777206  233 4   101772  rk01-ccm    0
777188  233 6   107519  rk01-ccm    0
775819  233 4   108333  rk01-ccm    0
775831  233 6   108333  rk01-ccm    0
775813  233 6   109686  rk01-ccm    0

Quello che devo fare è avere una "Y" nella colonna G per i record in cui:

  • Colonna C = 4
  • e se la colonna D è un duplicato, allora non esiste una colonna C = 6 per quella D.

Per esempio:

Row 1: C=4 D=45151, however Row 2: C=6 D=45151 so G = " ".
Row 9: C=4 D=82364, no duplicate D row so G = "Y".

Ho provato diverse combinazioni IF / COUNTIF ma finora non ho avuto successo. Qualsiasi aiuto davvero apprezzato.

tip2tail


I duplicati sono sempre garantiti come contigui? Il Col D è garantito in ordine crescente? Può esserci più di un duplicato per un valore in D?
fixer1234,

Se c'è un duplicato con un 4 e un 6, il record 4 precederà sempre il 6?
fixer1234,

@ fixer1234 Possono esserci più di un C = 4 per qualsiasi valore D, sempre e solo 0 o 1 C = 6. D sarà sempre in ordine crescente. C = 4 sarà sempre prima di C = 6 per qualsiasi valore D.
tip2tail,

formula o macro?
Raystafarian,

@Raystafarian In qualsiasi modo funzioni! : D
tip2tail

Risposte:


1

Ecco una soluzione. Supponiamo che la prima riga di dati sia la riga 2. Ho bloccato 100 come ultima riga di dati; rendilo quello che è (o puoi divertirti con le funzioni e calcolarlo). Formula per G2:

    =IF(AND(C2=4,OFFSET(D2,MATCH(6,C3:C$100,0),0,1)=D2),"Y"," ")

Copialo per tutte le righe di dati. Nota che l'ultima voce sarà #NA. Se è importante che non sia uno spazio vuoto, puoi divertirti con IFNA o IFERROR o lasciare vuota l'ultima cella poiché non può mai essere "Y".

Modifica: dopo aver capito la logica, mi sono reso conto che puoi usare una formula più semplice. Lo mostrerò separatamente nel caso in cui tu abbia già implementato l'originale. Le funzioni match e offset realizzano la stessa cosa di un vlookup. Questa formula farà la stessa cosa:

    =IF(AND(C2=4,VLOOKUP(6,C3:D$100,2,0)=D2),"Y"," ")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.