Logo
Published on

Dataflows Part 2 - Choice Column with Multiple Values

Authors
  • avatar
    Name
    Konstantin Fukszon
    Twitter

This post accompanies my YouTube walkthrough on handling multi-select Choice columns from SharePoint and mapping them cleanly into Dataverse using Power Query (dataflows).
In the video I briefly show:

  • The SharePoint Event Itinerary list where Location is a multi-select Choice.
  • Creating a dataflow, expanding the multi-select column, and preparing values for Dataverse.
  • Building a custom lookup table for Choices.
  • Merging, then grouping values back so Dataverse receives the correct delimited strings.

Missed Part 1? Catch up here:
Dataverse Choice Columns Part 1 - Single Value


📺 Watch the Video


Step-by-step Overview

1. Creating a Custom Choice Lookup Table

First, we define a reference table with all possible values. This ensures we can map SharePoint’s selections to Dataverse’s Choice field properly.

let
    ChoiceLookup = #table(
        {"OptionValue", "OptionLabel"},
        {
            {10, "Tatooine"},
            {20, "Coruscant"},
            {30, "Naboo"},
            {40, "Mustafar"},
            {50, "Kamino"},
            {60, "Endor"},
            {70, "Hoth"},
            {80, "Jakku"},
            {90, "Kashyyyk"},
            {100, "Dagobah"}
        }
    )
in
    ChoiceLookup

2. Grouping Rows Back Together

After expanding and merging, we recombine the multi-select values per record so Dataverse receives delimited strings. Here’s the Power Query code used:

#"GroupedRows" = Table.Group(
    #"Expanded Query",
    {"Session name", "Session code", "Speaker(s)", "Session type"},
    {
        {"Location", each Text.Combine(_[Location], ", "), type text},
        {"OptionValue", each Text.Combine(List.Transform(_[OptionValue], Text.From), ", "), type text}
    }
)

Wrap-up

With this approach you can:

  • Map SharePoint multi-select choices reliably into Dataverse.
  • Keep your option values consistent via a lookup table.
  • Produce one row per record by grouping selections into delimited text ready for Dataverse ingestion.

If the video helped, please like and subscribe—and feel free to drop questions or tips in the comments!