Alternative to Array formula

Jnrrpg11

New Member
Joined
Jun 29, 2017
Messages
28
Hello Everyone

Im wondering if anyone knows of a faster alternative to this Array formula-

{=INDEX('(System) SC Country 1'!$C$5:$C$5000,MATCH(0,IF(('(System) SC Country 1'!$D$5:$D$5000="Incomplete")*('(System) SC Country 1'!$G$5:$G$5000="Routine")*('(System) SC Country 1'!$J$5:$J$5000<>"JANITORIAL SERVICES-DAILY"),COUNTIF($H$5:$H5,'(System) SC Country 1'!$C$5:$C$5000)),0))}

So in this formula we are listing values that are in '(System) SC Country 1'!$C$5:$C$5000'.

but we are removing values based on the 3 criteria below -

(System) SC Country 1'!$D$5:$D$5000="Incomplete"
(System) SC Country 1'!$G$5:$G$5000="Routine"
(System) SC Country 1'!$J$5:$J$5000<>"JANITORIAL SERVICES-DAILY"

And the list runs from H5 to H1004 which is highlighted in red.

I should say that this formula works but the problem is that its horrifically slow.
It takes approx. 8 times longer to run that the other 22 sheets in the workbook combined.
I have used this formula before from small Unique Distinct Lists but I actually don't need the output to be unique/distinct as the values in C5:C5000 are already non repeating.

Has anyone used an alternative way of creating a list like this that would run faster than the Array formula that I have here.


Thanks in Advance and Kind Regards
 

Excel Facts

How can you turn a range sideways?
Copy the range. Select a blank cell. Right-click, Paste Special, then choose Transpose.
Difficult for me to be more specific yet. Suggest you post sample data.
Likely faster approaches are, if it suits the task, advanced filter. Also VBA or a query. Maybe a pivot table.
 
Upvote 0
Upvote 0
Hey Folks,

Thanks for your reply. Theres some super interesting stuff in these links.
Unfortunately, I'm not great when it comes to VBA. Im learning but I'm finding the articles hard to follow.
If you guys have the time id love to ask some follow up questions.
So is it likely that using a VBA option to write out a list of values would be quicker than the a INDEX/MATCH/COUNTIF array formula?
Also if i had a basic table like the one below and i want the blank column to list the receipt numbers with insurance (eg.1001,1003,1004,1005...),
How difficult would the code for that be?



Thanks again for taking time to look at this.

Kind Regards
 
Upvote 0
First step, insert some rows above the starting tables.

Above the first "Insurance Taken" (position not critical actually) repeat "Insurance Taken". Say in cell "B1" and under it in cell B2 enter "Insurance"


Change the second "Insurance Taken" (where you want the Receipt No results) to "Receipt No"

Now use advanced filter. ALT-D-F-A
near the top choose "Copy to another location"
for list range, enter the range for the main data. Maybe something like A4:Bxx
for criteria range, the newly inserted mini table, say B1:B2
for copy to, select the cell that said "Insurance Taken" and was changed to "Receipt No". Say D4
Now press "OK" & see the result

PS If you google for "Excel advanced filter tutorial" there will be lots of examples/help
 
Last edited:
Upvote 0

Forum statistics

Threads
1,223,903
Messages
6,175,284
Members
452,630
Latest member
OdubiYouth

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top