How to get googlesheets to ignore blank rows in chart - google-sheets

I have a google sheet with multiple rows of data I am trying to put into a pie chart. The problem is that it reports on blank values as a separate category (not really blank though, they are set to "" as a result of a formula). Is there a way to suppress these blanks?

Since I had the same issue, here how to solve it (at least for line charts):
Double click on the chart so the Chart editor opens. In the tab Customize open Chart style and check the checkbox Plot null values.
Thats it, now empty lines / cells will be ignored and the line will be plotted to the next existing value.

It's best to not put "" in cells in the first place; the presence of such kind-of-empty-but-not-really cells leads to some issues that can be difficult to debug. To avoid such cells, don't use if(A1=1, 2, "") and similar; use if(A1=1, 2, ) instead, leaving the third argument truly blank.
But if you already have a range with some entries like that, you can use a formula like
=arrayformula(if(len(A1:B), A1:B, ))
to clean it up. This leaves most entries unchanged, except that "" will be replaced by blank cells.

Related

I want to export a pdf from a google spreadsheet without the empty cells making it bigger than it needs to

I have a spreadsheet created with importrange functions that pulls data from another file. The problem I'm facing is that when I try to print out the spreadsheet and save as pdf, the pdf includes all the cells I've set up to receive my data, the empty ones too, and I end up with a 4 page pdf with 3 empty pages.
I tried to put a filter() function in front of the importrange, so that if the importrange somehow imports null values and puts them in the empty cells making them no empty even though they look like it, that would do it, it didn't.
I've also read that google spreadsheet interpretes white background color as fill color, and to set it back to default background, and I did, but it didn't solve it.
I've removed the importrange functions at all to see if it was that that was doing it, it wasn't.
Finally, I've thought about formatting, because those cells are formatted with white borders, but I removed all custom borders and it still prints out all the cells.
To reiterate, I need to be able to do print > save as pdf and get a pdf that contains only the cells used, and I have an old spreadsheet that I'm improving upon that does exactly this (that is not made by me) and has very similar formatting, so I don't understand what's the issue here.
Here's one workaround:
Select the cells you want to include in your PDF
Click on "File" > "Download" > "PDF"
When the Print Settings/Export window appears, select "Selected cells" instead of "Current sheet" under "Export" in the top right corner
This screen capture shows the window in question.
Bois, I figured it out.
It's a pretty dumb thing, but I didn't know it.
The solution is absolutely no formatting of any kind, it's ok to have formulas that dont output anything, and custom text color for the cell, but all the cells must be separated and with default background color and default border color (AKA no border option).
What kept bugging me is the fact that my reference project had no cell borders and it had this loong table that never printed out if not necessary, and I assumed it had white borders, but it didn't.
Turns out the option to hide cell borders (VIEW > SHOW > GRID LINES) at all is connected to the spreadsheet itself, not the user, so if you disable it, everytime you open the file, from every account connected, it is not gonna show, so that's how they did it.

Change cell value based on checkbox in Google sheets

I'm using Google sheet to manage my budget (see sample below) where I add each of my expenses as a single entry (yes, sounds like a lot of work). I sometimes split the expense with my roommate but then I have to add the value and divide by 2 everytime.
I was thinking if I could use a checkbox next to the value that will automatically divide the expense number by 2 when I check it. Is this possible?
I'm open to simple suggestions other than the checkbox to automatically update the value. Thank you.
Using simple IF formula you can just check if the checkbox is true, if it is then it will divide the current value on column C by 2. Otherwise it will remain blank.
Formula:
=IF(D1,C1/2,"")
Drag down to other cells.
Result:
Suggestion, Alternate solution:
If you'd like you can make a table with a column for your roommate, instead of editing the actual column so you can see both values. And use this formula:
=if(NOT(D2=""),E2/2,E2)
You have a column for per head contribution/split. If the cell on roommate is blank then it will stay as the total value, if roommate has an additional then it will be added to total and split it by 2.
Or using arrayformula:
=arrayformula(if(NOT(D2:D=""),E2:E/2,E2:E))
Works the same as above you just have to fill the enter the formula in the first cell no need to drag down and it will automatically expand to rows/cells below just make sure that below cells are empty or it will return an error.
Additional - Using same cell
As you've mentioned in the comments. Here's a way to divide the original value without using another cell to store it. (Not recommended)
Formula:
=VALUE/IF(D1,2,1)
example:
=1000/IF(D1,2,1)
Result:
However, I do not recommend this. It is still best to make use of another cell to store the original value before making calculations to it.
Also, using this formula you have to change the value from the formula and not on the cell otherwise you will replace the actual formula.
You can try array approach-
=ArrayFormula(IF(D1:D,C1:C/2,C1:C))

