B
Bob
Hi all,
I posted a problem I am having with getting the lowest
value from a set of data WITHOUT using any loops/ADO/sql.
I want to get the LOWEST value of B where
A=1003,C=R1,D=23. In this case the answer would be B=0.79
Sample Data:
A B C D
1003 0.89 R1 23
1003 0.59 R2 24
2444 0.32 R1 23
2444 0.84 R2 24
1003 1.14 R3 13
1003 0.79 R1 23
1003 0.12 R1 16
Ken gave me a brilliant answer (see below) which works,
using a worksheet function and array formulas. However I
need the answer in the form of a user defined VBA function
( because its part of a much larger problem).
Function Format==> GetLowest(A,C,D) where A C D are the
parameters and Getlowest is the name of the function.
Therefore: GetLowest(1003,"R1",23) = 0.79
I can do this with Loops , but since the actual data set
is 4000 rows plus, and the function needs to be used for
each unique combination of A&C&D, this isn't very
efficient.
Can anybody offer the quickest possible solution
possible !?
TIA
Bob
__________________________________________________________
Try the following:-
=MIN(IF(($A$2:$A$4000=1003)*($C$2:$C$4000="R1")*
($D$2:$D$4000=23),$B$2:$B$4000))
array entered using CTRL+SHIFT+ENTER
Assumes that the 1003 and 23 fields are numeric, but if
not then simply enclose
them with quotes, ie:-
=MIN(IF(($A$2:$A$4000="1003")*($C$2:$C$4000="R1")*
($D$2:$D$4000="23"),$B$2:$B$40
00))
or any mixture depending on your data.
I posted a problem I am having with getting the lowest
value from a set of data WITHOUT using any loops/ADO/sql.
I want to get the LOWEST value of B where
A=1003,C=R1,D=23. In this case the answer would be B=0.79
Sample Data:
A B C D
1003 0.89 R1 23
1003 0.59 R2 24
2444 0.32 R1 23
2444 0.84 R2 24
1003 1.14 R3 13
1003 0.79 R1 23
1003 0.12 R1 16
Ken gave me a brilliant answer (see below) which works,
using a worksheet function and array formulas. However I
need the answer in the form of a user defined VBA function
( because its part of a much larger problem).
Function Format==> GetLowest(A,C,D) where A C D are the
parameters and Getlowest is the name of the function.
Therefore: GetLowest(1003,"R1",23) = 0.79
I can do this with Loops , but since the actual data set
is 4000 rows plus, and the function needs to be used for
each unique combination of A&C&D, this isn't very
efficient.
Can anybody offer the quickest possible solution
possible !?
TIA
Bob
__________________________________________________________
Try the following:-
=MIN(IF(($A$2:$A$4000=1003)*($C$2:$C$4000="R1")*
($D$2:$D$4000=23),$B$2:$B$4000))
array entered using CTRL+SHIFT+ENTER
Assumes that the 1003 and 23 fields are numeric, but if
not then simply enclose
them with quotes, ie:-
=MIN(IF(($A$2:$A$4000="1003")*($C$2:$C$4000="R1")*
($D$2:$D$4000="23"),$B$2:$B$40
00))
or any mixture depending on your data.