Hi guys, i have one column as "Input" and their data as A,B,B,C,D,D,D,E (8 records totally).Final output should be A1,B2,C1,D3,E1(using informatica) - informatica

In Informatica using which transformation we can get this problem to be solved
I tried introducing count column in aggregate transformation but output is like 2columns A 1,B 2,C 1,D 3,E 1...i need the output to be in 1 column alone

After the Aggregator, you can add an Expression transformation. In this transformation you convert the count into a string and concatenate it with the first field.

Related

How to merger these two records ino one row removing Null value in Informatica using transformation. Please see the snapshot for scenario

enter image description here
Input-
Code value Min Max
A abc 10 null
A abc Null 20
Output-
Code value Min Max
A abc 10 20
You can use an aggregator transformation to remove nulls and get single row. I am providing solution based on your data only.
use an aggregator with below ports -
inout_Code (group by)
inout_value (group by)
in_Min
in_Max
out_Min= MAX(in_Min)
out_Max = MAX(in_Max)
And then attach out_Min, out_Max, code and value to target.
You will get 1 record for a combination of code and value and null values will be gone.
Now, if you have more than 4/5/6/more etc. code,value combinations and some of min, max columns are null and you want multiple records, you need more complex mapping logic. Let me know if this helps. :)

Google Sheets - Conditional Formatting based on value of cell in another sheet - Custom Formula

How can I achieve the following:
Sheet1: has a range of cells A1:M13 which have conditional format rules: if text is exactly "1" (to "15" so 15 rules) → each number gives the cell a different background filling.
Sheet2: I want do Conditional Formatting on range A1:M13 based on the cell values in Sheet1!A1:M13.
At the moment I have the following custom formula in conditional formatting:
=if((INDIRECT("Sheet1!A1:M13=1")))
What do I do wrong? Do I have to set format of Sheet1 to value=1 instead of text is exactly "1"?
Apply this to range A1:M13 in Sheet2 for cell to cell comparison:
=1=INDIRECT("Sheet1!"&CELL("address",A1))
try:
=INDIRECT("Sheet1!"&A1)=1
or
=INDIRECT("Sheet1!"&A1)="1"

How to normalize fields delimited by colon thats into a single column in informatica cloud

I need help to normalize the field "DSC_HASH" inside a single column delimeted by colon.
Input:
Outuput:
I achieved what I needed with java transformation:
1) In java transformation I created 4 output columns: COD1_out, COD2_out, COD3_out and DSC_HASH_out
2) Then I put the following code:
String [] column_split;
String column_delimiter = ";";
String [] column_data;
String data_delimiter = ":" ;
Column_split = DSC_HASH.split(column_delimiter);
COD1_out = COD1;
COD2_out = COD2;
COD3_out = COD3;
for (int I =0; i < column_split.length; i++){
column_data = column_split[i].split(data_delimiter);
DSC_HASH_out = column_data[0];
generateRow();
}
There are no generic parsers or loop construct in Informatica that can take one record and output an arbitrary number of records.
There are some ways you can bypass this limitation:
Using the Java Transformation, as you did, which is probably the easiest... if you know Java :) There may be limitations to performance or multi-threading.
Using a Router or a Normalizer with a fixed number of output records, high enough to cover all your cases, then filter out empty records. The expressions to extract fields are a bit complex to write (an maintain).
Using the XML Parser, but you have to convert your data to XML before, and design an XML schema. For example your first line would be changed in (on multiple lines for readability):
<e><n>2320</n><h>-1950312402</h></e>
<e><n>410</n><h>103682488</h></e>
<e><n>4301</n><h>933882987</h></e>
<e><n>110</n><h>-2069728628</h></e>
Using SQL Transformation or Stored Procedure Transformation to use database standard or custom functions, but that would result in an SQL query for each input row, which is bad performance-wise
Using a Custom Transformation. Does anyone want to write C++ for that ?
The Java Transformation is clearly a good solution for this situation.

Google Sheet: Filtering multiple values in a single cell

I'm trying to filter a column and the result should contain both the word "biology" and "aqa".
I'm using this formula now:
=regexmatch(A:A, "biology|aqa"
But the result also contains words that have biology or aqa only like:
biology-a2-unit-1
biology-a2-unit-4
biology-alevel
aqa-alevel
alevel-aqa-unit-1
My expected result should have both "biology" and "aqa" only like:
biology-aqa
biology-aqa-a-level
biology-aqa-gcse
as-biology-aqa
aqa-biology-gcse
you are using | which is OR logic. but you need AND logic
=FILTER(A:A, REGEXMATCH(A:A, "aqa"), REGEXMATCH(A:A, "biology"))

How to create new column that parses correct values from a row to a list

I am struggling on creating a formula with Power Bi that would split a single rows value into a list of values that i want.
So I have a column that is called ID and it has values such as:
"ID001122, ID223344" or "IRRELEVANT TEXT ID112233, MORE IRRELEVANT;ID223344 TEXT"
What is important is to save the ID and 6 numbers after it. The first example would turn into a list like this: {"ID001122","ID223344"}. The second example would look exactly the same but it would just parse all the irrelevant text from between.
I was looking for some type of an loop formula where you could use the text find function to find ID starting point and use middle function to extract 8 characters from the start but I had no progress in finding such. I tried making lists from comma separator but I noticed that not all rows had commas to separate IDs.
The end results would be that the original value is on one column next to the list of parsed values which then could be expanded to new rows.
ID Parsed ID
"Random ID123456, Text;ID23456" List {"ID123456","ID23456"}
Any of you have former experience?
Hey I found the answer by myself using a good article similar to my problem.
Here is my solution without any further text parsing which i can do later on.
each let
PosList = Text.PositionOf([ID],"ID",Occurrence.All),
List = List.Transform(PosList, (x) => Text.Middle([ID],x,8))
in List
For example this would result "(ID343137,ID352973) ID358388" into {ID343137,ID352973,ID358388}
Ended up being easier than I thought. Suppose the solution relied again on the lists!