Conditionally append non-matching rows to bottom of table and dealing with blanks using VBA in excel
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I'm attempting to create a VBA module in excel that compares two columns of property numbers (master: column A, sheet1, destination: column A, sheet2) and returns all non-matching values from the master (i.e. present in master, but not in destination) to the bottom of the destination table (i.e. first blank row at the end of the destination table). So far I have something that works pretty well, but I discovered a few hiccups when testing.
Code:
Sub MergeData()
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim recRow As Long
Dim lastRow As Long
Dim fCell As Range
Dim i As Long
'Define our worksheets
Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet2")
Application.ScreenUpdating = False
recRow = 1
With wsSource
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
'See if item is in Master sheet
Set fCell = wsDest.Range("A:A").Find(what:=.Cells(i, "A").Value, lookat:=xlWhole, MatchCase:=False)
If Not fCell Is Nothing Then
'Record is already in master sheet
recRow = fCell.Row
Else
'Need to move this to master sheet after last found record
.Cells(i, "A").Cells.Copy
wsDest.Cells(lastRow, "A").Cells.Insert
recRow = recRow
End If
Next i
One issue I noticed was when there are blanks in the destination table things get a little wonky (example):
Before running module:
M|D
1|1
2|
3|3
After:
M|D
1|1
2|
3|2
|3
Notice that the blank cell remains and the order of the returned results is changed. My desired result is:
M|D
1|1
2|
3|3
|2
The desired result preserves the order, as well as the blank (which shouldn't exist in the master data, but I'm preparing for worst case scenarios as I am not the DBA for the master table). Not getting the desired result in this instance is problematic because the destination sheet needs to be "static" (i.e. preserve row order). There will be columns next to column A in the destination sheet where multiple users will be entering comments and if the destination table shifts (beyond adding rows at the end) or re-orders comments will become detached from their original associated property number. Chaos ensues and so on.
I'm very green with VBA so I can't seem to figure out the errors of my ways (there may be more errors, but I have yet to discover anything else when testing so pointing them out would be greatly appreciated). Also, if this information is pertinent, the master list is a SQL connected table that will be periodically refreshed (so the process would be refresh master (dynamic, i.e. order of rows can and does change), run module to return new property numbers to bottom of destination sheet, users add comments and filter destination sheet in excel (static, i.e. order of rows do not change except when all columns are simultaneously filtered or sorted). Thank you all in advance. This community has helped me break through so many roadblocks, hopefully this will be another success story.
excel vba excel-vba
add a comment |
I'm attempting to create a VBA module in excel that compares two columns of property numbers (master: column A, sheet1, destination: column A, sheet2) and returns all non-matching values from the master (i.e. present in master, but not in destination) to the bottom of the destination table (i.e. first blank row at the end of the destination table). So far I have something that works pretty well, but I discovered a few hiccups when testing.
Code:
Sub MergeData()
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim recRow As Long
Dim lastRow As Long
Dim fCell As Range
Dim i As Long
'Define our worksheets
Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet2")
Application.ScreenUpdating = False
recRow = 1
With wsSource
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
'See if item is in Master sheet
Set fCell = wsDest.Range("A:A").Find(what:=.Cells(i, "A").Value, lookat:=xlWhole, MatchCase:=False)
If Not fCell Is Nothing Then
'Record is already in master sheet
recRow = fCell.Row
Else
'Need to move this to master sheet after last found record
.Cells(i, "A").Cells.Copy
wsDest.Cells(lastRow, "A").Cells.Insert
recRow = recRow
End If
Next i
One issue I noticed was when there are blanks in the destination table things get a little wonky (example):
Before running module:
M|D
1|1
2|
3|3
After:
M|D
1|1
2|
3|2
|3
Notice that the blank cell remains and the order of the returned results is changed. My desired result is:
M|D
1|1
2|
3|3
|2
The desired result preserves the order, as well as the blank (which shouldn't exist in the master data, but I'm preparing for worst case scenarios as I am not the DBA for the master table). Not getting the desired result in this instance is problematic because the destination sheet needs to be "static" (i.e. preserve row order). There will be columns next to column A in the destination sheet where multiple users will be entering comments and if the destination table shifts (beyond adding rows at the end) or re-orders comments will become detached from their original associated property number. Chaos ensues and so on.
I'm very green with VBA so I can't seem to figure out the errors of my ways (there may be more errors, but I have yet to discover anything else when testing so pointing them out would be greatly appreciated). Also, if this information is pertinent, the master list is a SQL connected table that will be periodically refreshed (so the process would be refresh master (dynamic, i.e. order of rows can and does change), run module to return new property numbers to bottom of destination sheet, users add comments and filter destination sheet in excel (static, i.e. order of rows do not change except when all columns are simultaneously filtered or sorted). Thank you all in advance. This community has helped me break through so many roadblocks, hopefully this will be another success story.
excel vba excel-vba
add a comment |
I'm attempting to create a VBA module in excel that compares two columns of property numbers (master: column A, sheet1, destination: column A, sheet2) and returns all non-matching values from the master (i.e. present in master, but not in destination) to the bottom of the destination table (i.e. first blank row at the end of the destination table). So far I have something that works pretty well, but I discovered a few hiccups when testing.
Code:
Sub MergeData()
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim recRow As Long
Dim lastRow As Long
Dim fCell As Range
Dim i As Long
'Define our worksheets
Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet2")
Application.ScreenUpdating = False
recRow = 1
With wsSource
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
'See if item is in Master sheet
Set fCell = wsDest.Range("A:A").Find(what:=.Cells(i, "A").Value, lookat:=xlWhole, MatchCase:=False)
If Not fCell Is Nothing Then
'Record is already in master sheet
recRow = fCell.Row
Else
'Need to move this to master sheet after last found record
.Cells(i, "A").Cells.Copy
wsDest.Cells(lastRow, "A").Cells.Insert
recRow = recRow
End If
Next i
One issue I noticed was when there are blanks in the destination table things get a little wonky (example):
Before running module:
M|D
1|1
2|
3|3
After:
M|D
1|1
2|
3|2
|3
Notice that the blank cell remains and the order of the returned results is changed. My desired result is:
M|D
1|1
2|
3|3
|2
The desired result preserves the order, as well as the blank (which shouldn't exist in the master data, but I'm preparing for worst case scenarios as I am not the DBA for the master table). Not getting the desired result in this instance is problematic because the destination sheet needs to be "static" (i.e. preserve row order). There will be columns next to column A in the destination sheet where multiple users will be entering comments and if the destination table shifts (beyond adding rows at the end) or re-orders comments will become detached from their original associated property number. Chaos ensues and so on.
I'm very green with VBA so I can't seem to figure out the errors of my ways (there may be more errors, but I have yet to discover anything else when testing so pointing them out would be greatly appreciated). Also, if this information is pertinent, the master list is a SQL connected table that will be periodically refreshed (so the process would be refresh master (dynamic, i.e. order of rows can and does change), run module to return new property numbers to bottom of destination sheet, users add comments and filter destination sheet in excel (static, i.e. order of rows do not change except when all columns are simultaneously filtered or sorted). Thank you all in advance. This community has helped me break through so many roadblocks, hopefully this will be another success story.
excel vba excel-vba
I'm attempting to create a VBA module in excel that compares two columns of property numbers (master: column A, sheet1, destination: column A, sheet2) and returns all non-matching values from the master (i.e. present in master, but not in destination) to the bottom of the destination table (i.e. first blank row at the end of the destination table). So far I have something that works pretty well, but I discovered a few hiccups when testing.
Code:
Sub MergeData()
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim recRow As Long
Dim lastRow As Long
Dim fCell As Range
Dim i As Long
'Define our worksheets
Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet2")
Application.ScreenUpdating = False
recRow = 1
With wsSource
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
'See if item is in Master sheet
Set fCell = wsDest.Range("A:A").Find(what:=.Cells(i, "A").Value, lookat:=xlWhole, MatchCase:=False)
If Not fCell Is Nothing Then
'Record is already in master sheet
recRow = fCell.Row
Else
'Need to move this to master sheet after last found record
.Cells(i, "A").Cells.Copy
wsDest.Cells(lastRow, "A").Cells.Insert
recRow = recRow
End If
Next i
One issue I noticed was when there are blanks in the destination table things get a little wonky (example):
Before running module:
M|D
1|1
2|
3|3
After:
M|D
1|1
2|
3|2
|3
Notice that the blank cell remains and the order of the returned results is changed. My desired result is:
M|D
1|1
2|
3|3
|2
The desired result preserves the order, as well as the blank (which shouldn't exist in the master data, but I'm preparing for worst case scenarios as I am not the DBA for the master table). Not getting the desired result in this instance is problematic because the destination sheet needs to be "static" (i.e. preserve row order). There will be columns next to column A in the destination sheet where multiple users will be entering comments and if the destination table shifts (beyond adding rows at the end) or re-orders comments will become detached from their original associated property number. Chaos ensues and so on.
I'm very green with VBA so I can't seem to figure out the errors of my ways (there may be more errors, but I have yet to discover anything else when testing so pointing them out would be greatly appreciated). Also, if this information is pertinent, the master list is a SQL connected table that will be periodically refreshed (so the process would be refresh master (dynamic, i.e. order of rows can and does change), run module to return new property numbers to bottom of destination sheet, users add comments and filter destination sheet in excel (static, i.e. order of rows do not change except when all columns are simultaneously filtered or sorted). Thank you all in advance. This community has helped me break through so many roadblocks, hopefully this will be another success story.
excel vba excel-vba
excel vba excel-vba
asked Jan 3 at 16:29
MEFMEF
297
297
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
try using something more akin to:
dim i as long, dim lrs as long, lrd as long
with sheets(1)
lrs = .cells(.rows.count,1).end(xlup).row
for i = 2 to lrs 'assumes header in row 1
if application.iferror(application.match(.cells(i,1),sheets(2).columns(1),0),0)=0 then
lrd = sheets(2).cells(sheets(2).rows.count,1).end(xlup).row
sheets(2).cells(lrd+1,1).value = .cells(i,1).value
end if
next i
end with
this will allow you to check if the value exists (using match) and if it doesn't match, it will get added to that list, at the bottom, then move to the next line from the source data.
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54026222%2fconditionally-append-non-matching-rows-to-bottom-of-table-and-dealing-with-blank%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
try using something more akin to:
dim i as long, dim lrs as long, lrd as long
with sheets(1)
lrs = .cells(.rows.count,1).end(xlup).row
for i = 2 to lrs 'assumes header in row 1
if application.iferror(application.match(.cells(i,1),sheets(2).columns(1),0),0)=0 then
lrd = sheets(2).cells(sheets(2).rows.count,1).end(xlup).row
sheets(2).cells(lrd+1,1).value = .cells(i,1).value
end if
next i
end with
this will allow you to check if the value exists (using match) and if it doesn't match, it will get added to that list, at the bottom, then move to the next line from the source data.
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
add a comment |
try using something more akin to:
dim i as long, dim lrs as long, lrd as long
with sheets(1)
lrs = .cells(.rows.count,1).end(xlup).row
for i = 2 to lrs 'assumes header in row 1
if application.iferror(application.match(.cells(i,1),sheets(2).columns(1),0),0)=0 then
lrd = sheets(2).cells(sheets(2).rows.count,1).end(xlup).row
sheets(2).cells(lrd+1,1).value = .cells(i,1).value
end if
next i
end with
this will allow you to check if the value exists (using match) and if it doesn't match, it will get added to that list, at the bottom, then move to the next line from the source data.
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
add a comment |
try using something more akin to:
dim i as long, dim lrs as long, lrd as long
with sheets(1)
lrs = .cells(.rows.count,1).end(xlup).row
for i = 2 to lrs 'assumes header in row 1
if application.iferror(application.match(.cells(i,1),sheets(2).columns(1),0),0)=0 then
lrd = sheets(2).cells(sheets(2).rows.count,1).end(xlup).row
sheets(2).cells(lrd+1,1).value = .cells(i,1).value
end if
next i
end with
this will allow you to check if the value exists (using match) and if it doesn't match, it will get added to that list, at the bottom, then move to the next line from the source data.
try using something more akin to:
dim i as long, dim lrs as long, lrd as long
with sheets(1)
lrs = .cells(.rows.count,1).end(xlup).row
for i = 2 to lrs 'assumes header in row 1
if application.iferror(application.match(.cells(i,1),sheets(2).columns(1),0),0)=0 then
lrd = sheets(2).cells(sheets(2).rows.count,1).end(xlup).row
sheets(2).cells(lrd+1,1).value = .cells(i,1).value
end if
next i
end with
this will allow you to check if the value exists (using match) and if it doesn't match, it will get added to that list, at the bottom, then move to the next line from the source data.
edited Jan 3 at 16:40
answered Jan 3 at 16:35


CyrilCyril
3,2001924
3,2001924
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
add a comment |
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
You could also use application.isna() instead of the iferror to take advatnage of true/false
– Cyril
Jan 3 at 16:42
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Cyril, I'm getting a "Property let procedure not defined and property get procedure did not return and object" error on this line : lrs = .Cells(.Rows.Count, 1).Row(xlUp).Row" Any thoughts? Again apologies if I'm missing something obvious.
– MEF
Jan 3 at 16:49
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Check the edit i made. sorry, i had put in row(xlup) instead of end(xlup) as i wrote this off the collar, rather than in an IDE
– Cyril
Jan 3 at 16:56
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, you beautiful genius. It works like a charm. Only thing I needed to change was adding "Dim" in front of that last variable (lrd). Thanks for all your help.
– MEF
Jan 3 at 17:22
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
Cyril, thought I'd follow up with you quickly before posting a separate question because you were incredibly helpful with this response. I'm trying to slot in a line to that last if statement that makes the font color of the "new values" being added to the row in sheet 2 red and I'm having trouble. The idea being that the "new" values would stand out and an autofilter line I have would surface them to the top. I was just going to use conditional formatting, but I think a VBA solution would be cleaner. Thanks again for your help on my first problem.
– MEF
Jan 23 at 14:45
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54026222%2fconditionally-append-non-matching-rows-to-bottom-of-table-and-dealing-with-blank%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown