We help IT Professionals succeed at work.

# How do I use a SUMIF function when the cells to add together are not adjacent to each other?

on
203 Views
I want to use this formula:

=IFERROR(SUMIF(Q12:Q18;Q24:Q30;Q37;(AND(P32="*volt*");P37="*volt*");(SUM(Q12:Q18;Q24:Q30);"")))

But I think I need to change the range after SUMIF. What I want is that sum everything in Q12:18 and Q24:Q30 and Q37 if both P32 and P37 contains the text "volt" (must be in both P32 and P37). Otherwise sum only Q12:Q18 and Q24:Q30.

If I need to change my formula, how should I change it?
Comment
Watch Question

## View Solutions Only

Managing Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
Hi,
SumIF is used only when you have cell range filled with "volt" and you want the total of "volt" from other column/columns. In your case, IF AND SUM would be helpful.
Try below:

=IF(AND(P32="volt",P37="volt"),(SUM(Q12:Q18)+SUM(Q24:Q30)+Q37),SUM(Q12:Q18)+SUM(Q24:Q30))
CERTIFIED EXPERT
Top Expert 2016

Commented:
Hi,

pls try
``````=IF(AND(P32="volt",P37="volt",Q37)+SUM(Q12:Q18,Q24:Q30)
``````
Regards
Retired IT Professional
CERTIFIED EXPERT

Commented:
Try:
=IF(AND(P32="volt",P37="volt"),SUM(Q12:Q18;Q24:Q30;Q37),SUM(Q12:Q18;Q24:Q30))

Commented:
I tried your formulas now, but I get a blank cell for both. By the way, I need "*volt*" (not exactly "volt" but "*volt*" and can/will contain other words also.
Managing Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
Then try below formula:
=IF(AND(COUNTIF(P32,"*"&"volt"&"*"),COUNTIF(P37,"*"&"volt"&"*")),SUM(Q12:Q18:Q24:Q30:Q37),SUM(Q12:Q18:Q24:Q30))
Mechanical Engineer
CERTIFIED EXPERT
Most Valuable Expert 2013
Top Expert 2013
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
Retired IT Professional
CERTIFIED EXPERT
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
CERTIFIED EXPERT
Top Expert 2016

Commented:
then try
``````=IF(COUNTIF(P32,"*volt*")*COUNTIF(P37,"*volt*"),Q37)+SUM(Q12:Q18,Q24:Q30)
``````

Commented:
Shums, I tried your formula now but get a circular reference warning.

Byundt, then I tried your formula, and it works! Only when both P32 and P37 contains "volt" then it includes Q37 in the calculation.
But something strange happens: In a drop-down I have in M4 ("volt" and "auto"), when I change selection here from "volt" to "auto", then the formula in Q35 gets deleted and replaced with the calculated static value.

hnasr, your formula also works fine! But the same strange thing happens as I noted for Byundt.

Rgonzo1971, I could not get your formula to work; nothing happens when both P32 and P37 contains "volt" and I select a value in Q37.

So both Byundt's and hnasr's formulas works fine. The problem remains why the formula gets replaced by the value when changing from "volt" to "auto" in the drop-down in M4.
Mechanical Engineer
CERTIFIED EXPERT
Most Valuable Expert 2013
Top Expert 2013

Commented:
If the formula is getting changed, then you probably have a VBA event macro running. Are you able to post the workbook?

Commented:
I have this sub in the middle of a lot of other subs:

End Sub

Private Sub Worksheet_Calculate()
Dim i As Integer
On Error GoTo ErrorOut
Application.EnableEvents = False
For i = 1 To 8
If KeepValue(i) <> Cells(34, i + 16) And Cells(35, i + 16).HasFormula = True Then
Cells(35, i + 16) = Cells(34, i + 16)
End If
KeepValue(i) = Cells(34, i + 16)
Next i
ErrorOut:
Application.EnableEvents = True
End Sub

But the sub doesn't work as intended: instead of keeping the formula in Q35:Y35 it keeps the value.
Mechanical Engineer
CERTIFIED EXPERT
Most Valuable Expert 2013
Top Expert 2013

Commented:
The following statement is overwriting your formula in row 35:
``````          Cells(35, i + 16) = Cells(34, i + 16)
``````
If you want to keep the formula in row 35, and copy the value from it into row 34, you might use:
``````          Cells(34, i + 16).Value = Cells(35, i + 16).Value
``````
If rows 34 and 35 have formulas and you want to keep them both, then you would just delete the statement altogether.

Commented:
Both row 35 and 34 have separate formulas different from each other that should be kept, but the idea with this VBA is that on row 35, I might choose to manually enter a value instead of the formula calculated value, and in case I thereafter choose to revert to the formula calculated value and hit Delete, then the old formula should be restored to this cell. This worked fine with this VBA earlier, but not now.
Mechanical Engineer
CERTIFIED EXPERT
Most Valuable Expert 2013
Top Expert 2013

Commented:
Both row 35 and 34 have separate formulas different from each other that should be kept,
If you can't copy a formula from one row (or column) to another, those formulas need to be hard-coded in the VBA.

Commented:
I can copy a formula from one row to another, but the problem is that when I select another option in that drop-down menu in cell M4, then the formula on row 35 gets replaced by the resulting value only.
Mechanical Engineer
CERTIFIED EXPERT
Most Valuable Expert 2013
Top Expert 2013
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
Retired IT Professional
CERTIFIED EXPERT

Commented:
then the formula on row 35 gets replaced by the resulting value only