ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Match function not wokring on 2D array (https://www.excelbanter.com/excel-programming/404646-match-function-not-wokring-2d-array.html)

ExcelMonkey

Match function not wokring on 2D array
 
What is wrong here? I have a 2D array. The following gives me an error say
it can't find Match property. I am trying to locate first row with 0 in a
sorted array (high to low)

MaxRow = Application.WorksheetFunction.Match(0, ConsFunctionArray, 1)

Yet I know that my first zero value occurs in row 5 of the second dimension
in hte 0-based array

?ConsFunctionArray(4,1)
0

As such I am expectinge th results to give me a 4 above.

RB Smissaert

Match function not wokring on 2D array
 
I don't think it works on 2-D arrays as how would it know what column to
look in? There is no column argument in the function.
As your array is sorted you could do a binary search or use VLookup.

RBS

"ExcelMonkey" wrote in message
...
What is wrong here? I have a 2D array. The following gives me an error
say
it can't find Match property. I am trying to locate first row with 0 in a
sorted array (high to low)

MaxRow = Application.WorksheetFunction.Match(0, ConsFunctionArray, 1)

Yet I know that my first zero value occurs in row 5 of the second
dimension
in hte 0-based array

?ConsFunctionArray(4,1)
0

As such I am expectinge th results to give me a 4 above.



ExcelMonkey

Match function not wokring on 2D array
 
What I am trying to do is redim and array. I have a 2D array with values in
the second column. They array is sorted in descending order. I want to
redim the array so to get rid of all rows with 0 values in the first column.
I was using the match to find the row with the first 0 and use this to redim
the array.

Thanks

EM

"RB Smissaert" wrote:

I don't think it works on 2-D arrays as how would it know what column to
look in? There is no column argument in the function.
As your array is sorted you could do a binary search or use VLookup.

RBS

"ExcelMonkey" wrote in message
...
What is wrong here? I have a 2D array. The following gives me an error
say
it can't find Match property. I am trying to locate first row with 0 in a
sorted array (high to low)

MaxRow = Application.WorksheetFunction.Match(0, ConsFunctionArray, 1)

Yet I know that my first zero value occurs in row 5 of the second
dimension
in hte 0-based array

?ConsFunctionArray(4,1)
0

As such I am expectinge th results to give me a 4 above.




Niek Otten

Match function not wokring on 2D array
 
Just to repeat RBS; MATCH() only works on a one-dimensional array. I agree HELP is not very clear about this, but still, that's
how it is


--
Kind regards,

Niek Otten
Microsoft MVP - Excel

"ExcelMonkey" wrote in message ...
| What I am trying to do is redim and array. I have a 2D array with values in
| the second column. They array is sorted in descending order. I want to
| redim the array so to get rid of all rows with 0 values in the first column.
| I was using the match to find the row with the first 0 and use this to redim
| the array.
|
| Thanks
|
| EM
|
| "RB Smissaert" wrote:
|
| I don't think it works on 2-D arrays as how would it know what column to
| look in? There is no column argument in the function.
| As your array is sorted you could do a binary search or use VLookup.
|
| RBS
|
| "ExcelMonkey" wrote in message
| ...
| What is wrong here? I have a 2D array. The following gives me an error
| say
| it can't find Match property. I am trying to locate first row with 0 in a
| sorted array (high to low)
|
| MaxRow = Application.WorksheetFunction.Match(0, ConsFunctionArray, 1)
|
| Yet I know that my first zero value occurs in row 5 of the second
| dimension
| in hte 0-based array
|
| ?ConsFunctionArray(4,1)
| 0
|
| As such I am expectinge th results to give me a 4 above.
|
|



RB Smissaert

Match function not wokring on 2D array
 
Just run a loop either lbound to ubound or vice-versa, depending on
what you expect to get your answer the quickest. Once you got the answer
you can do an Exit For.

RBS


"ExcelMonkey" wrote in message
...
What I am trying to do is redim and array. I have a 2D array with values
in
the second column. They array is sorted in descending order. I want to
redim the array so to get rid of all rows with 0 values in the first
column.
I was using the match to find the row with the first 0 and use this to
redim
the array.

Thanks

EM

"RB Smissaert" wrote:

I don't think it works on 2-D arrays as how would it know what column to
look in? There is no column argument in the function.
As your array is sorted you could do a binary search or use VLookup.

RBS

"ExcelMonkey" wrote in message
...
What is wrong here? I have a 2D array. The following gives me an
error
say
it can't find Match property. I am trying to locate first row with 0
in a
sorted array (high to low)

MaxRow = Application.WorksheetFunction.Match(0, ConsFunctionArray, 1)

Yet I know that my first zero value occurs in row 5 of the second
dimension
in hte 0-based array

?ConsFunctionArray(4,1)
0

As such I am expectinge th results to give me a 4 above.





Alan Beban[_2_]

Match function not wokring on 2D array
 
ExcelMonkey wrote:
. . .
Yet I know that my first zero value occurs in row 5 of the second dimension
in hte 0-based array


Do you mean row 5 of the second column? If so, what do you mean in your
later post "get rid of all rows with 0 values in the first column"? How
would finding the first 0 value in the second column help you get rid of
rows with 0 in the first column???

If you know the column in which you want to find the first 0, let's say
column 4, you can use

Application.Match(0, Application.Index(ConsFunctionArray, 0, 4), 0) - 1

Alan Beban

ExcelMonkey

Match function not wokring on 2D array
 
Yes I did mean row 5 of the second column. Slipped a keystroke when typing.
Sorry for the confusion. Tried your suggestion. I am getting a Type
mismatch error. I know the following: The Array has been sorted in
descending order based on column 2 and the fist zero value shows up in row 5
of the zero based array

?ConsFunctionArray(4,1)
0

When I try just Application.Index(ConsFunctionArray, 0, 4)
I get an Error 2023.

Wondering what is going on here. Will keep looking.

Thanks

EM


"Alan Beban" wrote:

ExcelMonkey wrote:
. . .
Yet I know that my first zero value occurs in row 5 of the second dimension
in hte 0-based array


Do you mean row 5 of the second column? If so, what do you mean in your
later post "get rid of all rows with 0 values in the first column"? How
would finding the first 0 value in the second column help you get rid of
rows with 0 in the first column???

If you know the column in which you want to find the first 0, let's say
column 4, you can use

Application.Match(0, Application.Index(ConsFunctionArray, 0, 4), 0) - 1

Alan Beban



Alan Beban[_2_]

Match function not wokring on 2D array
 
ExcelMonkey wrote:
Yes I did mean row 5 of the second column. Slipped a keystroke when typing.
Sorry for the confusion. Tried your suggestion. I am getting a Type
mismatch error. I know the following: The Array has been sorted in
descending order based on column 2 and the fist zero value shows up in row 5
of the zero based array

?ConsFunctionArray(4,1)
0

When I try just Application.Index(ConsFunctionArray, 0, 4)
I get an Error 2023.

"Alan Beban" wrote:
If you know the column in which you want to find the first 0, let's say
column 4, you can use

Application.Match(0, Application.Index(ConsFunctionArray, 0, 4), 0) - 1


Then ConsFunctionArray doesn't have a 4th column. The illustration I
provided above explicitly assumed you were seeking in the 4th column. If
you are seeking in the 2nd column then of course you would use

Application.Index(ConsFunctionArray, 0, 2)

Alan Beban


All times are GMT +1. The time now is 05:34 PM.

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