Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi, if I have columns with nulls and want to merge can I retian the null values where both columns contian nulls
example ;
let
Source = #table(
type table [Text = Any.Type, Text2 = Any.Type],
{{"a", "b"}, {"b", null}, {null, null}, {"c", "e"}, {null, null}, {"d", "d"}}
),
#"Merged Columns" = Table.CombineColumns(
Source,
{"Text", "Text2"},
Combiner.CombineTextByDelimiter(""),
"Merged"
)
in
#"Merged Columns"
so where both are null show null ?
Richard
Solved! Go to Solution.
Hi @Dicken
To make sure null values remain unchanged when both columns contain null, you can adjust your approach with conditional logic. Try the below M code it should work !
let
Source = #table(
type table [Text = Any.Type, Text2 = Any.Type],
{{"a", "b"}, {"b", null}, {null, null}, {"c", "e"}, {null, null}, {"d", "d"}}
),
#"Merged Columns" = Table.AddColumn(Source, "Merged", each
if [Text] = null and [Text2] = null then null
else Text.Combine({[Text], [Text2]}, "")
)
in
#"Merged Columns"
Output:
Appreciate a Kudos 👍
Thanks,
Proud to be a Super User! | |
Hi @Dicken ,
Yes, it’s absolutely possible to retain null values when both columns contain null while merging in Power Query. The default Table.CombineColumns function doesn't differentiate between actual nulls and empty strings, so it will merge even two nulls into an empty string, which may not be what you want. To preserve null in cases where both columns are null, you can use a conditional column instead. This approach checks if both source columns are null, and if so, sets the result to null; otherwise, it combines the values. This gives you full control and preserves data integrity in scenarios like yours.
Here’s how you can implement it:
let
Source = #table(
type table [Text = Any.Type, Text2 = Any.Type],
{{"a", "b"}, {"b", null}, {null, null}, {"c", "e"}, {null, null}, {"d", "d"}}
),
#"Merged Columns" = Table.AddColumn(Source, "Merged", each
if [Text] = null and [Text2] = null then null
else Text.Combine({[Text], [Text2]}, "")
)
in
#"Merged Columns"
Hi @Dicken
with Table.CombineColumns
= Table.CombineColumns(
Source,
{"Text", "Text2"},
each if List.NonNullCount(_)>0 then Text.Combine(_) else null,
"Merged"
)
Stéphane
Hi @Dicken ,
Yes, it’s absolutely possible to retain null values when both columns contain null while merging in Power Query. The default Table.CombineColumns function doesn't differentiate between actual nulls and empty strings, so it will merge even two nulls into an empty string, which may not be what you want. To preserve null in cases where both columns are null, you can use a conditional column instead. This approach checks if both source columns are null, and if so, sets the result to null; otherwise, it combines the values. This gives you full control and preserves data integrity in scenarios like yours.
Here’s how you can implement it:
let
Source = #table(
type table [Text = Any.Type, Text2 = Any.Type],
{{"a", "b"}, {"b", null}, {null, null}, {"c", "e"}, {null, null}, {"d", "d"}}
),
#"Merged Columns" = Table.AddColumn(Source, "Merged", each
if [Text] = null and [Text2] = null then null
else Text.Combine({[Text], [Text2]}, "")
)
in
#"Merged Columns"
Thank you,
Hi @Dicken
To make sure null values remain unchanged when both columns contain null, you can adjust your approach with conditional logic. Try the below M code it should work !
let
Source = #table(
type table [Text = Any.Type, Text2 = Any.Type],
{{"a", "b"}, {"b", null}, {null, null}, {"c", "e"}, {null, null}, {"d", "d"}}
),
#"Merged Columns" = Table.AddColumn(Source, "Merged", each
if [Text] = null and [Text2] = null then null
else Text.Combine({[Text], [Text2]}, "")
)
in
#"Merged Columns"
Output:
Appreciate a Kudos 👍
Thanks,
Proud to be a Super User! | |