I have a row with multiple blank values. I want the answer to be "" if all values are blank. If any of the cells contain a value, I would like to take the SUM of those cells, and add 10 to it. The formula I am using is below, and it always displays the answer as "10", even if all cells are blank. Please help.
=IF(ISBLANK(A1:D1),"",SUM(A1:D1)+10)
ISBLANK() only works on a single cell. You want to use COUNTA() instead.
Counts the number of cells in a range that are not empty
=IF(COUNTA(A1:D1) = 0,"",SUM(A1:D1)+10)
Related
I want to get the count of cells used in an excel function.
For example say I have a sum function ='CV'!D11+Farmer!D11+'County'!D11+Rt!D11+WT!D11+'Country'!D11
I need a function that will tell me how many cells were used to get the total sum. In this case it is 6. The tricky part is if one of the cells used is blank I do not want it counted. For instance say cell D11 on the Farmer sheet is blank I do not want it counted in the total. So the total should be 5.
Use COUNT:
=COUNT('CV'!D11,Farmer!D11,'County'!D11,Rt!D11,WT!D11,'Country'!D11)
It will only count the cell if it has a number
You should really try to collate all your data in to a single sheet before running calculations. For the sake of example, I'll assume you have it in the range A1:A5, then you can add handling of the various cases using array formulas:
Get the count of non-empty cells (the ISBLANK function is untrustworthy in my experience): {SUM(IF(LEN(A1:A5)>0,1,0))}
Get the sum of those cells: SUM(A1:A5)
(must use Ctrl+Shift+Enter to enter the formula as an array formula, you will know it worked if the formula shows like {IF(...)} with the curly brackets)
Because blank/missing values are treated implicitly as 0 in the SUM function, this case is simple. If you have other validations then you'd have to write an array formula for the summation as well. For example, only including numbers between a min and max threshold (e.g. if you want to exclude outliers):
{SUM(IF(AND(A1:A5 >= yourMinValue, A1:A5 < yourMaxValue), A1:A5, 0)}.
If I understand your question correctly, you want to literately count the number of cells used in a formula which in your example is summing 6 values from 6 different locations.
I used the following example to demonstrate my solution:
The sum of =A1+B1+C1+D1+E1+F1 is 10 where cell C1 has a 0 value in it but cell E1 is blank.
Using the following array formula I was able to count the number of cells that have a value other than 0:
=SUMPRODUCT(IFERROR(ABS(N(INDIRECT(TRIM(MID(SUBSTITUTE(RIGHT(FORMULATEXT(A3),LEN(FORMULATEXT(A3))-1),"+",REPT(" ",100)),100*ROW(INDIRECT("1:"&LEN(FORMULATEXT(A3))))-99,100)))))>0,0)*1)
Please note you MUST press Ctrl+Shift+Enter upon finishing the formula in the formula bar otherwise they will not function correctly.
The logic is to use a combination of TRIM+MID+SUBSTITUTE+RIGHT+FORMULATEXT+REPT+ROW+INDIRECT to extract the cell addresses from the original formula, then use INDIRECT to convert the cell address into the values stored in those cells, then use a combination of IFERROR+ABS+N to find out if any of these values are not 0, and lastly use SUMPRODUCT to add up all the TRUE results.
It is obvious that there are a couple limitations of my solution:
If your actual formula is not strictly in the form of A+B+C+D+E+F, then my SUBSTITUTE part of formula will need further modification;
The formula will treat cells containing 0 as blank and does not include them in the count.
Let me know if you have any questions. Cheers :)
I have the following formula to make a unique list from column plant in table 15:
{=IFERROR(INDEX(Tabel15[Plant];MATCH(0;COUNTIF(Analyses!$Q$2:$Q2;Tabel15[Plant]);0));"")}
This formula is working, but when there is just 1 value in column plant the formula gives a value of 0. This is wrong because it should return the value.
Does anyone know how I can adapt this formula to make it work?
I wanted to change it to this:
{=IF(COUNTA(Tabel15[plant])>0;INDEX(Tabel15[Plant];MATCH(0;COUNTIF(Analyses!$Q$2:$Q2;Tabel15[Plant]);0));Kopie - datablad$G$2)}
But it doesn't work either.
Good mock example. Try and see if this works:
The formula counts the unique cells against another list. The unique list expects to take the first row, no matter what. It also expects you to have more than one value in your duplicate list. If it doesn't you can't compare since it expect duplicates and it throws an error, #N/A. This is mask as blank cell since it's wrapped in IFERROR:
"Unique formula" = IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF($Q$1:Q2,Tabel15[Plant]), 0)),"")
To solve this we check how many values it exist in our duplicate list:
=IF(COUNTA(Tabel15[Plant])>1,... "Unique formula" ... ,Tabel15[Plant]) //***//
This will give us this result.
Then you probably don't want duplicates...
So we need to check if previous rows contain any of the values the formula would return.
The VLOOKUP formula do that for us, and as lookup value we use the formula above //***// and lookup range will be our current column: $Q$1:Q2. NOTICE this is a dynamic range so Q2 is relative reference (no $).
=IF(ISERROR(VLOOKUP(IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF($Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),$Q$1:Q2,1,FALSE))
So the Final result we need to apply is this in Cell Q3:
=IF(ISERROR(VLOOKUP(IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),Analyses!$Q$1:Q2,1,FALSE)),IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),"")
The macro error can be ignored by:
If Not IsError(Sheets("Hulpblad").Range("B6").Value) Then
t = Sheets("Hulpblad").Range("B6").Value
'Code...
End If
there is no problem in your formula, it is just telling that there are blanks in the range, 0 means blank. the formula is treating the blank as a value and also considering it in the unique value calculations.
If you want to remove 0 you can just insert an if over your formula to remove it. like
=if(formula = 0, "", formula)
or in orignal form
=IF( (IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$2:$Q2,Tabel15[Plant]),0)),""))=0,"",IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$2:$Q2,Tabel15[Plant]),0)),""))
or go in the cell formatting and change the format to display 0 as a dash.
sometimes blank is also used as error checking, you can apply such formulae as well to check how many are blank, maybe that would someday be used to check any data entry problems.
I've been struggling with this for a while now, i use a Sumifs in excel to evaluate over a range of data,
My problem is that it returns the blank cells as zeros instead of blank,
is there a way to make the cell return as blank when looking at multiple ranges,
The above link is what the data looks like and the below link is what the sumifs returns, i need it to return blanks where the data is blank instead of zero,
The equation i am using is =SUMIFS(Sheet1!C:C;Sheet1!$A:$A;Sheet2!$A2;Sheet1!$B:$B;Sheet2!$B2) where sheet 1 is the sheet with the data and sheet 2 is the table where the sumifs evaluates to,
Also if the value is blank in the data it must return blank, but if it is zero in the data it must return as a zero.
Please someone help me.
You can use IF condition to check if the total is zero.
=IF(SUMIFS(Sheet1!C:C,Sheet1!$A:$A,Sheet2!$A2,Sheet1!$B:$B,Sheet2!$B2)=0,"",SUMIFS(Sheet1!C:C,Sheet1!$A:$A,Sheet2!$A2,Sheet1!$B:$B,Sheet2!$B2))
Apply cell formatting to hide zeros 0;-0;;#
The question is slightly confusing, so I will do my best to elaborate. I have a series of cells in a row with all of the cells in the row with a value of 0 and one cell having a value of 1. I want to use the COUNT function to count all of the cells to the right of the cell that contains the value of 1, including that cell. I would then use this number of counted cells in another equation. Does anyone have any suggestions on how to do this? I have tried using a lookup function inside of the count function, but it has not worked. This is my closest guess:
=COUNT(Lookup(1,A1:J1):J1)
This results in an error. Do I need to use VBA to make this work or should I be able to write an equation? I appreciate the help, or if there are any other strategies that I can use to attain the result I am looking for.
Edit: I am adding in some sample data and expected results. I am trying to count all of the cells to the right of the "1" including the cell containing the "1". So in this example, I would expect the formula to return "13" as there are 12 cells to the right of the "1"
You can use OFFSET() and MATCH():
That last "50" is a bit of a guess since I'm not sure how far to the right you want to count...
...and re-reading your question it's not clear if you only want to count values of 1 or if you also need to count other values as long as they're to the right of the first 1.
With data in A1 through J1, consider:
=10-MATCH(1,A1:J1,0)+1
In this case. 4 is the number of cells from G1 through J1, inclusive.
Assuming your range of 0 and 1 values is in row 2, starting from column B, use this formula in B3 and copy it across for as far as you need:
=IFERROR(COUNT($B2:B2)+1-MATCH(1,$B2:B2,0),0)
You could also use a formula of
=IF(A3>0,1+A3,IF(B2=1,1,0))
but that could cause issues if you have something in cell A3 itself.
You can use this formula:
=COUNTA(INDEX($A$1:$J$1,1,MATCH(1,$A$1:$J$1,0)):INDEX($A$1:$J$1,1,10))
The benefit to use this is it is not a volatile function, and it will also work for 1 appears in the last column.
You can use "COUNTIF" formula to count number of occurrences of specific number in a range of cells.
To count no of occurrences in a row.
=COUNTIF(1:1,1)
If it is in a column then
=COUNTIF(A:A,1)
Hope you are looking for a countif function.
COUNTIF(A1:A10, 1)
The above function counts the cell that has value 1 within the range A1:A10
I need to select a column from sheet1 and the selected column matches destination cell's row. I've got this code
INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1")))
but it selects blank values (empty cells) as zeros insted of empty cells!
I tried to fix it with something like
IF(
(
INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))
)=0;
"";
(INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))))
which of course doesn't work because I'm trying to apply the condition to a range instead of a value.
Is there any way to select the range
INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1")) picking
the blanks as blanks instead of zeros?
Is this what you are trying? I have put your formula inside the TRIM() formula.
=TRIM(INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))))
Note: Trim() will return a string. So if the cell is blank then you will get a blank but if the cell has a number then you will get the number as string
See this Example
I see you may not need an answer any more but I note that your original attempt will work - you can apply an IF to a range, i.e.
=IF(INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1"))="";"";INDIRECT(ADDRESS(2;ROW();;;"Sheet1")):INDIRECT(ADDRESS(101;ROW();;;"Sheet1")))
....but the INDIRECT/ADDRESS combination may not be required, you could return your original array with this formula
=INDEX(Sheet1!$2:$101;0;ROW())
and then just apply a simple IF function to that, i.e.
=IF(INDEX(Sheet1!$2:$101;0;ROW())="";"",INDEX(Sheet1!$2:$101;0;ROW()))
both of those will keep the numeric values numeric