Palyginkite 2 stulpelius per VBA „Microsoft Excel“

Anonim

Jei jums įdomu, kaip palyginti du duomenų stulpelius, kurių eilutės yra milijonai, ir išgauti unikalias abiejų stulpelių vertes, turėtumėte perskaityti šį straipsnį. Mes naudosime VBA kodą, kad palygintume du duomenų stulpelius ir parodytume skirtumą kituose dviejuose stulpeliuose.

Klausimas: A ir B stulpeliuose yra daug verčių. Noriu, kad makrokomanda patikrintų daugiau nei 40 tūkst. Duomenų eilučių abiejuose stulpeliuose, o tada iš kiekvieno stulpelio išskirtų unikalių įrašų sąrašą į kitą stulpelį, ty C stulpelius & D atitinkamai. Šiame pavyzdyje aš paimu tik 40 eilučių duomenų pavyzdžių.

Originalų klausimą galite rasti čia
Toliau pateikiamas duomenų momentinis vaizdas:

Norėdami palyginti dviejų stulpelių sąrašą, norėdami paleisti VB redaktorių, turime atlikti šiuos veiksmus:

  • Spustelėkite skirtuką Kūrėjas
  • Iš kodų grupės pasirinkite „Visual Basic“

  • Nukopijuokite žemiau esantį kodą į standartinį modulį
 Sub PullUniques () Dim rngCell kaip diapazonas kiekvienam rngCell diapazone ("A2: A40") Jei WorksheetFunction.CountIf (Diapazonas ("B2: B40"), rngCell) = 0 Tada Range ("C" ir Rows.Count). Pabaiga (xlUp) .Offset (1) = rngLąstelės pabaiga, jei kita kiekvienam rngCell diapazone ("B2: B40") Jei darbalapio funkcija.CountIf (Diapazonas ("A2: A40"), rngCell) = 0 Tada diapazonas ("D") & Rows.Count). End (xlUp). Offset (1) = rngLąstelės pabaiga, jei kita pabaiga 

  • Visa aukščiau pateikta makrokomanda yra paleista; arba mes galime paspausti klavišą F5 -jei šiuo metu esate „Visual Basic“ redaktoriaus ekrane -arba galime naudoti sparčiuosius klavišus „ALT + F8“, pasirinkite makrokomandą ir spustelėkite mygtuką „Vykdyti“

  • Unikalus sąrašas iš A ir B stulpelių bus automatiškai sugeneruotas C ir D stulpeliuose

Kodo paaiškinimas:

Pirmiau pateiktame kode mes naudosime IF funkciją kartu su For ciklui, kad gautume rezultatą.

  • Dim rngCell deklaruojame kaip diapazoną; „rngCell“ kaip diapazono paskelbimo tikslas yra, kad pavyzdyje norime priskirti pavyzdinį diapazoną „A2: A40“ konkrečiu pavadinimu, ty „rngCell“.
  • Kiekvienam „rngCell In Range“ („A2: A40“); patikrinsime kiekvieną langelį „rngCell“ su sąlyga
  • Jei WorksheetFunction.CountIf (Diapazonas ("B2: B40"), rngCell) = 0 Tada; ši kodo eilutė naudoja funkciją COUNTIF VBA, kad patikrintų kriterijų diapazoną B2: B40 su kriterijais rngCell yra lygus nuliui, tada C stulpelyje bus išsaugota rngCell išsaugota vertė
  • Panašiai vykdysime kiekvieną stulpelį B stulpeliui ir išskirtume unikalias D stulpelio vertes

Išvada: Iš kiekvieno stulpelio galime gauti unikalų teksto ar verčių sąrašą; stulpelio C (Rezultatai - yra 1 sąraše, bet ne 2 sąraše) ir D stulpelio (Rezultatai - yra 2 sąraše, bet ne 1 sąraše) antraštės pavadinimas. Jei turime panašų reikalavimą, bet stulpelių skaičius yra didesnis nei du, turime gauti kodą, kad gautume rezultatą.

Jei jums patiko mūsų tinklaraščiai, pasidalykite jais su draugais „Facebook“. Taip pat galite sekti mus „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime patobulinti, papildyti ar naujovinti savo darbą ir padaryti jį geresnį. Rašykite mums adresu pašto svetainę