Power Bi Dates in Chart - excel

I am trying to solve this problem, I have a table with company_name , articles and each one of them has a price and amount, with a certain date. So this article could be ordered many times. At the end it looks something like this:
Company Article Price Amount Date
----------------------------------------------------
X A1 10 3 12.03.2015
Y B1 20 5 10.01.2014
Z A1 30 9 25.12.2014
... ... ... ... ...
The problem that i want to represent that in Power Bi and most of the charts the do take the Sum of the Axises , I want the X to be dates (Without Aggregation) and the Y to be the Prise beside the Article with its size which is the Amount.
I would go for the Scatter Chart but I do not want the time line becuase I do need to show the dates on the X. So I thought I could do anything with the database so to add or aggregate anything. But I have no Idea how to do that ....

There is no way in Power BI for a scatter chart to use an attribute like "date" (or "category") on an axis.
A scatter chart in Power BI plots your data against 2 measures (one on each axis). Measures, unlike attributes, are aggregated. This is why, when you put a date on a scatter chart axis, Power BI turns it into a "Count of Date" measure - as that's the only way to aggregate a date. (If date represented a length of time, then you could convert the length into a number and plot using that - but that isn't what you're trying to do.)
Note that when you look at the Wikipedia page for Scatter plots, the examples shown match how Power BI works: 2 variables plotted against each other.
It sounds like what you're looking for is more of a column chart, but instead of columns, you want bubbles of different sizes. Power BI doesn't have anything like this right now. There are a few ideas you could vote for that might be relevant to what you're trying to accomplish:
Allow nonaggregrated data in Scatter Charts
Allow For Time-Series Data to Be Displayed on a Scatter Plot
X Y scatter chart would be a great addition. X axis that doesn't have to be an aggregate
Unfortunately, I don't have a good alternative suggestion for what you want to do using Power BI as it is today. I would recommend thinking about exactly what you're trying to show. Sometimes putting too much data on one chart makes the chart harder to understand. Column charts are boring, but they are effective. Power BI supports cross-filtering, slicers, legends & drill-downs which, with some interactivity, can allow for a lot of information to be gleaned from a single chart.
Ignore my American date formats. While I can't chart Amount, Company, Article, Date & Price all in one chart, I can do 2 charts that cross-filter each other. Alternatively, I can do a drill-down from company to article to date. Power BI has a lot of options, depending on what information you want people to take away from your charts.
Another thing to note is that Power BI is not a graphing tool (like Excel, for example). Power BI is geared towards aggregating data and providing insights based on those aggregations. If your requirements involve no aggregation, but rather plotting points directly onto a chart, it's good to consider whether Power BI is the best tool.
I know this doesn't really answer your question, but thought an answer would be more helpful than none. A picture of your desired output would have helped a lot too.

Related

Creating MS Excel bar graph with multiple data sets

In MS Excel (for Mac), I am trying to create a bar graph that represents the low and high of two different sets of data on the same graph. Example JOB_A can take between 1000 and 2000 hours and between 6 and 9 months (there is no correlation between hours and months). I am trying to create a clustered bar graph such that I can overlap low/high hours to be one bar and then overlap low/high months as another bar. That way I can put hours on the primary axis and months on the secondary axis. The result would show the "low" values on top of the "high" values, effectively showing a range (not summing the values).
I found that I can get close with a clustered and stacked bar graph. But I then need to manipulate the data table to add an extra line. The source will be a pivot table so I would rather not do that. Also, if I use a stacked bar, then my low and high are added together. Not what I want. I could subtract the low from the high in the data table, but again, I would rather not manipulate the data to get the graph right.
Any suggestions?

Graph comments in a graph like a label?

I have come across this several times and I was wondering if it is possible at all.
Let's say I have 3 columns, one with numerical values, one with time values and a third column with text (1-3 words). I then create a graph with the numerical values (y axis) and the time (x axis). When I then hover over the individual data points on the graph it shows me their numerical values. Is there a way to also show the text associated with that value?
To put it in context, I am plotting noise values for a day and would love to hover over the graph, in particular the peaks and then have a text appear that tells me what the noise was related too, what noise source (e.g. airplane, truck etc).
Is this possible? I was thinking of maybe plotting a second axis for the comments and maybe just plot them all at the same y value but then I am still left with the question on how to display the text comment?
Any ideas?
Cheers
Sandra
Tushar Mehta has an add-in for that here
It has been tested for Excel 97 to 2002, which are all pretty old versions.
The charting engine has changed completely fromexcel-2007, and the menus have gone, so chances are that this tool may no longer work.
I have not seen anything like this done in more recent Excel versions. Probably because it is not an easy task to achieve.

