ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Conditional sum in a named range (https://www.excelbanter.com/excel-discussion-misc-queries/244087-conditional-sum-named-range.html)

duane

Conditional sum in a named range
 
I have a named range. The range consits of about 8 rows, and spans across
about 30 columns (dates). I want to sum one of the rows in the range if it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2 D28:AP28 is the
row of numbers I want to sum. the above formula works, but i want the
"Sheet2!D28:AP28" to be referred to as a line in my named range. The name of
the range is Arrow, and the line is FeedAmt. That way, I can use the formula
in several other cases using different range names.

Can this be done?

Thanks

T. Valko

Conditional sum in a named range
 
If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28 then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))


Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans across
about 30 columns (dates). I want to sum one of the rows in the range if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2 D28:AP28 is
the
row of numbers I want to sum. the above formula works, but i want the
"Sheet2!D28:AP28" to be referred to as a line in my named range. The name
of
the range is Arrow, and the line is FeedAmt. That way, I can use the
formula
in several other cases using different range names.

Can this be done?

Thanks




duane

Conditional sum in a named range
 
I understand what the formula is doing. But the range is Arrow. The actual
range is C26:AP48. there are seveal ranges on the page. Each range contains
a row "FeedAmt". the dates are across the very top of the worksheet from D
to AP. So if the dates fall between two dates, I would like to sum up the
values in the "FeedAmt" row of a specific range. the range name will change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28 then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))


Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans across
about 30 columns (dates). I want to sum one of the rows in the range if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2 D28:AP28 is
the
row of numbers I want to sum. the above formula works, but i want the
"Sheet2!D28:AP28" to be referred to as a line in my named range. The name
of
the range is Arrow, and the line is FeedAmt. That way, I can use the
formula
in several other cases using different range names.

Can this be done?

Thanks





T. Valko

Conditional sum in a named range
 
Each range contains a row "FeedAmt".

So, is "FeedAmt" a row header that's included in the named range Arrow?

If so, try this:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),INDEX(Arrow,MATCH("f eedamt",INDEX(Arrow,0,1),0),0))

It looks to me as though you're not really gaining anything from doing it
this way compared to your original formula:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))


--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I understand what the formula is doing. But the range is Arrow. The
actual
range is C26:AP48. there are seveal ranges on the page. Each range
contains
a row "FeedAmt". the dates are across the very top of the worksheet from
D
to AP. So if the dates fall between two dates, I would like to sum up the
values in the "FeedAmt" row of a specific range. the range name will
change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28
then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))


Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans
across
about 30 columns (dates). I want to sum one of the rows in the range
if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2 D28:AP28
is
the
row of numbers I want to sum. the above formula works, but i want the
"Sheet2!D28:AP28" to be referred to as a line in my named range. The
name
of
the range is Arrow, and the line is FeedAmt. That way, I can use the
formula
in several other cases using different range names.

Can this be done?

Thanks







duane

Conditional sum in a named range
 
I do not want it to be static. I will try your formula, but when it works, I
will be substituting Arrow with Indirect() for the other ranges that I want
to look up.

Thanks and I will try this. I think it will work.

"T. Valko" wrote:

Each range contains a row "FeedAmt".


So, is "FeedAmt" a row header that's included in the named range Arrow?

If so, try this:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),INDEX(Arrow,MATCH("f eedamt",INDEX(Arrow,0,1),0),0))

It looks to me as though you're not really gaining anything from doing it
this way compared to your original formula:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))


--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I understand what the formula is doing. But the range is Arrow. The
actual
range is C26:AP48. there are seveal ranges on the page. Each range
contains
a row "FeedAmt". the dates are across the very top of the worksheet from
D
to AP. So if the dates fall between two dates, I would like to sum up the
values in the "FeedAmt" row of a specific range. the range name will
change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28
then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans
across
about 30 columns (dates). I want to sum one of the rows in the range
if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2 D28:AP28
is
the
row of numbers I want to sum. the above formula works, but i want the
"Sheet2!D28:AP28" to be referred to as a line in my named range. The
name
of
the range is Arrow, and the line is FeedAmt. That way, I can use the
formula
in several other cases using different range names.

Can this be done?

Thanks







T. Valko

Conditional sum in a named range
 
