Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default ARRAY MULTI LOGICAL OPERATOR

Hi,

I'm trying to get a sum, in an array, but I'm getting lost when I try to
involve an OR operator.

I need to sum the codes beginning with "5" but not the ones among "514000"
and "514020".

You could assume all code are converted to string, so first one would be
'501010' and so on...

CODE UNITS
501010 150.00
501030 347.52
501070 150.00
504010 130.06
504020 70.00
505030 50.00
506020 25.00
506060 25.00
507010 10.00
508010 20.84
508030 3.00
509010 5.86
509020 1.54
509030 1.19
51000N 10.00
513020 4.00
513690 3.00
514020 0.30
516870 1.75
600040 25.00


Could any one give me a hand on this?

TIA,
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,058
Default ARRAY MULTI LOGICAL OPERATOR

=SUMPRODUCT(--(LEFT(A2:A21,1)="5"),--(B2:B21))-SUMPRODUCT(--((A2:A21)="514000"),--(B2:B21))-SUMPRODUCT(--((A2:A21)="514020"),--(B2:B21))

--
Gary''s Student - gsnu200749


"sharon" wrote:

Hi,

I'm trying to get a sum, in an array, but I'm getting lost when I try to
involve an OR operator.

I need to sum the codes beginning with "5" but not the ones among "514000"
and "514020".

You could assume all code are converted to string, so first one would be
'501010' and so on...

CODE UNITS
501010 150.00
501030 347.52
501070 150.00
504010 130.06
504020 70.00
505030 50.00
506020 25.00
506060 25.00
507010 10.00
508010 20.84
508030 3.00
509010 5.86
509020 1.54
509030 1.19
51000N 10.00
513020 4.00
513690 3.00
514020 0.30
516870 1.75
600040 25.00


Could any one give me a hand on this?

TIA,

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,202
Default ARRAY MULTI LOGICAL OPERATOR

Give this formula a try....

=SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20<514000)*(A 1:A20<514020)*B1:B20)

Rick


"sharon" wrote in message
...
Hi,

I'm trying to get a sum, in an array, but I'm getting lost when I try to
involve an OR operator.

I need to sum the codes beginning with "5" but not the ones among "514000"
and "514020".

You could assume all code are converted to string, so first one would be
'501010' and so on...

CODE UNITS
501010 150.00
501030 347.52
501070 150.00
504010 130.06
504020 70.00
505030 50.00
506020 25.00
506060 25.00
507010 10.00
508010 20.84
508030 3.00
509010 5.86
509020 1.54
509030 1.19
51000N 10.00
513020 4.00
513690 3.00
514020 0.30
516870 1.75
600040 25.00


Could any one give me a hand on this?

TIA,


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default ARRAY MULTI LOGICAL OPERATOR

Thanks Gary and Rich for your help.

I realize I had an error while writting my needs, in fact what I need te sum
of all the values, starting with "5" but not the values BETWEEN "514000" and
"514020" ( I typed among), so I don't want "514000", "514010", "514020"...)

May be this changes the answer, because my trouble is when adding an OR
operator.

Gary, when you type 2 "-" signs I guess it means it's an array formula.
Isn't it?

TIA,


"Gary''s Student" wrote:

=SUMPRODUCT(--(LEFT(A2:A21,1)="5"),--(B2:B21))-SUMPRODUCT(--((A2:A21)="514000"),--(B2:B21))-SUMPRODUCT(--((A2:A21)="514020"),--(B2:B21))

--
Gary''s Student - gsnu200749


"sharon" wrote:

Hi,

I'm trying to get a sum, in an array, but I'm getting lost when I try to
involve an OR operator.

I need to sum the codes beginning with "5" but not the ones among "514000"
and "514020".

You could assume all code are converted to string, so first one would be
'501010' and so on...

CODE UNITS
501010 150.00
501030 347.52
501070 150.00
504010 130.06
504020 70.00
505030 50.00
506020 25.00
506060 25.00
507010 10.00
508010 20.84
508030 3.00
509010 5.86
509020 1.54
509030 1.19
51000N 10.00
513020 4.00
513690 3.00
514020 0.30
516870 1.75
600040 25.00


Could any one give me a hand on this?

TIA,

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,202
Default ARRAY MULTI LOGICAL OPERATOR

Thanks Gary and Rich for your help.

Rick (not Rich)...

I realize I had an error while writting my needs, in fact what I need te
sum
of all the values, starting with "5" but not the values BETWEEN "514000"
and
"514020" ( I typed among), so I don't want "514000", "514010",
"514020"...)


Okay, if I understand you correctly, give this formula a try...

=SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20=514000)*(A 1:A20<=514020)*B1:B20)

Gary, when you type 2 "-" signs I guess it means it's an array formula.
Isn't it?


No, it has nothing to do with an array formula (SUMPRODUCT formulas are
entered normally)... Boolean expressions (those expressions between the
parentheses in our formulas) return TRUE or FALSE... multiplying them by -1
twice (that is what the double minus signs are doing; in the same way the -5
means multiply -1 times 5) converts TRUE to 1 and FALSE to 0.

Rick



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default ARRAY MULTI LOGICAL OPERATOR

Rick,

Thanks again, and ,oops!, sorry for my mistyping !

I think the solution you gave me is not the one I wanted, since it sums just
the values between "514000" and "514020". I thing you use an AND when I need
an OR.

My thoughts were that the rows matching my needs we
LEFT(CODES,1)="5" AND (OR(CODES<"514000",CODES"514020")), assuming CODES is
the range where I have the codes (A3:A20) in the example.

But I don't know how to translate this into a fomula...


Thanks for your explanation on SUMPRODUCT sentences.


Cheers,


"Rick Rothstein (MVP - VB)" wrote:

Thanks Gary and Rich for your help.