Excel Chart doesn't keep format

I have a table (came from a pivot table) where I have formatted the column 4 cells to show 1 billion as 1. But when I select the table and insert a chart, I am getting my units in millions. So the 14.8 billion number for Mexico is showing up as 14,800 on the chart. Why might this be happening and how can I fix this? This is also making all my other bars negligibly small. Note that the first three columns are not in billions and are totally different things. Some are percentages, some are other small numbers.
Table:
Chart:
You need a secondary horizontal axis and some formatting on the Axes.
In Excel 2013
First change the Chart Type to Combo and select Clustered Bar for both sets of data, then Check
Secondary Axis for the Percentage Series.
Then set up the axis limits so they match, e.g.
Percentage: min -.5 max 2
Billions: min -5e9 max 20e9
Then set the percentage format on the source data to a custom Number format of "";(0)%;0%
Then set the Billions format as 0,,,;"";0
You will get something like this:
EDIT
Now that we have the general principles, we can apply them to your specific data.
I will also switch to Excel 2010 do show the different menus.
The data selection looks like this
Select the non-Billion series (plural!) and check the secondary axis
If the larger data is always positive then you can use custom formatting to clean up the axis
Align the primary and secondary axes so that the grid lines match on both
The end result is clean and readable.
Mixing percentages and numbers for the smaller numbers is not handled by this but I would suggest that that would be confusing anyway?
The simplest way to fix this might be to plot cells containing the billions values divided by 10^9 rather than to plot the billions themselves, though via a secondary axis may be possible.
Using Excel 2007. For the purple bars, the example on the left uses ColumnE values, on the right ColumnF values. E1 contains =F1/10^9 and F1 contains =14800000000:
It appears that there are 3 questions here: 1) "Why might this be happening", 2) "how can I fix this", and 3) something like "how can I plot data which lie on two widely differing ranges, and make them all reasonably visible anyway", even if there was no explicit question on this.
There are several ways to solve issue #2 about the units (e.g., billions) and numbers (e.g., 14.8 vs. 14,800.0) shown in the axis, each one with its own pros and cons:
Use Format Axis -> Axis Options -> Display units.
This might be the answer to your issue #1 as well, you might have the following selection: Display units -> Millions, and unchecked Show display units... Otherwise, I wouldn't know why you chart shows what it shows.
Use faked tick marks, as indicated in the (excellent) site of Jon Peltier
http://peltiertech.com/Excel/Charts/ArbitraryAxis.html
It gives detailed instructions on how to create tick marks on an axis with arbitrary labels (which may be text, numbers, etc.), which is more generic than what the OP wants here. In this particular case, the labels will be the desired numbers.
Create new cells containing data that would be plotted exactly the way you want.
As for your issue #3, I guess the only option is to have a Secondary Axis (see the answer by pnuts).
Thus, to come up with the best final chart for you might use a combination of one of the options I gave here and a secondary axis.

Multiple axis line chart in excel

