vba - In excel, want to only sum certain values(not as easy as SUMIF)? -


so have 2 columns on named program , 1 cost values. 3 programs abc, a, b, , c. want sum costs of programs contain a. contain b. , contain c. abc included in sums. problem these programs spreadsheet has filter on messes sumif up. can help? here example of mean:

program     cost           5.00 b           4.00 abc         9.00           2.00 

so want in 3 separate cells "sum a"=16.00, "sum b"=13.00, "sum c"=9.00.

 item | total    | 16 b    | 13 c    | 9 

assuming above range in a1:b5, first formula following array formula:

{=sum(if(iserror(find(b6,$a$1:$a$5)),0,$b$1:$b$5))} 

you create array formula entering formula , holding down ctrl+shift keys while hit enter. in solution, i've created area calculate totals , have column (called item in case) indicates letter see in original column.

if trying enter using vba, use formulaarray property:

selection.formulaarray ="sum(if(iserror(find(b6,$a$1:$a$5)),0,$b$1:$b$5))" 

update

restricting calculation visible cells bit more complicated. suppose have original data in cells a1:b5. let's suppose our test values start in cell c7 (diagonal source data). our totals formula like:

=sumproduct(subtotal(3,offset($b$1:$b$5,row($b$1:$b$5)-row($b$1),0,1)), --not(iserror(find(c7,$a$1:$a$5))), $b$1:$b$5) 

the following portion returns range on cells

offset($b$1:$b$5,row($b$1:$b$5)-row($b$1),0,1) 

this portion returns 1 each visible cell , 0 invisible cell

subtotal(3,offset($b$1:$b$5,row($b$1:$b$5)-row($b$1),0,1)) 

this portion our criteria. not(iserror(... return true or false. double negative sign -- converts value negative integer , removes negation.

--not(iserror(find(c7,$a$1:$a$5))) 

lastly, sumproduct function multiplies matching arrays each other , executes sum. first 2 arrays return series of 0's or 1's. if row both visible , matches our criteria, 1*1 multipled given value in cell. if given cell not visible or not match criteria, 1 of 2 return 0 , zeroes out entire item.


Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -