Using a calculated field as a variable in QuickSight - amazon-quicksight

I have the following calculated field, which is called “calculated_value”:
sum({column_1})/sum({column_2})-1
I want to use it in the following,second, calculated field:
sum(ifelse(isNotNull(column_3), column_3, column_4 + (column_4 * calculated_value))
The first calculation works fine. The second one, however, raises a “nesting of aggregate functions not allowed” error.
How can I use the “calculated_value” in another calculation? All I want to do is store a value as a variable and use it in a calculation.
Thanks for the help.

Related

Is it possible to restrict values for a column in informatica

is it possible to restrict what values are allowed for a column in informatica. For eg, there is a column called Item_number, for which I want values to be in range of 1 to 10, is it possible to implement that, if so which transformation I can use for that?
You need to use FILTER transformation. In properties you can mention -
Item_number >=1 AND Item_number <=10
You can try using a lookup transformation in your mapping and that lookup can be a flat file or table depending on your requirement.
Keep the valid values in that lookup file/table and verify the input data for that column.
If lookup returns a value, the data is valid; else incorrect data in case null is returned.
If you want to restrict the data in your column without removing any rows, use a simple function combination:
IIF(in_val>10, 10, IIF(in_val<1, 1, in_val))
Check if that works fine with your scenario - come back if you need further help.

Tableau - Fixed calculated field depending on date filter

I'm new to Tableau. I am trying to make an inventory report which tells the user how much of certain product he/she should buy in advance.
Depending on the amount of days selected on the filter, the difference in days of the complete period should be calculated. For example: If the filtered dates are from 1/03/2021 to 09/03/2021, the result should be equal to 9. The formula I used is the following: date_difference = DATEDIFF("day",MIN(DATE([Fecha])), MAX(DATE([Fecha]))) + 1
The problem comes when I try to use the value given by such date filter. My next calculation should be:
calc = Quantity Inventory / (Units sold / date_difference). Both Quantity Inventory and Units sold are calculated fields in which I have no problem. However, instead of having a fixed value of 9, date_difference changes as shown in the image, giving me incorrect results for the desired calculation.
How can I make sure that the calculated field date_difference has the value of 9 on all rows?. Actually, if I add date_difference field by itself in a different Page it does show the proper value. The problem occurs when calculating calc and trying to add it to the table.
Note: Remember that the value of date_difference will change, depending on the range of time selected on the date filter
Thanks a lot in advance.
Step-1 Use this calculation for date_difference instead
DATEDIFF('day', {min(DATE([Fecha]))}, {max(DATE([Fecha]))}) +1
Step-2 Add Fecha filter to context, by right clicking it in filters shelf.
This will solve your problem. See the GIF

Is it possible to have a constant value in a calculated field in QuickSight?

In QuickSight, when you want to define a constant value to reuse it in visualizations later, you can try to set it as:
Calculated field: goalFor2020
Formula: 20000
But right now it doesn't allow you to put just a number in the formula.
Is there any way to do achieve having just a number in the formula of a calculated field?
The reason we need it is just to have a number that doesn't depend on any data, just manually defined by us.
Interesting, QuickSight lets me insert a number into a calculated field, just fine.
Since that isn't working for you, I'd recommend using a parameter with a default value. For example,
Parameters essentially has the same "rights" as a calculated field (it can be used in visuals, other calculated fields, etc...). It can also be passed via query parameters which may or may not be a feature that you'd find useful.
Another cool benefit of using parameters is that, if you're embedding QuickSight, you could retrieve this value dynamically and pass it to the dashboard. Then if you wanted to, say, generalize your for different yearly goals, the goal could be passed and dynamic (rather than hard-coded in a calculated field).
We could achieve it with a trick, just apply some function that returns a number to one of your columns, and make it 0, then add your constant number:
Calculated field: goalFor2020
Formula: count(email) * 0 + 20000
It does the trick, but there might be a better way to do it.
I have tried something like this:
distinct_countIf({dimension},{dimension}='xxx')*
+distinct_countIf({dimension},{dimension}='xxx')*
just makes the discount_countif meet the requirement, so it will return to 1. And use 1* the number you want to hardcode. If the requirement does not meet, it will return 0 so it won't add up the number

Trying to return the maximum value of a filtered date column in Power BI

I have a table within Power BI that has a date field, and a value field. I am filtering on this date field, using a slicer, to sum all of the value data before the specified date. I would like to get this date value to use in a LOOKUPVALUE() elsewhere (to get a conversion rate).
Is there a way to accomplish this?
I have tried the DAX functions that return the values of a particular table/column with filters preserved but this never seems to work, and just returns the entire dataset, e.g. VALUES(), FILTERS(), ALLEXCEPT().
Any help would be greatly appreciated!
I found a solution using measures.
The DAX for future reference:
Filter Date = CALCULATE(MAX('Table'[Date]),ALLSELECTED('Table'))

Column not defined in current context

I'm trying something very simple in DAX:
[Balance] := 'Inventory'[Inventory Amount]*10
I get a "column does not exist in current context" error. What does this mean?
You are getting this error because it was expecting an aggregate. You are creating a calculated measure but referring to a row and it doesn't have context for this row. I'm not sure what you are trying to achieve. If you need to calculate things on a row level, you'll need to use a SUMX (or you need to create a calculated column that multiplies the Inventory Amount column by 10 and then SUM it. Otherwise, you can use SUM with just one calc.
If you just need to add all the inventory amounts on every row in the query context and then multiply by 10, you can do
Balance:= SUM('Inventory'[Inventory Amount])
If the number you multiple will not always be 10, I suggest putting that formula in a separate calculated column (let's call it 'Inventory[Factor]. Then create a calculation like:
Balance:= SUMX('Inventory', 'Inventory'[Inventory Amount] * 'Inventory'[Factor])
The difference between these two is that the SUM will do the aggregation first. The SUMX will do the row-level calculation first and then aggregate. Since I don't know what you are trying to do, I gave you both options. SUMX will probably be slower, so you probably want to avoid that.
Here is a relevant blog post on the subject. In general check out PowerPivotPro.com and DaxPatterns.com when trying to find your way through DAX.

Resources