Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 19
Default Application.Worksheetfunction.Sumproduct

Hi all,

I have got this groovy formula below as an Excel formula and would like to
make it usable as VBA:

=SUMPRODUCT(--(B3:B16-B2:B15=0),B3:B16-B2:B15)

I realised this "-" in the formula means "multiply by -1".

I tried:

Dim v As Variant
v = Application.WorksheetFunction.SumProduct(--(Range("B3:b16") -
Range("b2:b15") = 0), Range("B3:b16") - Range("b2:b15"))

But I get Type Mismatch error...

Can anyone help?

Thanks in advance,
Tetsuya

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default Application.Worksheetfunction.Sumproduct

v = Activesheet.Evaluate("SUMPRODUCT(--(B3:B16-B2:B15=0),B3:B16-B2:B15)")


--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)

"Tetsuya Oguma" wrote in message
...
Hi all,

I have got this groovy formula below as an Excel formula and would like to
make it usable as VBA:

=SUMPRODUCT(--(B3:B16-B2:B15=0),B3:B16-B2:B15)

I realised this "-" in the formula means "multiply by -1".

I tried:

Dim v As Variant
v = Application.WorksheetFunction.SumProduct(--(Range("B3:b16") -
Range("b2:b15") = 0), Range("B3:b16") - Range("b2:b15"))

But I get Type Mismatch error...

Can anyone help?

Thanks in advance,
Tetsuya



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Application.Worksheetfunction.Sumproduct

Will this do?

Total = 0
for each cell in Range("B3:B16")
if cell = cell.offset(-1,0) then
total = total + (cell - cell.offset(-1,0))
end if
next cell

The "--" really converts the TRUE's to 1 and the False's to 0. so instead
of getting an array of

{true, false, false, True,...)

You get

{1,0,0,1,...}

Sumproduct doesn't know how to multiply {true * 1}. the -- changes this to
{1 * 1}

"Tetsuya Oguma" wrote:

Hi all,

I have got this groovy formula below as an Excel formula and would like to
make it usable as VBA:

=SUMPRODUCT(--(B3:B16-B2:B15=0),B3:B16-B2:B15)

I realised this "-" in the formula means "multiply by -1".

I tried:

Dim v As Variant
v = Application.WorksheetFunction.SumProduct(--(Range("B3:b16") -
Range("b2:b15") = 0), Range("B3:b16") - Range("b2:b15"))

But I get Type Mismatch error...

Can anyone help?

Thanks in advance,
Tetsuya

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default Application.Worksheetfunction.Sumproduct



"Joel" wrote in message
...


Sumproduct doesn't know how to multiply {true * 1}. the -- changes this to
{1 * 1}


=SUMPRODUCT(({TRUE,TRUE})*({1,1}))

=2


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Application.Worksheetfunction.Sumproduct

Just to add to the information

You can use sumproduct for its original intended purpose of multiplying two
or more arrays element by element and summing the results using
application.Sumproduct.

However your "groovy" formula is using the special ability of sumproduct in
a worksheet to evaluate it arguments as array formulas. This ability is not
supported in VBA. the Evaluate function in VBA can interpret a worksheet
formula supplied as an argument as if it were in a virtual cell. thus Bob
has suggested that use which does support the special abilities of sumproduct
to act as an array formula.

--
Regards,
Tom Ogilvy


"Tetsuya Oguma" wrote:

Hi all,

I have got this groovy formula below as an Excel formula and would like to
make it usable as VBA:

=SUMPRODUCT(--(B3:B16-B2:B15=0),B3:B16-B2:B15)

I realised this "-" in the formula means "multiply by -1".

I tried:

Dim v As Variant
v = Application.WorksheetFunction.SumProduct(--(Range("B3:b16") -
Range("b2:b15") = 0), Range("B3:b16") - Range("b2:b15"))

But I get Type Mismatch error...

Can anyone help?

Thanks in advance,
Tetsuya

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
Need help with Application.WorksheetFunction Ayo Excel Discussion (Misc queries) 4 May 14th 08 11:13 PM
Application.WorksheetFunction.VLookup (Plz Help) Raj[_11_] Excel Programming 4 July 4th 07 01:37 PM
application.worksheetfunction Ozgur Pars[_2_] Excel Programming 4 July 18th 06 08:11 AM
Application.worksheetfunction Terry V Excel Programming 7 October 12th 04 05:48 AM
Using Application.WorksheetFunction.Ln(...) in VBA doco Excel Programming 4 August 25th 03 01:08 PM


All times are GMT +1. The time now is 09:00 AM.

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"