# Force a one-dimensional array into a constant in Excel

I have a condition in an Excel IF-statement as follows:

``````INDIRECT(ADDRESS(ROW(ME3),MATCH("PremiumWaiver",\$1:\$1,0)))=1
``````

where

``````INDIRECT(ADDRESS(ROW(ME3),MATCH("PremiumWaiver",\$1:\$1,0)))
``````

eveluates to `{1}`.

Is there any way I can force this `{1}` into `1` such that

``````INDIRECT(ADDRESS(ROW(ME3),MATCH("PremiumWaiver",\$1:\$1,0)))=1
``````

will return `TRUE`?

• It shouldn't be returning an array. Is {1} what you're seeing in a cell if you just copy your partial formula somewhere else? Is it possibly a rounding issue if not all decimals are displayed? Does it result in true if you use the actual cell address instead of using indirect and address? Dec 6, 2013 at 23:45

It's `ROW` function that returns an array, you could replace by `ROWS`, e.g.

`=INDIRECT(ADDRESS(ROWS(\$ME\$1:ME3),MATCH("PremiumWaiver",\$1:\$1,0)))`

or you can use a function like SUM around ROW

`=INDIRECT(ADDRESS(SUM(ROW(ME3)),MATCH("PremiumWaiver",\$1:\$1,0)))`

although I'm not really sure you need INDIRECT and ADDRESS at all, you can use INDEX or OFFSET, e.g.

`=OFFSET(\$A\$1,SUM(ROW(ME3))-1,MATCH("PremiumWaiver",\$1:\$1,0)-1)`

if `{1}` means an array, then try the `INDEX` function:

`INDEX(INDIRECT(ADDRESS(ROW(ME3),MATCH("PremiumWaiver",\$1:\$1,0))),1)=1`