How to leave a blank cell and not skip it with Importxml?

Basically I have an import xml code:
=IMPORTXML("https://www.example.com/listings.php?","//*[#id='listings']//*[#class='address']")
and it spits out the value in a row.
However if the text within the (div/span) class is empty it just skips over it and shows the next one in the cell below.
I don't want it to skip over blank text if the div with that class exists, even if it has no text inside. But rather create a blank cell so it doesn't mess with the values of the column beside it.
How is this possible?
So if this is your own site, the only solution I found was to add into all the empty divs/spans or w.e
This worked for me and left a blank cell which matched the column beside it.
Just keep in mind that if your content is dynamically refreshing or changing, you'll need to create a param to not change the content, otherwise it won't match the columns, even though you have the white space.

How To Detect Which Cells Are Merged In Google Sheets

While trying to remove duplicate phone numbers from a relatively large list I recently combined, Google Sheets presented me with this error message:
There was a problem.
Your selection contains a merged cell. To remove duplicates, all cells must contain the same number of rows and columns.
The formula I used to test and try to expose merged cells within Google sheets was:
=if(columns(A2:F2) = 6, "True", "False")
But this always returned true Because even though the cells may be merged they are still considered individual cells.
I am wondering if there is an easy way to discover and sort out these cells in Google Sheets. Excel used to have a very simple way of doing it but has since removed the functionality.
Any ideas?
if you have such an option you can use Conditional Formatting to check for merged cells like:
=MOD(COLUMN(),2)=0
where you can immediately spot merged cells where the color pattern is interrupted
in the same manner you can use this formula for rows:
=MOD(ROW(),2)=0
or you can play with scripts to find merged cells: https://issuetracker.google.com/issues/36753230
Custom formula
function isMerge(sheetName, a1Notation) {
var range = SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(a1Notation);
var merges = [];
for (var i = 0; i < range.getHeight(); i++)
{
var merge = range.offset(i, 0, 1, 1).isPartOfMerge();
merges.push(merge);
}
return merges;
}
Usage:
Paste the code above to the Editor: menu Tools > Script Editor...
Save Project
Use as usual formula: =isMerge(sheetName, a1Notation)
you can copy and paste the column somewhere, for example creating an extra column next to it.
You can then create a new column. You can run increasing numbers in both and subtract each cell from each other. If the result is not 0, then cells have been merged.
I was facing a similar issue and found a hack - ctrl+shift+down button to select all the data in the column. This automatically became a selection of two columns (the one I want to select plus the one next to it). I then worked from the bottom of the list up, using ctrl+shift+down button to select all data in that column, starting from the bottom 20 entries - with this, only data in that column was select - it didn't automatically include the next row too, which meant that the merged cell was not within these cells.
I repeated this step, going up the rows ~50 rows at a time, until the selection suddenly became two rows instead, when I was actually just selecting a single row's data. This meant that the merged cell was somewhere in the last 50 rows, and I just went down the list within that selection to check for the merged cell.

How do I make a sheet filter only show checkmarked rows with multiple variables in G-Sheets

I have a spreadsheet in google sheets that has a lot of checkmarks:
I want to create another checkbox filtering system, either at the top, if possible, or on another tab if not. I've tried putting the filter at the top, but as I'm sure you know, it overwrites the data, so no bueno. I also tried this:
with this code:
=FILTER(Movies!A3:P1000,(IF(F2=0,Movies!F4:F1002=0,Movies!F4:F1002=1)))
Which doesn't seem to be doing what I want either? It's showing a random selection, it seems, rather than only the data with the F column being true.
Ideally, you click the checkmarks of the data you want to see, so, if you click the check under Andrew, Addison and Richie, it would only show the rows that had only Andrew, Richie, and Addison's checkmarks. I am fine with making the checkmarks a 0,1,2 list if needed. (Because checkmarks I think are only binary, unless they have an option somewhere to have a third option that I'm unaware of, and marking some data to not be seen if it doesn't have a checkmark would likely require a third option.)
this is what I've got

Resources