/ / Atrast pirmo neaizpildīto šūnu katrai kolonnai no rindām, kas atbilst meklēšanas vaicājumam, lai apvienotu dublētus rezultātus - excel, excel-vba, excel-formula, vlookup, excel-2013, vba

Atrodiet pirmo ne-tukšo šūnu katrai kolonnai no rindām, kas atbilst meklējumam, lai apvienotu dublētus rezultātus - excel, excel-vba, excel-formula, vlookup, excel-2013, vba

Man ir izklājlapa, kas ir apvienots kontaktssarakstus no vairākiem avotiem, ar dažādām pilnīguma pakāpēm. Daži kontakti ir snieguši savu informāciju vairākas reizes, bet katru reizi atstāja dažādus laukus tukšu. Es vēlos noņemt vismaz dažus dublikātus, apvienojot rindas, lai aizpildītu tukšās vērtības.

Šeit ir vienkāršots piemērs tam, kā mani dati izskatās

id    email                    phone    company    job title
01    johnsmith@example.com    5550123  acme inc
01    johnsmith@example.com             acme inc   CEO
02    janedoe@gmail.com                 XYZ Co
02                             5555555
03    frank@school.edu
03    frank@school.edu                  school
03    frank@school.edu         5551111
04    bob@promoted.com                  job inc    VP Sales
04    bob@promoted.com                  job inc    mail clerk

Ja es varu iegūt visus tukšos tukšumusdublikātu likvidēšana, nezaudējot datus un risinot tādus gadījumus kā pēdējais, būs niecīga. Darbs arī risinājums, kas arī atceļ, bet nepārkāpjot vai dzēšot lietu.

Es neesmu atradis veidu, kā iegūt perspektīvuizmantojot visas atbilstības, līdz tā konstatē, ka rezultāts nav tukšs, ja vien es nevienu šķiroju. Diemžēl maniem reāliem datiem ir 100 + kolonnas un vairāki tūkstoši rindu, tāpēc to darot manuāli katrai slejai nav iespējams.

Atbildes:

0 atbildei Nr. 1

Lūk, kā to izdarīt.

Pieņem, ka:

  1. Dati ir 1. lapā un tie sākas šūnā A1.

  2. Jums ir tukša lapa2.

Procedūra:

  1. Pārslēgties uz lapu2.

  2. Šūnā A1 ievadiet šo formulu: =Sheet1!A1

  3. Kopējiet šo šūnu uz B1 un A2.

  4. B2 šūnā ievadiet šo formulu:

.

=IFERROR(INDEX(INDEX(Sheet1!B:B,MATCH(Sheet1!$A2,Sheet1!$A:$A,0)):INDEX(Sheet1!B:B,MATCH(Sheet1!$A2,Sheet1!$A:$A,1)),MATCH(TRUE,LEN(INDEX(Sheet1!B:B,MATCH(Sheet1!$A2,Sheet1!$A:$A,0)):INDEX(Sheet1!B:B,MATCH(Sheet1!$A2,Sheet1!$A:$A,1)))>0,0)),"")

Šī ir masīva formula un tā ir jāapstiprina ar Ctrl+Maiņa+Ievadiet.

.

  1. Kopēt šūnu B2.

  2. Atlasiet diapazonu B3 līdz B2000 (vai arī tālu uz leju, lai dotos) un ielīmējiet.

  3. Atlasiet visu B sleju, noklikšķinot uz kolonnas B galvenes lapas augšpusē.

  4. Kopēt B sleju

  5. Izvēlieties kolonnu no C līdz Z (vai daudziem, kas jums nepieciešams) un ielīmējiet.

Tieši tā.

Padoms: Kad formulas ir veikušas, jūs varat kopēt visas lapas 2 šūnas, noklikšķinot uz tiny pelēkā kvadrāta lapas augšējā kreisajā augšējā stūrī un ielīmēt kā vērtības. Tas aizstās visas formulas ar cietajām vērtībām 2. lapā.


0 atbildei Nr. 2

Tas ir balstīts uz principu, ka asleju sagataves un vērtības atstās sagataves apakšā. Velosipēdējot pa kolonnām un šķirojot katru līdzīgu ID daļu, neaktīvās vērtības palielināsies uz augšu. Tos var viegli izmantot, lai aizpildītu šūnas zemākajās rindās.

Sub fill_in_the_blanks()
Dim rw As Long, cl As Long, id As Variant
With Worksheets("Sheet1")
With .Cells(1, 1).CurrentRegion
.Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlYes
For rw = 2 To .Rows.Count
If id <> .Cells(rw, 1).Value2 Then
id = .Cells(rw, 1).Value2
With .Cells(rw, 1).Resize(Application.CountIf(.Columns(1), .Cells(rw, 1).Value), .Columns.Count)
For cl = 2 To .Columns.Count
.Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
Key2:=.Columns(cl), Order2:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlNo
If CBool(Application.CountA(.Columns(cl))) And _
CBool(Application.CountBlank(.Columns(cl))) Then
With .Columns(cl).SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = "=r[-1]c"
.Value = .Value2
End With
End If
Next cl
End With
End If
Next rw
.RemoveDuplicates Columns:=1, Header:=xlYes
End With
End With
End Sub

Darbības jomu regulē Range.CurrentRegion īpašums. Nedrīkst būt pilnīgi tukšas rindas vai kolonnas, kas segregē datu "salu".

Aizpildiet tukšās vietas


Saistītie jautājumi


Komentāri (0)

Pievieno komentāru