#1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
LLM77
 
Posts: n/a
Default Index and Row

In the following, I am summing a horizontal range in an array that changes or
gets extended each month. The formula looks at this month's date and then
matches it to the correct column. Then it sums the row from the beginning
date to through the new month.

If I use the index formula as it is here, it does not increment the row
number when it gets copied down the sheet:

=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,1,MATCH($O$3,$U$4:BP$4,1) ,1)),0)

If I add Row(), it doesn't return the correct total.

If I add Row(##), it works only if I start the numbering 3 rows before the
actual row used.

=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,ROW(P32),MATCH($O$3,$U$4:
BP$4,1),1)),0)

In this last formula, the row is actually row 35, but I used row 32 and got
the correct total.

Does anyone know what's wrong with the formula? Thanks.

  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
bpeltzer
 
Posts: n/a
Default Index and Row

If I understand what you're attempting, this formula
=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,1,MATCH($O$3,$U$4:BP$4,1)
,1)),0) is intented to return the sum of some number of cells from row 35.
As I read it, however, the ending cell reference, created by the index
function, is always going to be in row 4 (the first row, nth column in the
array U4:BP172). I think you want this to be in row 35, so it would be
=IF(A35<=$O$3,+N35-SUM(U35:INDEX(U35:BP172,1,MATCH($O$3,$U$4:BP$4,1) ,1)),0)
That is, change the starting point of the array in the index function to the
current row, and make the reference relative so that it advances as you copy
the formula down. I think that's effectively what you did in the final
formula shown. By using row(p32) as the row number of the array beggining at
U4, you've got the same result as grabbing row 1 of the array starting at U35.
--Bruce


"LLM77" wrote:

In the following, I am summing a horizontal range in an array that changes or
gets extended each month. The formula looks at this month's date and then
matches it to the correct column. Then it sums the row from the beginning
date to through the new month.

If I use the index formula as it is here, it does not increment the row
number when it gets copied down the sheet:

=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,1,MATCH($O$3,$U$4:BP$4,1) ,1)),0)

If I add Row(), it doesn't return the correct total.

If I add Row(##), it works only if I start the numbering 3 rows before the
actual row used.

=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,ROW(P32),MATCH($O$3,$U$4:
BP$4,1),1)),0)

In this last formula, the row is actually row 35, but I used row 32 and got
the correct total.

Does anyone know what's wrong with the formula? Thanks.

  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
LLM77
 
Posts: n/a
Default Index and Row

That simple change was the answer I needed. It works fine, now. Thank you.

"bpeltzer" wrote:

If I understand what you're attempting, this formula
=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,1,MATCH($O$3,$U$4:BP$4,1)
,1)),0) is intented to return the sum of some number of cells from row 35.
As I read it, however, the ending cell reference, created by the index
function, is always going to be in row 4 (the first row, nth column in the
array U4:BP172). I think you want this to be in row 35, so it would be
=IF(A35<=$O$3,+N35-SUM(U35:INDEX(U35:BP172,1,MATCH($O$3,$U$4:BP$4,1) ,1)),0)
That is, change the starting point of the array in the index function to the
current row, and make the reference relative so that it advances as you copy
the formula down. I think that's effectively what you did in the final
formula shown. By using row(p32) as the row number of the array beggining at
U4, you've got the same result as grabbing row 1 of the array starting at U35.
--Bruce


"LLM77" wrote:

In the following, I am summing a horizontal range in an array that changes or
gets extended each month. The formula looks at this month's date and then
matches it to the correct column. Then it sums the row from the beginning
date to through the new month.

If I use the index formula as it is here, it does not increment the row
number when it gets copied down the sheet:

=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,1,MATCH($O$3,$U$4:BP$4,1) ,1)),0)

If I add Row(), it doesn't return the correct total.

If I add Row(##), it works only if I start the numbering 3 rows before the
actual row used.

=IF(A35<=$O$3,+N35-SUM(U35:INDEX($U$4:BP172,ROW(P32),MATCH($O$3,$U$4:
BP$4,1),1)),0)

In this last formula, the row is actually row 35, but I used row 32 and got
the correct total.

Does anyone know what's wrong with the formula? Thanks.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 09:51 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"