Level: Beginners
All of the learning examples in my books Supercharge Power BI and Supercharge Excel are built on an Adventure Works database that has a single data table. But Power Pivot is a very capable tool for building reports that combine multiple data tables. Although it is very capable, the logic of how to combine multiple tables is different in Power Pivot than most Excel users will be familiar with. This post covers the correct way to do it.
The Classic Power Pivot Data Model
As you can see in the image below, the classic Power Pivot data model consists of 2 different types of tables – lookup tables (shown as #1 below) and data table(s) shown as 2.
The difference between these 2 types of tables is very important.
Lookup Tables
The lookup tables (also called dimension tables by BI professionals) always consist of 1 (and only 1) record for every item in the table. Eg.
- In the calendar lookup table, there is 1 row for every day – no duplicates. The uniquely identifying key is the date itself.
- In the customers lookup table, there is 1 row for every customer – no duplicates. The uniquely identifying key is the customer number.
And so on for the other lookup tables.
Data Tables
The data tables (also called fact tables) contain as many records as you like (or as exist in your data) – duplicates are fine. There is a “key” column that matches with each of the lookup tables. Eg there is a Sales[date] column in the sales table that matches to the Calendar[date] column, a Sales[Customer Key] column that matches to the Customers[Customer key] column and so on. Each date can have many sales, each customer can have many sales etc.
Joining the Data Tables to Lookup Tables
Data tables are always joined to the Lookup Tables not the other way around. The easiest way to think about this is to think how you would work with tables like this in Excel. If you had a table of sales by product code in Excel and you wanted to find out the product description, you would probably write a VLOOKUP in your sales table to go and fetch the product description from another table that contained the full list of products. This is one of the reasons I recommend you lay out your tables like I have shown in the image above. I call this the Collie Layout methodology as it was invented by Rob Collie. This layout makes no difference to the way the data model works, but laying it out in this way gives you a visual clue that the tables at the top are lookup tables (ie look up, VLOOKUP).
To join the tables (in the diagram view) you click and drag the common column from the data table to the lookup table (not the other way around). Note if you do it the other way around, Power Pivot will MOSTLY detect the error and flip the relationship for you. But in some instances this will not happen potentially giving you undesired and incorrect results. For this reason I recommend you create the joins the correct way as described above.
Every join in Power Pivot (Excel 2010, 2013) is of the type One to Many – there are no exceptions. The one side of the relationship has the arrow pointing to it, and the many side of the relationship has the circle.
Power BI Desktop/Excel 2016
Several things changed in the latest version of the Power Pivot engine that comes with Power BI Desktop and Excel 2016. In these newer versions, it is also possible to have one to one relationships. Just double click the relationship and then you can change the cardinality (shown as 1 below).
Note you can only change this if your data truly is 1 to 1. You can also force the data tables to filter the lookup tables (shown in 2 above). Finally, there are a number of visualisation improvements including the cardinality of the relationship is easier to understand. The highlighted relationship is currently 1 to many and has a 1 (shown #3 above) and a * (shown as #4 above). You can also now see an arrow (shown as #5) indicating the direction of the automatic filter propagation.
Now for that Second Data Table
When you bring a second data table into Power Pivot, it is common for people to think that they should join the new data table to the original data table, but this is wrong. The correct way to join a second data table to a data model is to treat the new data table exactly the same as the first data table.
- Make sure it has 1 column for every lookup table (lookup tables that are relevant anyway)
- Join the data table columns to each lookup table (that is relevant)
In the following example, I have imported a Stock on Hand (SOH) data table for Adventure Works. This table contains the stock counts completed in each branch at the end of each trading month.
A couple of things to note:
- I have placed the data table at the bottom, just like the other data table
- I have joined each of the “key” columns to the lookup tables. In this case there is a date column, ProductKey, TerritoryKey but no CustomerKey.
How to use the Model Inside Pivot Tables
Once you have your data model set up in this way, it is important that you always use your Lookup Table columns to filter your pivot tables. The 4 tables (highlighted below) are the lookup tables from above. You should only use columns from these tables in your Pivot Table Rows, Columns, Filters and Slicers. The filters always automatically propagate from the lookup tables to the data tables and hence doing it this way will ensure that BOTH of your data tables are filtered. Note of course that there is no join between the customer table and the SOH table.
If you don’t use the lookup tables, but instead you use (for example) the Territory Key from one of the data tables, it will correctly filter that 1 data table but it will not filter the second data table. This is because the natural filter propagation in Power Pivot ALWAYS flows from the 1 side of the relationship to the many side of the relationship. Filters cannot automatically flow in the other direction (it can be done with more advanced DAX, but it is not automatic).
This is the second reason I recommend using the Collie Layout Methodology for your data models. As you can “see” in the image above, the filter propagation always flows “down hill”. Filters do not automatically flow “up hill”. Laying out your tables this way gives you a second visual cue that “filters only flow downhill”.
A Working Pivot Table over Multiple Data Tables
Here is an example of a working pivot table over multiple data tables.
Note that the Calendar Year filter (shown as #1 above) and the row labels (Product Sub Category #2) both come from the lookup tables. The measure [Total Sales] (#3) comes from the Sales data table = SUM(Sales[Extended Amount] while the measure [Total SOH] (#4) comes from the SOH data table. The formula for Total SOH is a bit complex for reasons outside the scope of this post, but here it is in case you are interested.
Total SOH =
CALCULATE(
SUM(SOH[SOH]),
LASTNONBLANK(Calendar[Date], CALCULATE(COUNTROWS(SOH)))
)
Only Create Pivot Tables that make Sense
In this data model, you will recall that there is no join between the SOH data table and the Customer Table. From a business sense this makes perfect sense – the stock is counted at a store level and there is no relevance to customers. However the implication is that it will make no sense to create a pivot table that contains customers in a filter and also SOH in values. If you do this, the SOH numbers will not make any sense. The message is that you should only create pivot tables that make sense based on your data model.



Hiya, I’m really glad I’ve found this information. Nowadays bloggers publish only about gossips and net and this is really frustrating. A good web site with exciting content, that’s what I need. Thank you for keeping this website, I’ll be visiting it. Do you do newsletters? Cant find it.
I have not checked in here for a while because I thought it was getting boring, but the last few posts are good quality so I guess I?¦ll add you back to my daily bloglist. You deserve it my friend 🙂
Heya i’m for the first time here. I found this board and I find It really helpful & it helped me out a lot. I am hoping to give one thing again and aid others such as you helped me.
As I website possessor I conceive the subject material here is very great, regards for your efforts.
hey there and thank you on your information – I have certainly picked up something new from right here. I did on the other hand experience some technical issues using this web site, as I experienced to reload the site lots of occasions previous to I may just get it to load correctly. I have been wondering in case your web host is OK? Now not that I’m complaining, however sluggish loading circumstances occasions will very frequently have an effect on your placement in google and can harm your high quality score if advertising and ***********|advertising|advertising|advertising and *********** with Adwords. Anyway I’m adding this RSS to my email and can glance out for a lot more of your respective intriguing content. Ensure that you replace this once more very soon..
The next time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read, but I actually thought youd have something interesting to say. All I hear is a bunch of whining about something that you could fix if you werent too busy looking for attention.
Hello! I just would like to give a huge thumbs up for the great info you have here on this post. I will be coming back to your blog for more soon.
Can I just say what a relief to find someone who actually knows what theyre talking about on the internet. You definitely know how to bring an issue to light and make it important. More people need to read this and understand this side of the story. I cant believe youre not more popular because you definitely have the gift.
Spot on with this write-up, I really assume this website wants much more consideration. I’ll most likely be again to learn way more, thanks for that info.
Satire is the laughter that comes from the gap between what is said and what is meant. — Toni @ Satire.info
A satirist is a court jester with a internet connection and a much wider audience. — Toni @ Satire.info
Undeniably believe that which you said. Your favorite reason seemed to be on the net the easiest thing to be aware of. I say to you, I definitely get irked while people think about worries that they plainly don’t know about. You managed to hit the nail upon the top and also defined out the whole thing without having side effect , people can take a signal. Will probably be back to get more. Thanks
Very good written post. It will be supportive to anybody who utilizes it, as well as yours truly :). Keep doing what you are doing – can’r wait to read more posts.
I savor, result in I found exactly what I used to be having a look for. You’ve ended my 4 day long hunt! God Bless you man. Have a great day. Bye
F*ckin¦ amazing things here. I¦m very satisfied to see your post. Thank you so much and i’m looking ahead to contact you. Will you please drop me a mail?
Hello there! Do you use Twitter? I’d like to follow you if that would be okay. I’m absolutely enjoying your blog and look forward to new updates.
hello there and thank you for your info – I have certainly picked up something new from right here. I did however expertise several technical points using this web site, since I experienced to reload the site lots of times previous to I could get it to load properly. I had been wondering if your hosting is OK? Not that I’m complaining, but slow loading instances times will very frequently affect your placement in google and could damage your quality score if advertising and marketing with Adwords. Well I am adding this RSS to my email and can look out for much more of your respective intriguing content. Make sure you update this again very soon..
Enjoyed looking at this, very good stuff, regards. “Management is nothing more than motivating other people.” by Lee Iacocca.
Please let me know if you’re looking for a article writer for your weblog. You have some really great articles and I think I would be a good asset. If you ever want to take some of the load off, I’d really like to write some material for your blog in exchange for a link back to mine. Please send me an email if interested. Kudos!
This actually answered my downside, thank you!
You really make it seem so easy with your presentation but I find this matter to be really something which I think I would never understand. It seems too complex and extremely broad for me. I am looking forward for your next post, I will try to get the hang of it!
I¦ve recently started a site, the information you offer on this web site has helped me tremendously. Thank you for all of your time & work.
F*ckin’ tremendous issues here. I’m very happy to see your post. Thank you a lot and i am looking forward to contact you. Will you kindly drop me a e-mail?
Thank you for sharing with us, I think this website truly stands out : D.
Hmm it seems like your website ate my first comment (it was super long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog blogger but I’m still new to the whole thing. Do you have any suggestions for inexperienced blog writers? I’d genuinely appreciate it.
I’ve been surfing online greater than three hours today, but I never discovered any fascinating article like yours. It is pretty value sufficient for me. Personally, if all web owners and bloggers made just right content material as you probably did, the web will be much more useful than ever before.
I was looking through some of your posts on this website and I think this website is rattling instructive! Continue putting up.
I am not rattling fantastic with English but I come up this really easy to translate.
I went over this site and I conceive you have a lot of great information, saved to bookmarks (:.
Good – I should certainly pronounce, impressed with your web site. I had no trouble navigating through all tabs and related info ended up being truly easy to do to access. I recently found what I hoped for before you know it at all. Quite unusual. Is likely to appreciate it for those who add forums or something, web site theme . a tones way for your client to communicate. Nice task.
Sweet website , super design and style, real clean and utilise friendly.
you have a great blog here! would you like to make some invite posts on my blog?
It is in reality a nice and useful piece of information. I¦m satisfied that you just shared this useful information with us. Please stay us up to date like this. Thanks for sharing.
It’s appropriate time to make some plans for the future and it’s time to be happy. I have learn this submit and if I may I wish to counsel you some fascinating issues or suggestions. Maybe you could write next articles referring to this article. I wish to read even more issues approximately it!
I’m not that much of a online reader to be honest but your blogs really nice, keep it up! I’ll go ahead and bookmark your website to come back down the road. Cheers
Good dаy! Тhiѕ is myy first visit to your
blog! We агe a grouр of volunteers and starting а new project in a community in the same niche.
Your blog provided us beneficial іnformation to worҝ on. Yoou hаve done a extaordinary job!
Hеre іs mу pаge: Magic mushrooms
This is the gentle of literature I in fact appreciate. http://www.orlandogamers.org/forum/member.php?action=profile&uid=29944
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Superb site you have here but I was wanting to know if you knew of any discussion boards that cover the same topics talked about in this article? I’d really like to be a part of group where I can get comments from other experienced people that share the same interest. If you have any recommendations, please let me know. Thank you!
I visited a lot of website but I believe this one contains something extra in it in it
Absolutely indited written content, regards for information .
buy xenical generic – https://asacostat.com/ xenical 120mg without prescription
I don’t even know how I finished up here, however I believed this publish was great. I don’t realize who you might be but certainly you’re going to a well-known blogger if you aren’t already 😉 Cheers!
dapagliflozin 10mg cheap – dapagliflozin 10mg ca buy forxiga 10 mg without prescription
Those are yours alright! . We at least need to get these people stealing images to start blogging! They probably just did a image search and grabbed them. They look good though!
I couldn’t weather commenting. Adequately written! http://web.symbol.rs/forum/member.php?action=profile&uid=1170910
This is a keynote which is in to my callousness… Numberless thanks! Unerringly where can I notice the connection details for questions?
order methotrexate online
But wanna remark that you have a very decent website , I enjoy the design it really stands out.
More peace pieces like this would urge the web better. https://ondactone.com/spironolactone/
Awsome article and straight to the point. I am not sure if this is in fact the best place to ask but do you people have any thoughts on where to hire some professional writers? Thanks in advance 🙂
Nice post. I was checking continuously this blog and I’m impressed! Extremely helpful information specially the last part 🙂 I care for such info a lot. I was seeking this certain information for a very long time. Thank you and good luck.
As I web site possessor I believe the content matter here is rattling excellent , appreciate it for your efforts. You should keep it up forever! Good Luck.
More posts like this would add up to the online time more useful. https://aranitidine.com/fr/clenbuterol/
This is the stripe of serenity I enjoy reading. https://ursxdol.com/amoxicillin-antibiotic/
More posts like this would add up to the online space more useful. site
I am in truth delighted to gleam at this blog posts which consists of tons of profitable facts, thanks representing providing such data. buy zithromax paypal
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.
cheap online viagra no prescription – https://strongvpls.com/# 50 mg of viagra
ranitidine where to buy – https://aranitidine.com/# order zantac 150mg without prescription
tadalafil 40 mg with dapoxetine 60 mg – ciltad gn cialis 20 mg duration
order cenforce 50mg generic – https://cenforcers.com/# purchase cenforce generic
forcan online buy – buy fluconazole 200mg buy diflucan tablets
amoxil canada – combamoxi.com amoxicillin drug
Your article helped me a lot, is there any more related content? Thanks!
Very efficiently written information. It will be helpful to anyone who utilizes it, including yours truly :). Keep up the good work – i will definitely read more posts.
We are a group of volunteers and opening a new scheme in our community. Your site provided us with valuable information to work on. You’ve done a formidable job and our entire community will be thankful to you.
fabuloso este conteúdo. Gostei muito. Aproveitem e vejam este site. informações, novidades e muito mais. Não deixem de acessar para aprender mais. Obrigado a todos e até a próxima. 🙂
Este site é realmente demais. Sempre que consigo acessar eu encontro coisas boas Você também pode acessar o nosso site e descobrir mais detalhes! Conteúdo exclusivo. Venha descobrir mais agora! 🙂
Great post. I was checking constantly this blog and I’m impressed! Extremely useful information specifically the last part 🙂 I care for such info a lot. I was looking for this certain info for a long time. Thank you and good luck.
whoah this weblog is great i like studying your posts. Stay up the good paintings! You know, a lot of individuals are hunting around for this info, you could help them greatly.
Virtually all of what you mention happens to be astonishingly accurate and that makes me wonder the reason why I had not looked at this with this light previously. This article really did switch the light on for me as far as this subject matter goes. Nonetheless there is just one point I am not really too comfortable with so whilst I try to reconcile that with the actual core theme of the point, let me see exactly what the rest of the readers have to point out.Very well done.
I have read some just right stuff here. Certainly worth bookmarking for revisiting. I surprise how a lot effort you place to make one of these magnificent informative site.
Hello there, just became alert to your blog through Google, and found that it is really informative. I am gonna watch out for brussels. I’ll appreciate if you continue this in future. Many people will be benefited from your writing. Cheers!
I have recently started a site, the info you provide on this site has helped me tremendously. Thank you for all of your time & work.
Well I sincerely liked reading it. This subject offered by you is very practical for accurate planning.
Hi Matt,
if you have multiple data tables containing sales data (for example one table for each customer) and you want to show total sales for all customers (and other KPIs) without appending the data tables in a single one. How would you do that? If possible, I would like to avoid to append tables in order to minimize memory used and processing times.
Thank you!
Giovanni
If you want to minimise memory used and processing times, then you should definitely append the tables. Appending is better than loading 2 tables.
I’m not sure what is missing and I’m not sure what you mean by “duplicate data”. It sounds like you have done it right. Key points are that you should only slice/dice (on rows, slicers) from the lookup table (never from the data tables), and you need a measure or implicit measure from the data tables.
Matt, this post makes sense to me, as it does in your book “Supercharge Excel” which I am enjoying … however, I have a Power Pivot Data Model with multiple (parallel) data tables that is generating duplicate records (employees) when shown in a PivotTable. My three data tables are all joined in a similar way to one lookup table (employee master list) but they are being treated as completely separate data. What am I still missing?
Hi Matt
So you have an explanation of the Total SOH Measure in another post.
I would be interested in knowing what the second calculate is doing.
Cheers
Chris
Very good explanation, thanks!
Gran articulo te lo traduzco al español.
El modelo clásico de datos en Power Pivot.
Como se puede ver en la siguiente imagen, el modelo de datos clásico de Power Pivot consiste en 2 diferentes tipos de tablas – las tablas de dimensiones (que se muestra como [1] abajo) y la tabla de hechos de datos mostrados como [2].
La diferencia entre estos 2 tipos de tablas es muy importante.
Tablas de dimensiones
Las tablas de dimensiones (también llamadas tablas de medidas por parte de profesionales de BI) consisten siempre en 1 (y sólo 1) registro de cada elemento de la tabla. Por ejemplo.
o En la tabla de búsqueda de calendario, hay 1 fila para cada día – no hay duplicados. La clave de identificación única es la fecha en sí.
o En la tabla de búsqueda de clientes, hay 1 fila para cada cliente – no hay duplicados. La clave de identificación única es el número de cliente.
Y así sucesivamente para las otras tablas de búsqueda.
Tablas de hechos
Las tablas de hechos contienen tantos registros como desees (o como las que existen en los datos) – duplicados o no. Hay una columna “clave” que coincide con cada una de las tablas de dimensiones. Por ejemplo, hay una columna de ventas [fecha] en la tabla de ventas que corresponda a la columna de Calendario [fecha], algún punto de venta [Clave del cliente] columna que coincide con los clientes [clave del cliente] columna y así sucesivamente. Cada día puede tener muchas ventas, cada cliente puede tener muchas ventas, etc.
Unión las tablas de hechos con las tablas de dimensiones
Las tablas de hechos están siempre unidas a las tablas de dimensiones y no al revés.
La forma más fácil de pensar en esto es pensar en cómo le gustaría trabajar con tablas de este tipo en Excel. Si tienes una tabla de ventas por código de producto en Excel y quieres saber la descripción del producto, usarás BUSCARV en la tabla de ventas para ir a buscar a la descripción del producto de otra tabla que contenía la lista completa de los productos. Esta es una de las razones por las que es recomendable usar la configuración de tablas mostrada. Yo llamo a esto la metodología de diseño Collie, ya que fue inventado por Rob Collie. Esta disposición no hace ninguna referencia a la forma en que funciona el modelo de datos, sino que da una pista visual de que las tablas de la parte superior son Tablas de dimensiones.
Para unir las tablas (en la vista de diagrama) se hace clic y se arrastra la columna común de la tabla de hechos hacia la tabla de dimensiones (no al revés). Ten en cuenta que si lo haces al revés, Power Pivot detectará generalmente el error y devolverá la relación hacia a ti. Sin embargo, en algunos casos, esto no va a ocurrir produciendo resultados no deseados e incorrectas. Por esta razón es recomendable crear las uniones de la forma correcta como se ha descrito anteriormente.
Todas las relaciones en Power Pivot son del tipo Uno a Muchos SIN EXCEPCIONES
El lado de UNO de la relación tiene la flecha apuntando hacia él, y el lado MUCHOS de la relación tiene el círculo.
Power BI desktop / Excel 2016
Algunas cosas cambian en la última versión de Power Pivot que viene con Power BI Desktop y Excel 2016.
En estas nuevas versiones, también es posible tener relaciones uno a uno. Basta con hacer doble clic en la relación y entonces se puede cambiar la cardinalidad de la relación (como se muestra a continuación).
Nota: Sólo se puede cambiar esto si la relación entre sus datos es de 1 a 1.
También se puede obligar a las tablas de hechos a filtrar las tablas de dimensiones (como se muestra en el punto 2).
Finalmente, hay una serie de mejoras de visualización incluyendo la cardinalidad de la relación, siendo así ahora más fácil de entender.
La relación resaltada en rojo está actualmente en (1 es a muchos) y tiene un 1 en el [3] y un * en el [4]. Ahora también puede ver una flecha [5] que indica la dirección de la propagación de filtro automático.
Ahora, veremos una segunda tabla de hechos.
Cuando traemos una segunda tabla de hechos en Power Pivot, podríamos pensar que debe unirse la nueva tabla de hechos a la tabla de hechos original, pero esto es incorrecto.
La forma correcta de añadir una segunda tabla de hechos a un modelo de datos es realizar un tratamiento de la nueva tabla de hechos exactamente igual que a la primera tabla de hechos.
o Asegúrate de que tiene 1 columna para cada tabla de dimensiones que sea relevante.
o Une las columnas de las tablas de hechos para cada tabla de dimensiones que sea relevante.
En el siguiente ejemplo, he importado un (SOH) de la tabla de hechos en la mano de Adventure Works.
Esta tabla contiene los recuentos de existencias realizados en cada marca al final de cada mes comercial.
Un par de cosas a tener en cuenta:
o He puesto la tabla de hechos en la parte inferior, al igual que la otra tabla de hechos.
o He unido cada una de las columnas “clave” a las tablas de dimensiones correspondientes. En este caso son columna de fecha, ProductKey, TerritoryKey pero no CustomerKey.
Cómo utilizar el Modelo Dentro Tablas dinámicas.
Una vez que haya establecido el modelo de datos de esta manera, es importante que siempre utilice las columnas de búsqueda en la tabla para filtrar las tablas pivote.
Las 4 tablas (resaltadas a continuación) son las tablas de dimensiones de arriba.
Sólo debe utilizar columnas de estas tablas en sus filas de las tablas dinámicas, columnas, filtros y segmentación de datos.
Los filtros siempre se propagan automáticamente a partir de las tablas de dimensiones hacia las tablas de hechos y por lo tanto haciéndolo de esta manera te asegurarás de que ambas tablas de hechos se filtran.
Nota por supuesto no hay unión entre la tabla de clientes y la tabla de SOH.
Si en vez de utilizar la tabla de dimensiones, utilizas la clave de territorio de una de las tablas de hechos, filtraras correctamente la tabla de hechos 1 pero no filtrarás la segunda tabla de hechos.
Esto se debe a que la propagación natural del filtro en Power Pivot fluye siempre desde el lado [1] de la relación hacia el lado [muchos] de la relación. Los filtros no pueden fluir automáticamente en otra dirección (aunque se puede hacer con DAX avanzado).
Esta es la segunda razón por la que recomendamos el uso de la metodología de diseño Collie para sus modelos de datos.
Como se puede “ver” en la imagen de arriba, la propagación del filtro siempre fluye “cuesta abajo”.
Los filtros no fluyen de forma automática “cuesta arriba”.
Este trazado de las tablas da una segunda indicación visual de que “filtros sólo fluyen cuesta abajo”.
Una tabla dinámica sobre múltiples Tablas de hechos
Este es un ejemplo de una tabla dinámica que trabaja a través de múltiples tablas de hechos.
Ten en cuenta que el filtro por año calendario (que se muestra como [1] arriba) y las etiquetas de las filas (Sub Categoría Producto [2]), vienen de las tablas de dimensiones.
La medida [Total de ventas] ([3]) proviene de los datos de la tabla de ventas = SUM (Sales [Extended Amount] mientras que la medida [Total SOH] (#4]) viene de la tabla de hechos SOH. La fórmula para Total SOH es un poco compleja por razones fuera del alcance de este artículo, pero aquí está por si tienes interés.
Total SOH =
CALCULATE (
SUM ( SOH[SOH] ),
LASTNONBLANK ( Calendar[Date], CALCULATE ( COUNTROWS ( SOH ) ) )
)
Crea solo tablas dinámicas que tengan sentido
De este modelo de datos, recuerda que no hay combinación entre la tabla de hechos SOH y la tabla de clientes.
Desde el punto de vista de los negocios esto tiene sentido – la acción se encuentra en un nivel de tienda y no hay ninguna relevancia a los clientes.
Sin embargo, esta implicación no tendrá sentido si creas una tabla dinámica que contenga los clientes en un filtro y también SOH en los valores. Si haces esto, los números de SOH no tienen ningún sentido.
El mensaje es que sólo se deben crear tablas dinámicas que sentido basándose en el modelo de datos.
A clear and concise explanation of some fundamental requirements for an exiting journey into the realm of Power Pivot/BI.
Thanks for the insight.