Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hi,
I have a messy file that i download every quarter. However, that download looks the same every quarter and I would like to upload that file in power bi and create a new table from the current table. In that file, there is a single cell with the name of the period, i want to extract that information into a column in the new table. I.e., the column looks like this:
In the new table, I want the period 2018 Q3 to be visible in the column. I tried to following DAX:
Period = SELECTCOLUMNS('2020Q1';"Period";CONTAINS(VALUES('2020Q1');'2020Q1'[Column3];"2020 Q1"))
Does anyone know the correct Dax expresion?
Solved! Go to Solution.
@bamba98 So, you want that in another table? Not as a column in the same table?
Ok, try this one:
Period =
VAR Tab =
FILTER(
ALL('Table'[Column1]),
CONTAINSSTRING('Table'[Column1],"Q1") ||
CONTAINSSTRING('Table'[Column1],"Q2") ||
CONTAINSSTRING('Table'[Column1],"Q3") ||
CONTAINSSTRING('Table'[Column1],"Q4")
)
RETURN
LOOKUPVALUE('Table'[Column1],'Table'[Column1],Tab)
This will work when you want the "Period" as a calculated column. It should work if I have understood your requirements correctly. Worked in my case.
As far as I understand, it seems you want to automate the process and the period present in that cell is also going to change over time. Correct me if I am wrong in understanding the problem.
I would suggest, give a try to LOOKUPVALUE() function and let me know if you got the solution.
Hi @quantumudit , you understand the problem correctly. However, I don't see how the LOOKUPVALUE would work as there is not reference column....
I would like to have something like this....period = IF COLUMN IN TABLE X CONTAINS CELL WITH "Q1"||"Q2"||"Q3"||"Q4" Return CELL VALUE
In this example, it should return 2018 Q3.
Try this DAX formula to create the "Period" calculated column and let me know if it works.
Period =
FILTER(
ALL( 'Table'[Messy Column] ),
CONTAINSSTRING( 'Table'[Messy Column] , "Q1" ) ||
CONTAINSSTRING( 'Table'[Messy Column] , "Q2" ) ||
CONTAINSSTRING( 'Table'[Messy Column] , "Q3" ) ||
CONTAINSSTRING( 'Table'[Messy Column] , "Q4" )
)
This worked in my case and I hope you will also get a positive outcome.
(Assuming that you are always going to have a quarter level of data each time)
@quantumudit It does not work for me. I get the following error: "The expression refers to multiple columns. Multiple columns cannot be converted to a scalar value."
If I am not wrong then, you got a single column with messy value and there is only one cell that contains the "Q3" string period value.
The formula will work only if the above condition is met.
@quantumudit yes correct. I have a table that contains a column. In that column there is only one cell specifying the period. I want to extract that single cell into a column in another table
@bamba98 So, you want that in another table? Not as a column in the same table?
Ok, try this one:
Period =
VAR Tab =
FILTER(
ALL('Table'[Column1]),
CONTAINSSTRING('Table'[Column1],"Q1") ||
CONTAINSSTRING('Table'[Column1],"Q2") ||
CONTAINSSTRING('Table'[Column1],"Q3") ||
CONTAINSSTRING('Table'[Column1],"Q4")
)
RETURN
LOOKUPVALUE('Table'[Column1],'Table'[Column1],Tab)
This will work when you want the "Period" as a calculated column. It should work if I have understood your requirements correctly. Worked in my case.
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
25 | |
19 | |
18 | |
18 | |
15 |
User | Count |
---|---|
39 | |
22 | |
18 | |
15 | |
12 |