I'm looking for a multiple axis line chart similar to the one in the image below, (which is a javascript chart made by amcharts).
Does excel have an option to draw charts line these? Note there are 3 Y axes, and 3 line charts allowing you to compare data.
Is it possible to get more than 3 data points, each with unique axis on one chart ?
It is possible to get both the primary and secondary axes on one side of the chart by designating the secondary axis for one of the series.
To get the primary axis on the right side with the secondary axis, you need to set to "High" the Axis Labels option in the Format Axis dialog box for the primary axis.
To get the secondary axis on the left side with the primary axis, you need to set to "Low" the Axis Labels option in the Format Axis dialog box for the secondary axis.
I know of no way to get a third set of axis labels on a single chart. You could fake in axis labels & ticks with text boxes and lines, but it would be hard to get everything aligned correctly.
The more feasible route is that suggested by zx8754: Create a second chart, turning off titles, left axes, etc. and lay it over the first chart. See my very crude mockup which hasn't been fine-tuned yet.
The picture you showd in the question is actually a chart made using JavaScript. It is actually very easy to plot multi-axis chart using JavaScript with the help of 3rd party libraries like HighChart.js or D3.js. Here I propose to use the Funfun Excel add-in which allows you to use JavaScript directly in Excel so you could plot chart like you've showed easily in Excel. Here I made an example using Funfun in Excel.
You could see in this chart you have one axis of Rainfall at the left side while two axis of Temperature and Sea-pressure level at the right side. This is also a combination of line chart and bar chart for different datasets. In this example, with the help of the Funfun add-in, I used HighChart.js to plot this chart.
Funfun also has an online editor in which you could test your JavaScript code with you data. You could check the detailed code of this example on the link below.
https://www.funfun.io/1/#/edit/5a43b416b848f771fbcdee2c
Edit: The content on the previous link has been changed so I posted a
new link here. The link below is the original link
https://www.funfun.io/1/#/edit/5a55dc978dfd67466879eb24
If you are satisfied with the result you achieved in the online editor, you could easily load the result into you Excel using the URL above. Of couse first you need to insert the Funfun add-in from Insert - My add-ins. Here are some screenshots showing how you could do this.
Disclosure: I'm a developer of Funfun
There is a way of displaying 3 Y axis see here.
Excel supports Secondary Axis, i.e. only 2 Y axis. Other way would be to chart the 3rd one separately, and overlay on top of the main chart.
An alternative is to normalize the data. Below are three sets of data with widely varying ranges. In the top chart you can see the variation in one series clearly, in another not so clearly, and the third not at all.
In the second range, I have adjusted the series names to include the data range, using this formula in cell C15 and copying it to D15:E15
=C2&" ("&MIN(C3:C9)&" to "&MAX(C3:C9)&")"
I have normalized the values in the data range using this formula in C15 and copying it to the entire range C16:E22
=100*(C3-MIN(C$3:C$9))/(MAX(C$3:C$9)-MIN(C$3:C$9))
In the second chart, you can see a pattern: all series have a low in January, rising to a high in March, and dropping to medium-low value in June or July.
You can modify the normalizing formula however you need:
=100*C3/MAX(C$3:C$9)
=C3/MAX(C$3:C$9)
=(C3-AVERAGE(C$3:C$9))/STDEV(C$3:C$9)
etc.
Taking the answer above as guidance;
I made an extra graph for "hours worked by month", then copy/special-pasted it as a 'linked picture' for use under my other graphs. in other words, I copy pasted my existing graphs over the linked picture made from my new graph with the new axis.. And because it is a linked picture it always updates.
Make it easy on yourself though, make sure you copy an existing graph to build your 'picture' graph - then delete the series or change the data source to what you need as an extra axis. That way you won't have to mess around resizing.
The results were not too bad considering what I wanted to achieve; basically a list of incident frequency bar graph, with a performance tread line, and then a solid 'backdrop' of hours worked.
Thanks to the guy above for the idea!
Best and Free ( maybe only) solution for this is google sheets.
i don't know whether it plots as u expected or not but certainly you can draw multiple axes.
Regards
keerthan

how to create percentage bar chart in excel, similar to "100% stacked column" but with one variable against total value

I thought over a lot for this case, I need to plot a series as percentage value of another series.
e.g, series A is the capacity and B is the usage. I want a percentage plot of B on A. Initially I did this by creating a 100% stack chart with series B vs (A-B). I computed (A-B) on a separate column and used that as a series for this purpose. So far so good.
But now I want to generate multiple charts like this (say 12 different graphs for 12 months' usage). I have 12 columns of usage data and one column of fixed capacity data.
Is there a way to auto-generate this chart without having to create 12 intermediate columns with formula. It seems logical that Excel should have a chart type for representing A on B, just as they have one for A,B on A+B.
Sorry if I am too lengthy or confusing in my description. I did my best here to explain.
Actually I am trying to do the same thing I figured it out. If you have Excel 2007 (not sure if this feature is available in older versions). Select all 3 colums, 1 with the names of your variables, total count, and subtotal of what you are counting. Select column chart. Once the chart is created, right click to format the data series. Under series options there is a slidebar for series overlap, change this value to 100% and wahla, the the 2nd series becomes a percent of the total. Hope this helps!
Excel has common chart types, but even Microsoft doesn't have the resources to provide every possible combination of charting styles. And users are confused enough with the currently available styles.
Excel charts plot the data that they are given. If you need to plot A as a percentage of B, you will need to compute the percentage in a range, and plot this range.
The way I would do this is not to modify the ranges on the worksheet at all.
Write a new function that creates the modified range data you need so that you can return this and use it inside of ApplyTemplate method when creating the chart. The only downside to this is you would need to run a macro/vsto ribbon button to update the chart. as opposed to getting that behaviour for free with a worksheet bound approach.

Resources