Share via

Formula calculation

Anonymous
2016-12-22T16:33:47+00:00

I am trying to generate a chart based on a selection form control list box.  When the user makes a selection G43 in the formula below is populated with the row number that contains the data to be charted.  The formula below is used to determine the first column of that row that contains data for the chart. 

This is the formula I am trying to use

="=MATCH(INDEX(Data!"&G43&":"&G43&",MATCH(TRUE,INDEX(ISNUMBER(Data!"&G43&":"&G43&"),0),0)),Data!"&G43&":"&G43&",0)"

It returns

=MATCH(INDEX(Data!30:30,MATCH(TRUE,INDEX(ISNUMBER(Data!30:30),0),0)),Data!30:30,0)

If I edit the cell and hit calculate (F9) it displays the above and if I hit F9 again it returns a number that represents the column that the data fro the graph starts in.

My question is how do I make excel evaluate the formula twice so I get the number and not the intermediate formula?

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

Answer accepted by question author

HansV 462.6K Reputation points
2016-12-22T19:21:54+00:00

Sorry, I wrote G4 instead of G43 in two of the three formulas that I proposed, and I forgot to add the reference to the Data sheet in all of them.

What I meant is: enter one of the formulas, e.g.

=MATCH(TRUE,ISNUMBER(INDIRECT("Data!"&G43&":"&G43)),0)

exactly as written here in a cell and confirm it by pressing Ctrl+Shift+Enter

Was this answer helpful?

0 comments No comments

3 additional answers

Sort by: Most helpful
  1. Anonymous
    2016-12-22T22:22:38+00:00

    Thank you this worked perfectly.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2016-12-22T18:29:24+00:00

    Thank you for you quick response but I am not sure I understand it.

    I made this formula as an array as I think you were suggesting

    {="=MATCH(INDEX(Data!"&G43&":"&G43&",MATCH(TRUE,INDEX(ISNUMBER(Data!"&G43&":"&G43&"),0),0)),Data!"&G43&":"&G43&",0)"}

    But it still returns this instead of a number

    =MATCH(INDEX(Data!30:30,MATCH(TRUE,INDEX(ISNUMBER(Data!30:30),0),0)),Data!30:30,0)

    Perhaps I misunderstood what you were suggesting.  Can you be more specific please and show how me how the original formula should look.

    Was this answer helpful?

    0 comments No comments
  3. HansV 462.6K Reputation points
    2016-12-22T17:06:21+00:00

    As an array formula, confirmed with Ctrl+Shift+Enter:

    =MATCH(TRUE,ISNUMBER(INDIRECT("Data!"&G43&":"&G43)),0)

    or

    =MATCH(TRUE,ISNUMBER(OFFSET(Data!$1:$1,G43-1,0)),0)

    or

    =MATCH(TRUE,ISNUMBER(INDEX(Data!$1:$1048576,G43,0)),0)

    Was this answer helpful?

    0 comments No comments