Just a heads up...

If Arrow is a *dynamic* range defined using functions like OFFSET then
INDIRECT won't work.

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I do not want it to be static. I will try your formula, but when it works,
I
will be substituting Arrow with Indirect() for the other ranges that I
want
to look up.

Thanks and I will try this. I think it will work.

"T. Valko" wrote:

Each range contains a row "FeedAmt".


So, is "FeedAmt" a row header that's included in the named range Arrow?

If so, try this:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),INDEX(Arrow,MATCH("f eedamt",INDEX(Arrow,0,1),0),0))

It looks to me as though you're not really gaining anything from doing it
this way compared to your original formula:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))


--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I understand what the formula is doing. But the range is Arrow. The
actual
range is C26:AP48. there are seveal ranges on the page. Each range
contains
a row "FeedAmt". the dates are across the very top of the worksheet
from
D
to AP. So if the dates fall between two dates, I would like to sum up
the
values in the "FeedAmt" row of a specific range. the range name will
change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28
then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans
across
about 30 columns (dates). I want to sum one of the rows in the
range
if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2
D28:AP28
is
the
row of numbers I want to sum. the above formula works, but i want
the
"Sheet2!D28:AP28" to be referred to as a line in my named range.
The
name
of
the range is Arrow, and the line is FeedAmt. That way, I can use
the
formula
in several other cases using different range names.

Can this be done?

Thanks









duane

Conditional sum in a named range
 
I know it is difficult to explain on these boards exactly what we try to do.
I appreciate the help and in the end this is the formula that does what I
want.

=SUM(INDEX(Arrow,3,A1):INDEX(Arrow,3,D1))

Far from what I was trying. It was a fluke really. A1 and D1 are dates
(just the day of the month so a single number. In this case 1 and 5 (Sept 1
and Sept 5) This will sum the numbers between the two dates! I can easily
change the range to be using an Indirect.

Thanks for you time.

"T. Valko" wrote:

Just a heads up...

If Arrow is a *dynamic* range defined using functions like OFFSET then
INDIRECT won't work.

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I do not want it to be static. I will try your formula, but when it works,
I
will be substituting Arrow with Indirect() for the other ranges that I
want
to look up.

Thanks and I will try this. I think it will work.

"T. Valko" wrote:

Each range contains a row "FeedAmt".

So, is "FeedAmt" a row header that's included in the named range Arrow?

If so, try this:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),INDEX(Arrow,MATCH("f eedamt",INDEX(Arrow,0,1),0),0))

It looks to me as though you're not really gaining anything from doing it
this way compared to your original formula:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I understand what the formula is doing. But the range is Arrow. The
actual
range is C26:AP48. there are seveal ranges on the page. Each range
contains
a row "FeedAmt". the dates are across the very top of the worksheet
from
D
to AP. So if the dates fall between two dates, I would like to sum up
the
values in the "FeedAmt" row of a specific range. the range name will
change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28
then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans
across
about 30 columns (dates). I want to sum one of the rows in the
range
if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2
D28:AP28
is
the
row of numbers I want to sum. the above formula works, but i want
the
"Sheet2!D28:AP28" to be referred to as a line in my named range.
The
name
of
the range is Arrow, and the line is FeedAmt. That way, I can use
the
formula
in several other cases using different range names.

Can this be done?

Thanks










duane

Conditional sum in a named range
 
I should have mentioned....Feedamt happens to be the 3rd line in any of the
arrays in this case. That is why the 3 in the index.

"Duane" wrote:

I know it is difficult to explain on these boards exactly what we try to do.
I appreciate the help and in the end this is the formula that does what I
want.

=SUM(INDEX(Arrow,3,A1):INDEX(Arrow,3,D1))

Far from what I was trying. It was a fluke really. A1 and D1 are dates
(just the day of the month so a single number. In this case 1 and 5 (Sept 1
and Sept 5) This will sum the numbers between the two dates! I can easily
change the range to be using an Indirect.

Thanks for you time.

"T. Valko" wrote:

Just a heads up...

If Arrow is a *dynamic* range defined using functions like OFFSET then
INDIRECT won't work.

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I do not want it to be static. I will try your formula, but when it works,
I
will be substituting Arrow with Indirect() for the other ranges that I
want
to look up.

Thanks and I will try this. I think it will work.

"T. Valko" wrote:

Each range contains a row "FeedAmt".

So, is "FeedAmt" a row header that's included in the named range Arrow?

If so, try this:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),INDEX(Arrow,MATCH("f eedamt",INDEX(Arrow,0,1),0),0))

