ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using AND to eliminate IF statements (https://www.excelbanter.com/excel-programming/312799-using-eliminate-if-statements.html)

Ken Loomis

Using AND to eliminate IF statements
 
When the final data is all assembled, there are duplicates that need to be
eliminated, but entries in a certain column from the duplicates need to be
combined and left in that column for the final unique entry.

I use this to do that:

For Row = totalrows To 6 Step -1
If Cells(Row, nameCol).Value = Cells(Row - 1, nameCol).Value Then
If Cells(Row, streetNumCol).Value = Cells(Row - 1,
streetNumCol).Value Then
If Cells(Row, StreetNameCol).Value = Cells(Row - 1,
StreetNameCol).Value Then
If Cells(Row, unitNumCol).Value = Cells(Row - 1,
unitNumCol).Value Then
If Cells(Row, ServLevelCol).Value < Empty Then
Cells(Row - 1, ServLevel).Value = _
Cells(Row - 1, ServLevel).Value & _
"/" & Cells(Row, ServLevel).Value
End If
Rows(Row).Delete
count = count + 1
End If
End If
End If
End If
Next Row

With over 8000 rows, this takes a little time and I was wondering if an AND
construct would be faster.

I just don't know the syntax to combined those first 4 IF statements using
AND.

Was also wondering if there weren't a more elegant way to do this.

Thanks for any suggestions.

Ken Loomis




thrax

Using AND to eliminate IF statements
 
If Cells(Row, nameCol).Value = Cells(Row - 1, nameCol).Value AND _
Cells(Row, streetNumCol).Value = Cells(Row - 1,streetNumCol).Value AND _
Cells(Row, StreetNameCol).Value = Cells(Row - 1, StreetNameCol).Value
AND _
Cells(Row, unitNumCol).Value = Cells(Row - 1, unitNumCol).Value then

'do your stuff here
End if

only other way i can think is to put all the columns in a array and loop
through them and
if any of the condition returns false, set a variable to false and break the
loop.
check after the loop if the variable is true then do next statement else not


"Ken Loomis" wrote:

When the final data is all assembled, there are duplicates that need to be
eliminated, but entries in a certain column from the duplicates need to be
combined and left in that column for the final unique entry.

I use this to do that:

For Row = totalrows To 6 Step -1
If Cells(Row, nameCol).Value = Cells(Row - 1, nameCol).Value Then
If Cells(Row, streetNumCol).Value = Cells(Row - 1,
streetNumCol).Value Then
If Cells(Row, StreetNameCol).Value = Cells(Row - 1,
StreetNameCol).Value Then
If Cells(Row, unitNumCol).Value = Cells(Row - 1,
unitNumCol).Value Then
If Cells(Row, ServLevelCol).Value < Empty Then
Cells(Row - 1, ServLevel).Value = _
Cells(Row - 1, ServLevel).Value & _
"/" & Cells(Row, ServLevel).Value
End If
Rows(Row).Delete
count = count + 1
End If
End If
End If
End If
Next Row

With over 8000 rows, this takes a little time and I was wondering if an AND
construct would be faster.

I just don't know the syntax to combined those first 4 IF statements using
AND.

Was also wondering if there weren't a more elegant way to do this.

Thanks for any suggestions.

Ken Loomis





sulprobil

Using AND to eliminate IF statements
 
The AND's are slower, aren't they?

I suggest to stick to your nested IF-statements but to
order them: Take that IF-statement first which is most
likely to return FALSE.

HTH,
sulprobil


All times are GMT +1. The time now is 10:23 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com