Data studio: Calculate a metric if a non aggregate value is XYZ - google-data-studio

So I have the following data
Channel
Spend
LinkedIn
100
Google
100
Facebook
110
Now I want to add a calculated field where final spends are calculated with 10% added to all channels except LinkedIn. So when I add the following calculated field
Final Spends
CASE
WHEN Channel = "LinkedIn" THEN Sum(Spend)+(Sum(Spend)*.10)
ELSE Sum(Spend)
But the above is throwing me following error
Sorry, calculated fields can't mix metrics (aggregated values) and dimensions (non-aggregated values)
Please let me know what to do

Related

Google Data Studio convert metric to dimension not working

I have imported my GA4 data into Google Data Studio and am trying to see how many giftcards have been sold by their value.
The item revenue metric in GA4 is equal to the giftcard value (i.e. revenue = $200 therefore $200 giftcard was sold).
I want to breakdown sales by giftcard value like so:
Giftcard (revenue)
Count
$200
4
$250
3
$300
6
To do this, I need to set a copy of item revenue as a dimension rather than a metric.
In Google Data Studio, I can create a calculated field with the following formula that should convert the item revenue into text:
CAST(Item Revenue AS TEXT)
The problem I'm having is that while the formula sets the field type as text, it is still regarded by GDS as a metric and can't be used as a dimension.
Even when I try to add text, GDS still recognises the field as a number:
CONCAT(CAST(Item Revenue AS TEXT), " giftcard")
To use a metric as a dimension you can make a combination of data. When defining the graphic element (table, for example) and the respective data source, just create a data combination, but do not combine the data with any other source and just define the combination with the initial data itself. So you will have the same data structure only through a combined structure.
When making a combination of data, data studio recognizes all calculated fields (metrics) as dimensions. Thus, it is possible to make the conversion.

Google Data Studio with BigQuery Data Source Issue in Calculated Fields and Aggregation

I have a Google Data Studio dashboard that loads really slowly since it's using Google Sheets as a Data Source. I migrated the same data to BigQuery then used it as my new Data Source however, I came across an issue:
When creating a calculated field, the new calculated field is not tagged as Auto in the Default Aggregation I still have to select Sum as a Default Aggregation. This causes problems in my report. Also, it's not Blue, where normal fields are shown as green, and calculated fields are shown as Blue.
When I was using Google Sheets, I could do direct computations in the calculated fields.
Example:
Handle Time = Talk Time / Number of calls
I just create a calculated field called Handle Time, then put the formula Talk Time / Number of calls
Now, I need to create 3 separate Calculated Fields:
Calculated Field 1: SUM(Talk Time)
Calculated Field 2: SUM(Number of calls)
Calculated Field 3: Calculated Field 1 / Calculated Field 2
This is even though I already tagged them as Sum in the Default Aggregation. Can anyone help me understand what I'm doing wrong?
Solution:
A single calculated field will do the trick; the aggregation of each respective field needs to be stated explicitly in the calculated field:
SUM(Talk Time) / SUM(Number of calls)
Why the Change?
To elaborate, the change was part of the Data Modeling update on 31st October 2020; one of the benefits of explicitly stating the aggregation is that it offers greater flexibility with the ability to aggregate fields as required when creating a calculated field, for example, something like:
MAX(Talk Time) - MIN(Talk Time) / COUNT(Handle Time) * AVG(Handle Time) / COUNT_DISTINCT(Text_Field1) * COUNT(Text_Field2)
Speed
Regarding speed, where the Data Set is large and static (daily updates are fine and real time data is not required), then a Data Extract would be a good option.
Dimensions are shown as green, metrics are shown as blue. Data imported from other sources, particularly from Google sheets tend to show metrics as green but when you add them to a chart or table they get recognised as metrics and change to blue.

Calculating dynamic pricing on Google Sheets

I have imported data from a trading exchange listing sellers of a particular cryptocurrency.
From this data, I want to create dynamic pricing to display an average cost on an order based on given order size.
I will give an example of what I am looking for:
Example dataset
Within this example, we would be purchasing the cryptocurrency 'SINS'. As per the data showed on this table, if 29.06 SINS was purchased, that would fill the first order, and the total BTC paid would be 0.00459 BTC.
If an order was placed for 145 SINS, it would fill the orders up to row 12 and partially fill the order in row 13. By calculating that manually, I know that would cost 0.02293365 BTC (calculated using col D) at an average price of 0.00015816 per SIN.
What I would like to achieve is if a number is entered in a cell, it confirms the average price of an order based on the number entered and the orders imported from the trading exchange.
=INDIRECT(ADDRESS(MATCH(VLOOKUP(O2,F2:F,1),F:F,0),7,4))+(
INDIRECT(ADDRESS(MATCH(VLOOKUP(O2,F2:F,1),F:F,0)+1,4,4))*(O2-
INDIRECT(ADDRESS(MATCH(VLOOKUP(O2,F2:F,1),F:F,0),6,4)))/
INDIRECT(ADDRESS(MATCH(VLOOKUP(O2,F2:F,1),F:F,0)+1,3,4)))
spreadsheet demo