It looks to me as though you're not really gaining anything from doing it
this way compared to your original formula:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I understand what the formula is doing. But the range is Arrow. The
actual
range is C26:AP48. there are seveal ranges on the page. Each range
contains
a row "FeedAmt". the dates are across the very top of the worksheet
from
D
to AP. So if the dates fall between two dates, I would like to sum up
the
values in the "FeedAmt" row of a specific range. the range name will
change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to Sheet2!D28:AP28
then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and spans
across
about 30 columns (dates). I want to sum one of the rows in the
range
if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2
D28:AP28
is
the
row of numbers I want to sum. the above formula works, but i want
the
"Sheet2!D28:AP28" to be referred to as a line in my named range.
The
name
of
the range is Arrow, and the line is FeedAmt. That way, I can use
the
formula
in several other cases using different range names.

Can this be done?

Thanks










T. Valko

Conditional sum in a named range
 
OK, good deal!

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I should have mentioned....Feedamt happens to be the 3rd line in any of the
arrays in this case. That is why the 3 in the index.

"Duane" wrote:

I know it is difficult to explain on these boards exactly what we try to
do.
I appreciate the help and in the end this is the formula that does what I
want.

=SUM(INDEX(Arrow,3,A1):INDEX(Arrow,3,D1))

Far from what I was trying. It was a fluke really. A1 and D1 are dates
(just the day of the month so a single number. In this case 1 and 5
(Sept 1
and Sept 5) This will sum the numbers between the two dates! I can
easily
change the range to be using an Indirect.

Thanks for you time.

"T. Valko" wrote:

Just a heads up...

If Arrow is a *dynamic* range defined using functions like OFFSET then
INDIRECT won't work.

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I do not want it to be static. I will try your formula, but when it
works,
I
will be substituting Arrow with Indirect() for the other ranges that
I
want
to look up.

Thanks and I will try this. I think it will work.

"T. Valko" wrote:

Each range contains a row "FeedAmt".

So, is "FeedAmt" a row header that's included in the named range
Arrow?

If so, try this:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),INDEX(Arrow,MATCH("f eedamt",INDEX(Arrow,0,1),0),0))

It looks to me as though you're not really gaining anything from
doing it
this way compared to your original formula:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I understand what the formula is doing. But the range is Arrow.
The
actual
range is C26:AP48. there are seveal ranges on the page. Each
range
contains
a row "FeedAmt". the dates are across the very top of the
worksheet
from
D
to AP. So if the dates fall between two dates, I would like to
sum up
the
values in the "FeedAmt" row of a specific range. the range name
will
change,
but all ranges have "FeedAmt in them.

"T. Valko" wrote:

If Arrow refers to Sheet2!D1:AP8 and FeedAmt refers to
Sheet2!D28:AP28
then
the equivalent of:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1 :AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Would be:

=SUMPRODUCT(--(INDEX(Arrow,1,0)=Sheet1!A2),--(INDEX(Arrow,1,0)<=Sheet1!D2),FeedAmt)

--
Biff
Microsoft Excel MVP


"Duane" wrote in message
...
I have a named range. The range consits of about 8 rows, and
spans
across
about 30 columns (dates). I want to sum one of the rows in the
range
if
it
falls between certain dates. The easy version would be:

=SUMPRODUCT((Sheet2!D1:AP1=Sheet1!A2)*(Sheet2!D1: AP1<=Sheet1!D2)*(Sheet2!D28:AP28))

Where sheet1 A2 is a date, Sheet 1 D2 is a date, and Sheet 2
D28:AP28
is
the
row of numbers I want to sum. the above formula works, but i
want
the
"Sheet2!D28:AP28" to be referred to as a line in my named
range.
The
name
of
the range is Arrow, and the line is FeedAmt. That way, I can
use
the
formula
in several other cases using different range names.

Can this be done?

Thanks













All times are GMT +1. The time now is 06:37 AM.

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