Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Substring and Approximative Match

Hi,

 

I have an issue and I am really stuck here, let me explain it:

Currently I have 2 sources and no exact matching.

 

What do I want to achieve?

I want to match SOURCE1.bucket/source with SOURCE2.bucket because at the end I want to have all the information separatly.

database > source> table> bucket

 

let me know if I can just "split" this column SOURCE1.bucket/source but I there is no logic...

 

Many thanks,

Naïma

  • Hi,

    This calculated column formula works

    Column = FIRSTNONBLANK(FILTER(VALUES(Buckets[BUCKET]),SEARCH(Buckets[BUCKET],Data[FULL_DATABASE_NAME],1,0)),1)

9 Replies

  • HotChilli's avatar
    HotChilli
    Icon for Community Champion rankCommunity Champion

    Power Query. Split column by delimiter has ''from digit to non-digit" as an option.

    That might do it

  • Anonymous's avatar
    Anonymous
    Not applicable

    Sorry HotChilli , but I am using dummy data, in reallity I dont have any number on the middle.

  • HotChilli's avatar
    HotChilli
    Icon for Community Champion rankCommunity Champion

    What about using Text.Range with Text.Length from the Source column to get the bucket from the last column?

    Post some more realistic data (not a picture) if you want more help, please.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Below what I could give as data, I hope it will be useful.

       

      Thanks,

       

      SOURCE 1

      FULL_DATABASE_NAMEBUCKET /SOURCEWHAT I WANT (and I don't have)
      landingconsumabledbprdaeranpillaeranpillaera
      landingconsumabledbprdaerap6rsaerap6rsaera
      landingconsumabledbprdaerap5opaerap5opaera
      landingconsumabledbprdaerap3traerap3traera
      landingconsumabledbprdaerap1teaerap1teaera
      landingconsumabledbprdaeraplbouaeraplbouaera
      landingconsumabledbprdaerasxyrlaerasxyrlaera
      landingconsumabledbprdtelonip1eetelonip1eeteloni
      landingconsumabledbprdtelanosp3oktelanosp3oktelanos
      landingconsumabledbprdtelanosp1trtelanosp1trtelanos
      landingconsumabledbprdtelanossmdltelanossmdltelanos

       

      SOURCE 2

      BUCKET
      aera
      telanos
      teloni

       

      • smpa01's avatar
        smpa01
        Icon for Community Champion rankCommunity Champion

        Anonymous  Measure

        Measure =
        MAXX (
            FILTER (
                CROSSJOIN ( tbl1, tbl2 ),
                CONTAINSSTRING ( tbl1[BUCKET /SOURCE], tbl2[BUCKET] ) = TRUE ()
            ),
            [BUCKET]
        )
        

         

        Calculated Column

        Column = 
        VAR _0 =
            FILTER (
                CROSSJOIN ( tbl1, tbl2 ),
                CONTAINSSTRING ( tbl1[BUCKET /SOURCE], tbl2[BUCKET] ) = TRUE ()
            )
        VAR _1 =
            MAXX (
                FILTER ( _0, [FULL_DATABASE_NAME] = EARLIER ( tbl1[FULL_DATABASE_NAME] ) ),
                [BUCKET]
            )
        RETURN
            _1

         

         

         

  • I'd probably do this in Power Query:

     

    This is the code for the custom column:

    (row) =>
        List.Max(
            List.Select(
                SOURCE2[BUCKET],
                each Text.Contains(row[FULL_DATABASE_NAME], _)
            )
        )