Excel - Getting #VALUE! for only one instance. All others work well

Background:
A client of mine rents a building to different companies, and takes readings of both the Electricity meters and Water meters, so as to bill the companies according to their usage.
Invoices are then created, specifying the start and end month of the invoice, so as to retrieve the readings from the appropriate columns of the selected months.
I have the following formula in Excel:
{=IFERROR(INDEX(Invoice_Sheet_Readings, SMALL(IF(Invoice_Sheet_Readings=$D$63, ROW(Invoice_Sheet_Readings)-25),ROWS($G$68:G68)), MATCH($D$63,$F35:$CC35,0)+1), "")}
Where:
Invoice_Sheet_Readings is a range of cells from where the data is checked and retrieved (Grey area in the images)
$D$63 is the Month & Year (selected from a dropdown list - eg. December 2017) - Darker green area in the images
What this does is - it compares the Month and Year (eg. December 2017) to its equivalent in the range (grey cells), and populates the table (green areas) to be used in invoice calculations. The green areas are where I have this formula.
The problem:
Everything works well, except for ONE instance.
So, when Electricity meters are selected, ALL data retrieval works well for every tenant.
When Water meters are selected, data retrieval works well for all tenants EXCEPT ONE.
When I evaluate the formula for those tenants where all works well, it gets the row number, then matches and retrieves data from the appropriate column.
In the instance of the tenant where the problem lies, while evaluating it shows as though it's going to match the row numbers, then give a #VALUE! error.
I'm totally baffled. Can't figure it out at all.
Updated: There is one specific line (highlighted in image 9) that is the culprit. If I assign it to another tenant the new tenant's Water reading calculations show the same error, while the original tenant's calculations now work well.
Image 1: Data of Electricity meters (grey areas) - no problems here
Image 2: Data of Water meters where data retrieval from the formula works
The repeated months in the columns are for comparing to the month that is selected from a dropdown list (darker green areas in following images)
Image 4: Above formula working well
Image 5: Formula evaluation where formula is working well. The '1' shown between the green dots refers to the row the data has been found in.
Image 6: The only instance where the formula is not working, and thus no data has been retrieved.
Image 7: The error shown in the formula evaluation. This is only for the Water readings of ONE tenant. The same tenant's electricity readings work fine.
Image 8: Formula evaluation showing the beginning of the formula and the end of the formula one step before giving the VALUE error. The other cases evaluate in the same way without errors.
Image 9: (Updated) The line that is the culprit - but I still don't know why.

Google Data Studio date aggregation - average number of daily users over time

This should be simple so I think I am missing it. I have a simple line chart that shows Users per day over 28 days (X axis is date, Y axis is number of users). I am using hard-coded 28 days here just to get it to work.
I want to add a scorecard for average daily users over the 28 day time frame. I tried to use a calculated field AVG(Users) but this shows an error for re-aggregating an aggregated value. Then I tried Users/28, but the result oddly is the value of Users for today. The division seems to be completely ignored.
What is the best way to show average number of daily users over a time frame? Average daily users over 10 days, 20 day, etc.
Try to create a new metric that counts the dates eg
Count of Date = COUNT(Date) or
Count of Date = COUNT_DISTINCT(Date) in case you have duplicated dates
Then create another metric for average users
Users AVG = (Users / Count of Date)
The average depends on the timeframe you have selected. If you are selecting the last 28 days the average is for those 28 days (dates), if you filter 20 days the average is for those 20 days etc.
Hope that helps.
I have been able to do this in an extremely crude and ugly manner using Google Sheets as a means to do the calculation and serve as a data source for Data studio.
This may be useful for other people trying to do the same thing. This assumes you know how to work with GA data in Sheets and are starting with a Report Configuration. There must be a better way.
Example for Average Number of Daily Users over the last 7 days:
Edit the Report Configuration fields:
Report Name: create one report per day, in this case 7 reports. Name them (for example) Users-1 through Users-7. These are your Row 2 values. You'll have 7 columns, with the first report name in column B.
Start Date and End Date: use TODAY()-X where X is the number of days previous to define the start and end dates for each report. Each report will contain the user count for one day. Report Users-1 will use TODAY()-1 for start and end, etc.
Metrics: enter the metrics e.g. ga:users and ga:new users
Create the reports
Use 'Run reports' to have the result sheets created and populated.
Create a sheet for an interim data set you will use as the basis for the average calculation. The first column is date, the remaining columns are for the metrics, in this case Users and New Users.
Populate the interim data set with the dates and values. You will reference the Report Configuration to get the dates, and you will pull the metrics from each of the individual reports. At this stage you have a sheet with date in first columns and values in subsequent columns with a row for each day's values. Be sure to use a header.
Finally, create a sheet that averages the values in the interim data set. This sheet will have a column for each metric, with one value per column. The one value is calculated from the series in the interim data set, for example =AVG(interim_sheet_reference:range) or any other calculation you'd like to do.
At last, you can use Data Studio to connect to this data source and use the values. For counts of users such as this example, you would use Sum as the aggregation field type when you are creating the data source.
It's super ugly but it works.

Resources