ProfitMajin
New Member
- Joined
- Feb 16, 2016
- Messages
- 7
Hi All,
Firstly, apologies if this is posted elsewhere, I tried searching for a similar issue but couldn't find any similar threads.
The Situation/Project
I've been working on a project that allows a member of staff to lookup a information on a client based on our unique ID for them, this allows them to lookup information such as the client's area which I've used Index Match and other similar formula for, which is all working correctly. In addition to that I'm also using a formula to draw the top results based on the area which is also working correctly (as far as I can tell), but as it needs to be an array and look through roughly 1,300 records (and there are 9 of these array formulas that update at the same time), it takes a while to update, generally 10 seconds or so.
It's not a massive delay, but it is causing a disconnect where this particular worksheet needs to be viewed separately so as to not cause the delay anywhere else when looking up the unique ID, in an ideal situation I'd have the various worksheets all update based on the client ID at the same time. The Spreadsheet will be used by staff away from the office and so I have protected the workbook and avoided using VBA to minimise any problems and/or a user not enabling macros and complaining that it doesn't work...
The Formula:
I found this online, I understand some parts of it, but not all of it, and as such could well be causing the delay by using a bloated formula:
=IFERROR(INDEX(PInfo!$A:$A,MATCH(1,INDEX((PInfo!$Z:$Z=LARGE(IF(ISNUMBER(SEARCH("*"&$B$11&"*",PInfo!$R:$R)),PInfo!$Z:$Z),ROWS(Q$27:Q27)))*(COUNTIF(Q$27:Q27,$B$11)=0),),0)),"")
The parts I understand - We are getting back the first column (A) from PInfo, after it has found the top result from the Z column, which it determines by using the LARGE formula with a nested IF function to see if that particular row's R column contains the area information stored in cell B11.
The parts I don't understand - The formula seems to lookup the information in the opposite order, in that it finds cells with the area information, and then compares the value in column Z to determine which is highest, and this is why the array is required. There are also the 'ROWS(Q$27:Q27)' and the '(COUNTIF(Q$27:Q27,$B$11)' parts which use cell Q27 even though it is an empty cell, and I can't understand why these parts are required.
Any help anyone can offer would be greatly appreciated, I've not used the LARGE formula before and could well be misusing it here as I found it online. The aim is to find the top 3 results (using PInfo column Z for this criteria) based on the area (PInfo column R), so if a row would have been number 1 but it isn't in the given area, it should be ignored. I do have the option of formatting/preparing the PInfo sheet if additional criteria/columns are required.
Thank you,
M
Firstly, apologies if this is posted elsewhere, I tried searching for a similar issue but couldn't find any similar threads.
The Situation/Project
I've been working on a project that allows a member of staff to lookup a information on a client based on our unique ID for them, this allows them to lookup information such as the client's area which I've used Index Match and other similar formula for, which is all working correctly. In addition to that I'm also using a formula to draw the top results based on the area which is also working correctly (as far as I can tell), but as it needs to be an array and look through roughly 1,300 records (and there are 9 of these array formulas that update at the same time), it takes a while to update, generally 10 seconds or so.
It's not a massive delay, but it is causing a disconnect where this particular worksheet needs to be viewed separately so as to not cause the delay anywhere else when looking up the unique ID, in an ideal situation I'd have the various worksheets all update based on the client ID at the same time. The Spreadsheet will be used by staff away from the office and so I have protected the workbook and avoided using VBA to minimise any problems and/or a user not enabling macros and complaining that it doesn't work...
The Formula:
I found this online, I understand some parts of it, but not all of it, and as such could well be causing the delay by using a bloated formula:
=IFERROR(INDEX(PInfo!$A:$A,MATCH(1,INDEX((PInfo!$Z:$Z=LARGE(IF(ISNUMBER(SEARCH("*"&$B$11&"*",PInfo!$R:$R)),PInfo!$Z:$Z),ROWS(Q$27:Q27)))*(COUNTIF(Q$27:Q27,$B$11)=0),),0)),"")
The parts I understand - We are getting back the first column (A) from PInfo, after it has found the top result from the Z column, which it determines by using the LARGE formula with a nested IF function to see if that particular row's R column contains the area information stored in cell B11.
The parts I don't understand - The formula seems to lookup the information in the opposite order, in that it finds cells with the area information, and then compares the value in column Z to determine which is highest, and this is why the array is required. There are also the 'ROWS(Q$27:Q27)' and the '(COUNTIF(Q$27:Q27,$B$11)' parts which use cell Q27 even though it is an empty cell, and I can't understand why these parts are required.
Any help anyone can offer would be greatly appreciated, I've not used the LARGE formula before and could well be misusing it here as I found it online. The aim is to find the top 3 results (using PInfo column Z for this criteria) based on the area (PInfo column R), so if a row would have been number 1 but it isn't in the given area, it should be ignored. I do have the option of formatting/preparing the PInfo sheet if additional criteria/columns are required.
Thank you,
M