Here's a data sample
and screenshots too.
I'm trying to make a waterfall chart with Start/End year performance and contributions. I was trying to make the chart more descriptive by including a customized label, with percentage variations.
No matter how I select the labels column, the ending Subtotal bar is independent from the others. I'm trying to customize both bottom and top labels, but I'm more concerned on the top one (the growth/loss percentage or the absolute value at the end of the year.
Thanks again to #kirkg13 for guiding me through the solution. It was not quite difficult in the end, but I think the option should be made clearer/simpler in some future updates.
You can check my solution on the Chart 4 from the sample file as long as It'll be online. Steps are as follows:
1: Lay the data in three columns: Column names, values (start value, absolute deltas and end values) and custom labels (whatever you like, in my case % variations for all columns except start/end). Include the subtotal column
2: On the chart editor make sure all the data is selected, including the sub-total (from Start Year to End Year in my example). Check that x-axis and series are correctly assigned (column 1 and 2); from the series click and add a label, selecting the third column.
3: This is the part I had difficulties finding: on customize>series>data labels, you need to:
Uncheck the "Add subtotal..." box (optionally check the "Use first value as subtotal" one, for better color clarity
Below, click "Add new subtotal".
The new Subtotal must be of "type" "Replacing" and "column index" as the last column you have
The end result is as below: all columns have a customizable name and label, with coherent colors.
Related
I'm trying to make a file to track the time I study a certain subject:
I would like now to make a chart with all the values (that in this case are durations) in the B, C and D columns, but I don't really understand how to do it. When I select the cells and click "create chart" it does the following:
which is obiously wrong. If i remove "date" from the "series list" in the settings of the chart above i get the following:
But I don't understand what this represent. How can I do this? Please keep it simple.. This is the first time for me using google sheets
Ps i just realized that that kind of format specifies a time (2am, 3am etc) and not a duration. Is there any format that indicate a duration?
Here is what to do:
1.) Select all of your time columns entirely within the spreadsheet itself (not the graph). Using your posted setup, that would be Col-B, Col-C, Col-D. To do this, just click on the "B" at the top of Col-B, hold down the mouse and drag right to Col-D, then release. If you have more columns than these that will record durations for classes, select those as well.
2.) From the main menu, choose **Format > Number > Custom number format > **. In the field at the top, enter this format: [h]:mm
The second chart in your post is actually correct. It's just showing your durations as the decimal percentage of a full day on the Y-axis. The steps above should cause the chart to adjust to showing durations.
I have a spreadsheet set up as a type of checkbook and I was wondering if given a column called "Amount" which records the various dollar amounts of the individual transatction. And another column "Reason" which the reason for a transaction is written down "rent, eating out, etc". Could I make a pie chart that will add all of the values that are in the Amount column if they have matching reasons in the Reason column.
So if I have five Reason entries listed as "rent" can I then get the sum of each cell from the Amount column that is in the same row.
Essentially I want to have a resulting chart that shows the total I'm spending on each reason with the labels that match the reason category.
--Edit
Heres an image of how my spreadsheet is set up currently with the solution of using filters to make a bar chart but I wonder if there's a better way to do this
Create a chart with Columns A (Amount) and B (Reason).
Create a filter with Column B (Reason)
Select/deselect the reason you want to include
You may also consider to filter with a slicer
I have made a bar chart which aggregates my data, but is there any way I can split each bar based on the data it is aggregating - similar to how a stacked bar chart would look?
Here is a bad artists impression (thick blue lines mine). The idea is that it's important to know from looking at the graph if I sold 5 at £1, or 1 at £5.
Ideally this would work even if the price for each item is variable, but that is not essential (eg: if there is a 'hack' with hardcoding Apple = 3, I can live with that.)
I'm also fine inputting helper columns etc, within reason, but I would want to be able to easily continue to add things to the list on the left without having to add new helper columns each time (calculated ones are fine, of course.)
Thanks in advance.
UPDATE: With thanks to Kin Siang below, I ended up implementing a slightly modified version of their solution, which I am posting here for completeness.
I added a very large (but finite) number of helper columns to the right, with a formula in each cell which would look for the nth occurrence of the item in the main list (wrapped in an iferror to make the unused cells blank).
=iferror(index(FILTER($A:$B,$A:$A=$D2),E$1,2))
Theoretically it could run out of space one day, but I have made it suitably large that this should not be an issue. It has the advantage over the other solution that I do not need to sort or otherwise manipulate the input range and can continue trickling in data to the main list and have the chart automatically update.
Yes, it is possible to display the chart in your case, however need some data transpose in order to do so, let me show you the example with dataset
Assuming this is your original data:
First sort the data by alphabet, and enter this formula in new column
=if(G39="",1,if(G40=G39,I39+1,if(G40<>G39,1)))
Next add new column for categorical purpose, by using concatenate function
="Price"&I40
In the transform data for chart purpose, enter this formula to split all price into different row, different column for different product
=sumifs($H$40:$H$47,$G$40:$G$47,$A41,$J$40:$J$47,B$40)
After that i select stack bar chart and ensure the price in under series, in case in 23 will have some problem to set price at series correctly, you can use 33 data create stack bar chart and update the data range again, it will work also
Here is the cute chart you expected, accept if help :)
*When certain fruit has less price record, it is advised to fill in 0, as the data table need in same column (see the orange price 3), although I didnot test if blank
I need your help on this one. I'm looking to create a chart (without code) to display data by month in column charts, either like this:
Or like this:
In the figure 1, I read that the volume of 10 is driven by A, B & C.
In the figure 2, I read that the volume of 10 is driven by 4xA, 2xB & 4xC.
I tried to create my chart but the labels are awful on a single line, and I did not find any way to add a newline characters (\n, ...) in my labels serie.
Any idea to do one or the other one without going though apps script?
Thanks for your help!
You can do this by adding a label column to your data. See this example,
https://docs.google.com/spreadsheets/d/1H5frKDH612ciLKnB0HY7FiB2FNQBobbhFGcvYqxC7f8/edit?usp=sharing
Add one label column for each data column
Create chart
Use stacked non 100%
Set range to include all labels
Set labels
In customize series check labels is on
In the downdown for label pick custom rather than value.
ScreenShots -
1. Add Label Columns 2. Set Labels on Series 3. Turn Labels On
I have a sheet with a line chart, now I'm trying to do something maybe very simple: I would like to add to this chart a vertical line using a value in a cell.
So I have this line chart
And a cell with the date 2016/01/01, I would like to have a vertical line through all the chart on the cell date
I can't figure out how to do it...
This is a copy of that sheet: https://docs.google.com/spreadsheets/d/1oeiwmeDT8pUVqBQvoE_cqk7mZxxvD5moZr41Vp4IN2I/edit?usp=sharing
I would like to show a vertical line using the "Purchase date"
I had the same problem and created a solution to overcome limitations of Google Sheets charts.
The main idea is to create an additional line in the chart, with only two points, both with the desired date. The value of the first point is 0 and the last has the maximum value of the Y axis. This way, the line always covers the entire height of the chart.
Screenshot of the Chart
Note that it is necessary to add two new values in the X axis (highlighted in blue on the sheet). Don't worry with the fact they are repeated. Google Sheets handles it correctly.
These values can be placed at the beginning of the lists. This way, it is possible to add new values at the end of them.
This solution can be viewed in: "[GoogleSheets] Dinamic Vertical Line in a Chart"
To change position of red line, just select a different value in "Purchase date" (yellow cell).
I made a merge of my first solution with the one suggested by dimo414 and created a new solution with two variations.
In the previous version of the spreadsheet, there were only two points to draw the vertical line.
In the new version, a third point were inserted to show intersection between the line and the real curve. A new column was also created, containing only a label for the new point.
The result is:
Theses changes can be seen in green background in sheets 'Dashboard_v2' and 'Dashboard_v3' of the SpreadSheet.
To determine coordinates of the new point, two approaches were used:
Search Purchase Date directly in the dataset (see sheet 'Dashboard_v2')
If the goal is to highlight only points of intersection that belong to the original dataset, it is just necessary to VLOOKUP() the date in the dataset.
Interpolate the two points immediately smaller and larger than the purchase date (see sheet 'Dashboard_v3')
Given the points [x1,y1], [x2,y2] and a value of x (where x1 <= x <= x2), its possible to find an interpolation point [x,y] with the following formula:
y=(y2-y1)*(x-x1)/(x2-x1)+y1
Although this formula is easy to implement, find the correct points to interpolate is more challenging and requires a bit of creativity.
At first, I thought of using a JS script to make things easier, but decided to use only builtin functions.
By the way, different approaches to find [x1,y1] and [x2,y2] are welcome.
To make things easier to understand, each point coordinate is determined in a different cell (see L2:M5) and the point of intersection is in L6:M7.
Of course, its possible to join all of them in just one cell, but I thought it would be harder to understand.
To close, one more detail: According to above definition, interpolation formula is valid only if (x1 <= x <= x2). Thus, both cells C2 and M6 have protections to limit the value of 'x'.
One way is to add a label to your x-axis.
For example, this is a chart that plots weight against date, with a label "Cheat Day" on 2021-07-21
For the data:
Date
Label
Weight (kg)
Weight Goal (kg)
2021-07-19
83.85
75
2021-07-20
84.55
75
2021-07-21
Cheat Day
83.8
75
2021-07-22
84.95
75
2021-07-23
83.75
75
Go to Edit the chart > Setup > Under X-axis > Click on ••• next to your "Date" column > Add labels > Select the column "Label" as your label.
Your Chart Editor > Setup should look like this:
you can have it like this, unfortunately not programmatically. the only way is to insert a line via Drawing and position it manually where needed.
spreadsheet demo
As best I can tell there isn't a way to add a vertical marker line to a chart in Google Sheets. One option that may be "good enough" in many cases is to "Add notes to a data point" and then use "Format data point" to make the point more visible. Here's an example, from your spreadsheet:
Unfortunately one limitation with this approach is you can only label a data point in the data set the chart is displaying. In your case the date you wanted to mark with a line isn't in the data set, so this won't work directly. You might be able to introduce a separate data series consisting of just that date and then add a note to that data point, but I haven't fiddled with it enough to make it work.