Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Creating Relationship between 2 Different Datasets

Let's say I have 2 existing Datasets, one is AnimalInfo and another is Owner. In the Owner dataset (xls. format) consist of 3 sheets aka 3 owners. In the visualization, for instance I have slicer that is able to choose the animal from AnimalInfo set. Then I have a table where the Animal is displayed when chosen from the slicer, as well as display the owner's name indicating that the owner has the Animal chosen, as a Pet. How do I achieve this?

Examples of the desired output when choosing "Cat" in the slicer:

AnimalAraKenEva
CatCat (Wendy)n/aCat (Loli)

Another example when choosing "Fish" in the slicer:

AnimalAraKenEva
Fishn/a

Fish (Joji)

Fish (Poppy)

n/a

AnimalInfo Dataset

AnimalColour
CatWhite
DogBrown
FishOrange

Owner Datasets

Ara (sheet1)

Name of the PetPet
BenDog
WendyCat

 

Ken (sheet2)

Name of The PetPet
JojiFish
PoppyHen

Eva (sheet3)

Name of The PetPet
Loli

Cat

  • Hi Anonymous - you can append these three sheets (Ara,Ken and Eva) into a single table named as Owner

     

    Rename columns appropriately for consistency (e.g., Name of the Pet to Pet Name, Pet to Animal).

     

    create a relationship between owner table and Animal tables as lik below

     

     

    create a new table as 

     

    OwnerMapping =
    DATATABLE (
    "Owner", STRING,
    {
    { "Ara" },
    { "Ken" },
    { "Eva" }
    }
    )

    Now create individual measure for each owner

    Ara_Pets =
    CONCATENATEX (
    FILTER (
    Owner,
    Owner[Owner] = "Ara" &&
    Owner[Animal] = SELECTEDVALUE ( AnimalInfo[Animal])
    ),
    Owner[Pet Name],
    ", ",
    "n/a"
    )

    Ken_Pets =
    CONCATENATEX (
    FILTER (
    Owner,
    Owner[Owner] = "Ken" &&
    Owner[Animal] = SELECTEDVALUE ( AnimalInfo[Animal])
    ),
    Owner[Pet Name],
    ", ",
    "n/a"
    )

    Eva_Pets =
    CONCATENATEX (
    FILTER (
    Owner,
    Owner[Owner] = "Eva" &&
    Owner[Animal] = SELECTEDVALUE ( AnimalInfo[Animal])
    ),
    Owner[Pet Name],
    ", ",
    "n/a"
    )

     

    Hope it works

    Did I answer your question? Mark my post as a solution! This will help others on the forum!
    Appreciate your Kudos!!

4 Replies

  • Hi Anonymous - you can append these three sheets (Ara,Ken and Eva) into a single table named as Owner

     

    Rename columns appropriately for consistency (e.g., Name of the Pet to Pet Name, Pet to Animal).

     

    create a relationship between owner table and Animal tables as lik below

     

     

    create a new table as 

     

    OwnerMapping =
    DATATABLE (
    "Owner", STRING,
    {
    { "Ara" },
    { "Ken" },
    { "Eva" }
    }
    )

    Now create individual measure for each owner

    Ara_Pets =
    CONCATENATEX (
    FILTER (
    Owner,
    Owner[Owner] = "Ara" &&
    Owner[Animal] = SELECTEDVALUE ( AnimalInfo[Animal])
    ),
    Owner[Pet Name],
    ", ",
    "n/a"
    )

    Ken_Pets =
    CONCATENATEX (
    FILTER (
    Owner,
    Owner[Owner] = "Ken" &&
    Owner[Animal] = SELECTEDVALUE ( AnimalInfo[Animal])
    ),
    Owner[Pet Name],
    ", ",
    "n/a"
    )

    Eva_Pets =
    CONCATENATEX (
    FILTER (
    Owner,
    Owner[Owner] = "Eva" &&
    Owner[Animal] = SELECTEDVALUE ( AnimalInfo[Animal])
    ),
    Owner[Pet Name],
    ", ",
    "n/a"
    )

     

    Hope it works

    Did I answer your question? Mark my post as a solution! This will help others on the forum!
    Appreciate your Kudos!!

    • Anonymous's avatar
      Anonymous
      Not applicable

      i tried this as well, it works! but quite difficult if these data are in a large volume

    • Anonymous's avatar
      Anonymous
      Not applicable

      thank you so much! this is very helpful