Replace IDs in a table with actual values in DAX Power BI - powerbi

I have two tables the first one contains a value and label combination. The second table contains a column containing IDs(matching with table 1 ) in cell separated by commas
Output : replace all IDs with respective values with commas intact
sample output

Related

How to add leading Zero's to make location number in Power BI so it returns 3 digit #

Loc1= FORMAT('Table'[LOC],"000") Any suggestion would be helpful? The original Column LOC is a text field with returns 3 characters with leading Zero's. I need it in numeric form to be able to join and use it in calculated columns.
Found a work around to fix my problem, I came up with a solution to keep Loc column as text and add concatenate column with Business Unit ID and Loc & convert concatenated col to numeric field so I can use for filtering and joining.

Sharepoint List - Calculated Column with commas

I have two Columns with numbers separated by commas in a Sharepoint List. I want the result to be calculated in a new column:
Image example
So the result should be calculated used this logic:
(10x10) + (2x5) + (6x3)
Now there can be many comma separated values but values in Values col and Stock col will always have the same number of commas. So the formula should be smart enough to count number of commas and multiple value in right order.
Any help is much appreciated. I am new to Sharepoint List so please try to break it down.
Thanks a lot in advance.

Selecting SAS column by the character string within a row observation

I have a table(A) with rows that have character strings that should match column names. I'm trying to match the name within the row observation with the corresponding column of the table A and check the values within that column and give a T/F flag.
for example if the row observation is 'A-3', i can go into the 'A-3' column and check that corresponding row for a value.
Use VVALUEX() as long as you're ok with everything coming back as characters.
Link to VVALUEX documentation
A-3 isn't a valid SAS variable name, but assuming it is you'd refer to it as 'A-3'n.
data want;
set have;
x = vvaluex('A-3'n);
x1 = vvaluex(A_3);
run;

Extract text between parenthesis from a postgres table without creating additional column

I am trying to extract text between parenthesis from a column in postgres table. I am using following command. It is creating an additional blank column.
SELECT *, SUBSTRING (col2, '\[(.+)\]') FROM table
My table looks like this:
col1 col2
1 mut(MI_0118)
2 mut(MI_0119)
3 mut(MI_0120)
My desired output is:
col1 col2
1 MI_0118
2 MI_0119
3 MI_0120
How can I extract the text without creating an additional column.
Thanks
Your regex is wrong, that's why you get an empty column. You don't want square brackets, but parentheses around the search string
select col1, substring(col2, '\((.+)\)')
from input
Online example
The * in the SELECT statement is including all columns. Then you are adding another unnamed column. If you do:
SELECT col1, SUBSTRING (col2, '\[(.+)\]') AS col2 FROM table
It will be closer to what you want.

Remove duplicates and Keep related data Calc (Excel)

I have a list of products in calc (excel), each with an associated IP address. Many of the names have multiple IP addresses, however they are organized one column at a time. I am trying to remove all of the multiples and pull all of the IP addresses under a single name. I have tried nslookup and index match, they do not deal well with multiple outputs though. Right now it looks like this
a| 1
a| 2
a| 3
b| 1
b| 2
b| 3
etc...
I would like it to look like this
a 1,2,3
b 1,2,3
Is there any way to do this without wasting a ton of time, I have a few ways that work but they will take me forever to setup.
I recommend setting up your formulas in multiple "helper" cells before getting to the final "result cell". This breaks down the problem into smaller steps that are more easily formulated and, if needed in the future, updated. Once the setup is complete you can hide the helper columns by right-clicking on the column letter and choosing "Hide".
The first column to set up is the list of distinct product names. For the formula below to work, the product/IP list will need to be sorted in ascending order. If the list is not already sorted, to sort it first highlight the entire list, including headers. Then choose Data→Sort; select sort by "Product", make sure the radio button "Ascending" is selected, and press OK.
For purposes of this example, I'll assume product names are in column A, starting on row 2 and IPs are in column B starting on row 2 (with row 1 being the header labels). In the column where you want to list the distinct product names (I used column D), enter in the top cell =A2. In the cell below enter
=INDEX($A$2:$A$13;MATCH(D2;$A$2:$A$13;1)+1)
The match formula has a 1 as the third variable, meaning the range is sorted ascending and MATCH will return the position of the last matching cell. We add 1 to the position of the last matching cell, and this will be the position of the first cell with a new product name. That position is fed into the INDEX function to show the next product name.
Copy and paste that cell down as far as you need to show all the product names.
Now we'll set up a series of cells to display each IP address. I used columns F to I to show up to 4 addresses:
=IF(MATCH(D2;$A$2:$A$13;0)<=MATCH($D2;$A$2:$A$13;1);INDEX($B$2:$B$13;MATCH($D2;$A$2:$A$13;0));"")
=IF(MATCH(D2;$A$2:$A$13;0)+1<=MATCH(D2;$A$2:$A$13;1);INDEX($B$2:$B$13;MATCH(D2;$A$2:$A$13;0)+1);"")
=IF(MATCH(D2;$A$2:$A$13;0)+2<=MATCH(D2;$A$2:$A$13;1);INDEX($B$2:$B$13;MATCH(D2;$A$2:$A$13;0)+2);"")
=IF(MATCH(D2;$A$2:$A$13;0)+3<=MATCH(D2;$A$2:$A$13;1);INDEX($B$2:$B$13;MATCH(D2;$A$2:$A$13;0)+3);"")
MATCH with the third variable of 1 returns the position of the last matching cell; MATCH with the third variable of 0 returns the position of the first matching cell.
The IF statement checks if the position of the first matching cell (in the first lookup column) or the cell below that (in the second lookup column) or the cell two below the first match (in the third lookup column), etc. is less than or equal to the position of the last matching cell. If yes, then it looks up the relevant IP address. If no, it displays a blank.
In the formulas above you would need to manually enter the formula in the top row of each column. If you have some products with a large number of IP addresses, you may want to set up the formula so you can copy and paste between columns as well as down the rows. This would work if you were starting in column F:
=IF(MATCH($D2;$A$2:$A$13;0)+COLUMN()-6<=MATCH($D2;$A$2:$A$13;1);INDEX($B$2:$B$13;MATCH($D2;$A$2:$A$13;0)+COLUMN()-6);"")
Once you have your top row set up as you want, copy and paste down however many rows you need.
If you want to combine all the IPs into a single cell separated by commas, you can use a formula like this:
=CONCATENATE(F2;IF(G2<>"";","&G2;"");IF(H2<>"";","&H2;"");IF(I2<>"";","&I2;""))
Each IF statement will add a comma separator followed by the cell contents if the checked cell is not empty, otherwise it returns a blank string. You will need to manually adjust to add additional IF statements for however many maximum columns you want to concatenate. Again, once you have the top row set up, copy and paste down however far you need.
Assuming you have two columns (A and B), that these are labelled and sorted as shown, then enter in C2:
=IF(A1<>A2;B2;C1&","&B2)
and in D1:
=A1<>A2
Copy both down to suit, select ColumnC and Copy, Paste Special... with each Selection ticked other than Paste all and Formulas, click OK.
Select ColumnsA:D, Data > Filter > AutoFilter, click Yes and select 1 for ColumnD and all visible range.
Copy and paste into a new sheet, move B1 to C1 and delete Columns B and D.