I have a waterfall chart and I am using 3 columns in the x Axis. 1st column is the Sequence numbers, 2nd column has project number and third with the project names.
In the X axis i wanted to add al these 3 columns, the first column in the begining just to show the project names and numbers in the sequenctial order.
Since the 1st column is just the sequence numbers I don't want to show it in the visualization. Is there a way we can hide just one data point from the x axis.
I checked in the proeperties to see if there is any sorting options but I didn't find anything for waterfall chart.
Related
I have a spreadsheet with 1000's points that I want to graph.
Y axis are dates, X axis is time, values are electricity consumption in Kwh.
As you can see updates are in 15min intervals but every other is 0.
a) I want to delete the 0 columns.
b) And graph the result > 255points
excel.jpg
To delete every other column without doing it manually, you can create a formula to help. First insert a row at the top of the sheet (you will delete this row when you are done with it.) Next, in your new helper row, add a MOD function to the first column with the Kwh values (probably column B.) This returns a remainder after we make a division, so we pass the column function to it as our number parameter. The other parameter is the divisor so we will use 2 for that.
=MOD(COLUMN(),2)
With the cell selected, click the bottom right square of the green highlight of that cell (when your cursor turns to a +) and drag it across all of your columns. Now we will have a 0 and 1 in every other column.
We want to convert that formula to values to make sure nothing happens to our data so now copy the highlighted cells and right click to paste special. Here you will change the Paste radio button to Values.
Now we have values in the helper row so we can select all of our columns except the date row, so do that and open the data column. Click the Sort icon and in the sort window now you will click options and choose from left to right. We will then choose to sort by row 1, and choose the order to be smallest to largest.
Now when you click to sort you will have all of your columns with 0 in them (if it was indeed every other column) on the right-hand side, and all of your data is in the left. Easily select all of the zero rows now and delete them manually with one click. Also delete the helper row you created and you have the sheet ready to graph.
Select all of your data including column A and Row 1, and then go to the insert tab. In charts you can see the different types of graphs. Check the recommended charts or experiment by clicking on the different types of graphs to see which one fits your needs the best. If you choose the 2 Line or Scatter for instance, it will graph out each day in different colors showing Kwh on the Y axis, and X will be the time. You can then format as you wish.
I have a chart (scatter with smooth lines and markers) containing six series. The series all share the same X values. On the same sheet, I have one column of X values and six columns of Y values, one for each series (all series share the same X values). The user needs to be able to smooth small irregularities in the Y values. Ideally, the user would simply click a point directly on the chart and drag it up (to increase the Y value) or down (to decrease the Y value). But since that is impossible AFAIK, the second best solution would be for the user to click the point and have VBA select the cell containing the corresponding Y value. My question is: How do I define an event for the point click which I can capture in a VBA handler? The handler can then decode the point information, determine sheet cell, and select it.
In Excel 2013, I am labeling a scatter plot with values from cells. I'd like the labels to not overlap. I can manually move labels, but I've created a filter to automatically create new plots, so I would like the label deconfliction to happen automatically as well.
Is this possible? Bonus for solutions without VBA.
Example of overlapping labels below:
Here's a non-VBA solution that works if there aren't too many points and the range of values is fairly stable.
It works by splitting your Y series into two separate series, one which has labels above the points and one which has labels below the points.
By default, points will be put into the series with labels below the point. However, for each point, the splitting formula checks whether there is another nearby point that is below or level to the current point. If there is, then the current point is put into the series with labels above the point instead.
I'm assuming you have data in 3 columns: Filter, X, Y. (This also works if you're just filtering on X or Y, you can ignore the Filter column)
Four working columns are required. The first two are X Filtered and Y Filtered.
Using the example in my screenshots below, this formula goes into D2 and fills both D and E columns:
=SUBTOTAL(9,B2)
This just causes the data points to go to 0,0 if they're filtered out, so that they're ignored in the splitting formula.
To make things easier to read, set the names of the filtered values to X (D2:D10) and Y (E2:E10)
Then this formula goes into F2 as an array formula, entered using CTRL + SHIFT + ENTER, and then filled down.
=IF(SUM((ABS(D2-X)<0.75)*(E2-Y>0)*(E2-Y<0.75))+(SUM((ABS(D2-$D$2:D2)<0.75)*($E$2:E2=E2))>1),E2,NA())
This formula creates the series with labels above the point. The formula does two checks:
Checks if there are any other points that are "close" and below the current point.
Checks if there are any previous points that are "close" and level to the current point. (For this check, we can't compare to all points otherwise both points will have labels above the point. We only check up the current point so that the first point still has a label below and subsequent points have a label above.)
If either of these conditions are met, then the value is used, otherwise NA() is used (so that no point is displayed).
In this formula, close is defined as "0.75" on both the X and Y axis. You'll need to change these values in your formula based on what is "close" in your data. I.e. what difference in X and Y values requires labels to be placed on opposite sides of the points.
This formula then goes into G2 to create the series with labels below the point, which is all remaining values:
=IF(ISERROR(F2),E2,NA())
One trick is just required to make the autofilter work on the data. Because we used the SUBTOTAL formula, Excel thinks the last row is a subtotal row and automatically excludes it from the autofilter, even if we select all of the data before applying the autofilter. To use an autofilter, you'll actually need to create an extra dummy row with no subtotal functions before creating the autofilter.
Now, create the scatter plot with 2 series:
Series 1 using X and Y Above
Series 2 using X and Y Below
(No need to include a blank row in these data series)
Format both series to be the same in all details, except Series 1 has labels displayed above points and Series 2 has labels displayed below points.
My screenshots below show results, including when filtering. Labels will always be below values, unless there is another visible point nearby. Each screenshot also shows one of the formulas.
All points:
Filtered on "a"
Filtered on "b"
EDIT: We can actually make the formula a little smarter to handle multiple close level values. This will alternate each subsequent value between having a label above and below. However, it only works while all values are within the "close" range and only if the data is sorted by X first
=IF(SUM((ABS(D2-X)<0.75)*(E2-Y>0)*(E2-Y<0.75))+(MOD(SUM((ABS(D2-$D$2:D2)<0.75)*($E$2:E2=E2)),2)=0),E2,NA())
I would like to graphically represent how some real valued data has been discretized/binned. I have an array of real numbers ranging from 1 to 35. For each value, I have a corresponding natural number in the range of -2 to 19. I would like to show all of the real numbers on a number line colored based on which natural number corresponds to each one. Is this possible in excel? If not is there something else I can use to accomplish this?
Since you have no y-axis, here's how I would do this: Create an Excel spreadsheet with the numbers 1-35 in Column A, and with the numbers -2 to 19 along the top of Row 1.
In each intersection of the right number with the right color value, enter a 0.
Graph this range, using a line chart with point markers. You will end up with various points along the x-axis, with different colors and shapes, according to the distribution in your table. Now you should completely remove the y-axis (no line, no fill, no labels, no ticks), gridlines, and legend.
Finally, I would edit the various data series, by removing the lines (leaving the markers), and setting all the line markers to use the same shape, with only the colors differing.
You can fudge conditional formatting in Excel charts. Check out the "Conditionally Formatted Line Chart" example in this tutorial:
Conditional Formatting of Excel Charts
I'm having trouble putting data on 2 different types of data on my x-axis from the data in my table. How can I get the month and year data from my table to a line graph like this?
Like in the graph shown, I want all to group the x-axis by year range (2001-2002, 2002-2003, etc). And then within each year range, I want the values for each month to show for that year from August to May. And repeat this again for each year interval.
What should I select on select data source to make it look like the graph shown?
In Excel, you can arrange your data this way (I've only included 3 years):
Every cell that seems blank is really blank, that is, it doesn't contain a formula or a space or anything that doesn't appear. The "XXX" in the second cell of the second column is temporary. Create your line chart with this data, then delete the "XXX" and format the chart.
Recommend combining the month and year dimensions into a single month-year column and making the values line up in a single column. Then put month-year on the x axis and values on the y axis.