Rick (not Rich)...

I rlize I had an error while writting my needs, in fact what I need te
sum
of all the values, starting with "5" but not the values BETWEEN "514000"
and
"514020" ( I typed among), so I don't want "514000", "514010",
"514020"...)


Okay, if I understand you correctly, give this formula a try...

=SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20=514000)*(A 1:A20<=514020)*B1:B20)

Gary, when you type 2 "-" signs I guess it means it's an array formula.
Isn't it?


No, it has nothing to do with an array formula (SUMPRODUCT formulas are
entered normally)... Boolean expressions (those expressions between the
parentheses in our formulas) return TRUE or FALSE... multiplying them by -1
twice (that is what the double minus signs are doing; in the same way the -5
means multiply -1 times 5) converts TRUE to 1 and FALSE to 0.

Rick


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,202
Default ARRAY MULTI LOGICAL OPERATOR

Sorry, I misread your question. Check back later because I think Gary's
Student (or someone else) may come up with a more compact formula then the
one I developed; but this should do what you want...

=SUMPRODUCT((LEFT(A1:A20)="5")*B1:B20)-SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20=514000)*(A1 :A20<=514020)*B1:B20)

Rick


"sharon" wrote in message
...
Rick,

Thanks again, and ,oops!, sorry for my mistyping !

I think the solution you gave me is not the one I wanted, since it sums
just
the values between "514000" and "514020". I thing you use an AND when I
need
an OR.

My thoughts were that the rows matching my needs we
LEFT(CODES,1)="5" AND (OR(CODES<"514000",CODES"514020")), assuming CODES
is
the range where I have the codes (A3:A20) in the example.

But I don't know how to translate this into a fomula...


Thanks for your explanation on SUMPRODUCT sentences.


Cheers,


"Rick Rothstein (MVP - VB)" wrote:

Thanks Gary and Rich for your help.


Rick (not Rich)...

I rlize I had an error while writting my needs, in fact what I need te
sum
of all the values, starting with "5" but not the values BETWEEN
"514000"
and
"514020" ( I typed among), so I don't want "514000", "514010",
"514020"...)


Okay, if I understand you correctly, give this formula a try...

=SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20=514000)*(A 1:A20<=514020)*B1:B20)

Gary, when you type 2 "-" signs I guess it means it's an array formula.
Isn't it?


No, it has nothing to do with an array formula (SUMPRODUCT formulas are
entered normally)... Boolean expressions (those expressions between the
parentheses in our formulas) return TRUE or FALSE... multiplying them
by -1
twice (that is what the double minus signs are doing; in the same way
the -5
means multiply -1 times 5) converts TRUE to 1 and FALSE to 0.

Rick



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 48
Default ARRAY MULTI LOGICAL OPERATOR

Hi Rick,

It does what I need, and now I can understand bettter Gary's solution,
although it wasn't exactly what I asked for.

In fact I found a workaround using two parts, so I took codes beginning with
"5" and <"514000" and I sum the ones beginning with "5" and "514020" .

Nevertheless I like better your solution.



Thanks again, have a nice time!


"Rick Rothstein (MVP - VB)" wrote:

Sorry, I misread your question. Check back later because I think Gary's
Student (or someone else) may come up with a more compact formula then the
one I developed; but this should do what you want...

=SUMPRODUCT((LEFT(A1:A20)="5")*B1:B20)-SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20=514000)*(A1 :A20<=514020)*B1:B20)

Rick


"sharon" wrote in message
...
Rick,

Thanks again, and ,oops!, sorry for my mistyping !

I think the solution you gave me is not the one I wanted, since it sums
just
the values between "514000" and "514020". I thing you use an AND when I
need
an OR.

My thoughts were that the rows matching my needs we
LEFT(CODES,1)="5" AND (OR(CODES<"514000",CODES"514020")), assuming CODES
is
the range where I have the codes (A3:A20) in the example.

But I don't know how to translate this into a fomula...


Thanks for your explanation on SUMPRODUCT sentences.


Cheers,


"Rick Rothstein (MVP - VB)" wrote:

Thanks Gary and Rich for your help.

Rick (not Rich)...

I rlize I had an error while writting my needs, in fact what I need te
sum
of all the values, starting with "5" but not the values BETWEEN
"514000"
and
"514020" ( I typed among), so I don't want "514000", "514010",
"514020"...)

Okay, if I understand you correctly, give this formula a try...

=SUMPRODUCT((LEFT(A1:A20)="5")*(A1:A20=514000)*(A 1:A20<=514020)*B1:B20)

Gary, when you type 2 "-" signs I guess it means it's an array formula.
Isn't it?

No, it has nothing to do with an array formula (SUMPRODUCT formulas are
entered normally)... Boolean expressions (those expressions between the
parentheses in our formulas) return TRUE or FALSE... multiplying them
by -1
twice (that is what the double minus signs are doing; in the same way
the -5
means multiply -1 times 5) converts TRUE to 1 and FALSE to 0.

Rick




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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Logical operator in Calculated Field Formula Fatih Can1968[_2_] Excel Discussion (Misc queries) 4 July 11th 07 06:04 PM
LOGICAL OPERATOR "IF" FOR AN ARRAY FARAZ QURESHI Excel Discussion (Misc queries) 5 January 21st 07 08:35 PM
LOGICAL OPERATOR "IF" FOR AN ARRAY FARAZ QURESHI Excel Discussion (Misc queries) 0 January 19th 07 08:19 PM
LOGICAL OPERATOR "IF" FOR AN ARRAY Prasadkakarla Excel Discussion (Misc queries) 0 January 19th 07 08:14 PM
Logical operator inconsistency KD[_5_] Excel Programming 1 June 8th 06 10:42 AM


All times are GMT +1. The time now is 09:55 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"