Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The “Column not found” or “Can’t find column” error in Power BI usually means the column is missing from the table produced by the previous Power Query step—not necessarily that it is missing from the original source.

Use Home > Transform data to open Power Query, then inspect Query settings > Applied steps from top to bottom. The first step whose preview no longer shows the expected column is normally where the problem begins.

What the Power BI column-not-found error means

Power Query evaluates transformations in sequence. Each step receives the table returned by the step immediately before it. If an earlier step removes, renames, promotes, or changes a column, later steps must use the new schema.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For example, a source may contain CustomerNum, but a previous step may rename it to CustomerID. A later step that still requests CustomerNum will fail even though the source itself has not changed.

Typical error text includes:

[Expression.Error] The field 'NewColumn' of the record wasn't found.

Functions such as Table.SelectColumns and Table.RenameColumns raise an error by default when a requested column is absent from the input table.

Quick diagnostic: find the first broken step

  1. In Power BI Desktop, select Home > Transform data.
  2. In the Power Query editor, select the affected query.
  3. In the right-hand Query settings pane, locate Applied steps.
  4. Select each step from the top downward.
  5. Watch the table preview and column headers.

The first step where the column disappears, changes name, or produces an error is the step to fix. An error shown at the final step can be only a downstream symptom.

Pay particular attention to these steps:

Step How it can cause the error
Removed columns The required column was deleted.
Choose columns The column was left out of a selected list.
Renamed columns A later step still uses the old name.
Promoted headers The wrong source row became the header.
Merged queries The expected result is inside a nested table column.
Expanded Fields were expanded under a different name or were not selected.

Fix 1: correct a renamed column

Select the step immediately before the error and check the exact column name, including capitalization, spaces, punctuation, and suffixes. Then edit the later step so it uses that name.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To inspect or edit the generated M code, select View > Advanced Editor. Make the change, then select Done. Select Cancel if you do not want to apply the edit.

A one-column rename uses this syntax:

Table.RenameColumns(
    Source,
    {"CustomerNum", "CustomerID"}
)

For several columns:

Table.RenameColumns(
    Source,
    {
        {"CustomerNum", "CustomerID"},
        {"PhoneNum", "Phone"}
    }
)

The first name in each pair must exist in the table entering that step. If it does not, Table.RenameColumns fails by default.

You can deliberately ignore a missing old name:

Table.RenameColumns(
    Source,
    {"NewCol", "NewColumn"},
    MissingField.Ignore
)

Use this only when the rename is optional. It leaves the table unchanged when NewCol is absent, which can hide a real upstream problem.

Fix 2: repair a Choose columns or Select columns step

A Choose columns step is commonly represented by Table.SelectColumns. It returns only the columns listed. This means a column can disappear even though it still exists in the source.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Selecting one column:

Table.SelectColumns(Source, "Name")

Selecting several columns:

Table.SelectColumns(
    Source,
    {"CustomerID", "Name"}
)

The output columns appear in the order listed. Add the missing column to the list, or remove the later reference if that column is no longer required.

If the column is optional, you can prevent an error when it is absent:

Table.SelectColumns(
    Source,
    {"CustomerID", "NewColumn"},
    MissingField.Ignore
)

If downstream logic requires the column to exist, use MissingField.UseNull instead:

Table.SelectColumns(
    Source,
    {"CustomerID", "NewColumn"},
    MissingField.UseNull
)

This creates NewColumn with null values when it is missing. That is different from ignoring the column: later steps can still reference it, although its values will be null.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fix 3: check promoted headers

If the source contains a header row below a title, blank row, report date, or other introductory content, Power Query may promote the wrong row. The expected names are then never created.

Table.PromoteHeaders promotes the first row of values to column names. Check the preview immediately before and after the Promoted headers step. If the first row is not the real header, remove or move the step that skips rows, or correct the header operation.

The standard function is:

Table.PromoteHeaders(table, optional options)

For sources where nontext scalar values must also become headers, use:

Table.PromoteHeaders(
    Source,
    [PromoteAllScalars = true, Culture = "en-US"]
)

The Culture setting matters when a date or another nontext value is converted into a column name. A date promoted under one culture can produce a different text name under another, so avoid relying on culture-dependent headers where possible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fix 4: account for spaces and punctuation

Compare the actual column name in the preview with the name in the M expression. These are different names:

  • Base Line
  • BaseLine
  • Base Line with a trailing space
  • Base-Line

When a name contains spaces or unusual characters, use a quoted identifier where an identifier is required:

#"Total Sales"

In functions that accept column names as text, use the exact text value:

Table.SelectColumns(Source, {"Total Sales"})

Do not “fix” a name by guessing its spelling. Select the relevant Applied step and copy the displayed header, or rename the column once to a stable name such as TotalSales.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fix 5: inspect merged and expanded columns

A merge adds a column containing nested table values. When that column is expanded, the resulting fields may receive a suffix. For example, an expanded field can appear as Suppliers.1 rather than Suppliers.

After a merge or expand operation:

  1. Select the merge step and confirm that the nested-table column exists.
  2. Select the expand step and check which fields were selected.
  3. Inspect the resulting names in the next preview.
  4. Update later references to match the expanded names.

If a later step expects Suppliers but expansion produced Suppliers.1, rename the expanded column explicitly:

Table.RenameColumns(
    PreviousStep,
    {{"Suppliers.1", "Suppliers"}}
)

Expansion settings can also change when the source table gains or loses fields. Verify the output schema instead of assuming the old expansion result remains unchanged.

Fix 6: verify the source navigation step

Sometimes the column error is not caused by a column transformation. The query may be navigating to the wrong table, or the source table may have been renamed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A related error is:

The key didn't match any rows in the table.

This means Power Query could not find the table, sheet, or other object named by the navigation step. Possible causes include a renamed source table, insufficient permissions, or conflicting credentials for the same data source.

Check the Source and navigation steps before investigating every later column operation. If navigation no longer returns the intended table, subsequent steps cannot have the expected schema.

Replacing a bad column name or value

If the column exists but contains inconsistent text values, use Replace values rather than changing the schema. The command is available from:

  • A cell shortcut menu
  • A column shortcut menu
  • Home > Transform > Replace values
  • Transform > Any column > Replace values

For a text column, the default behavior replaces instances of the text you enter. The dialog’s Advanced option includes Match entire cell contents. Advanced options, including Use special characters, apply only to columns typed as text.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For nontext columns, replacement normally replaces the entire cell contents. If the problem is the column’s name rather than its values, use a rename operation instead.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Why refresh usually does not fix it

Refreshing retrieves current source data, but it does not rewrite an M step containing an old literal column name. If the preceding table still lacks that name, a selection or rename operation will continue to fail.

Refresh can help when the source temporarily omitted a field or when a connection problem has been corrected. It cannot reliably repair a broken transformation chain. Find the first schema-changing step, correct its name or logic, and then refresh.

Preventing future column errors

  • Use stable, descriptive column names early in the query.
  • Keep header promotion near the beginning and verify the result.
  • Review Applied steps after changing source files, worksheets, or database tables.
  • Be cautious with automatic expansion when nested schemas change.
  • Use MissingField.Ignore only for genuinely optional columns.
  • Use MissingField.UseNull when downstream calculations require a consistent column set.
  • Test queries with files or records that represent expected schema variations.

Microsoft documents Schema view for Power Query Online, where schema operations such as removing, renaming, changing types, reordering, and duplicating columns can be performed. Do not expect the current Schema view documentation to describe a Power BI Desktop feature; in Desktop, use the normal preview and Applied steps workflow.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

FAQ

Why does Power BI say a column is not found when it exists in the source?

Power Query steps use the table returned by the immediately preceding step. An earlier step may have removed, renamed, promoted, or failed to expand the column, so its presence in the original source is not enough.

Where can I find the step causing the missing-column error?

Open Power Query with Home > Transform data, select the query, and inspect Query settings > Applied steps from top to bottom. The first step whose preview no longer contains the expected column is usually the failure point.

Should I use MissingField.Ignore to fix every column error?

No. MissingField.Ignore suppresses the error and can silently omit a requested rename or selection. Use it only when the column is genuinely optional. Use MissingField.UseNull for optional selections that must still produce a consistent column.

How do I open the Power Query M code?

In the Power Query editor, select View > Advanced Editor. Edit the expression and select Done to apply it, or Cancel to discard the edit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can a wrong header row cause a column-not-found error?

Yes. Table.PromoteHeaders promotes the first row of values to column names. If that row is a title or data row instead of the real header, the names used by later steps may never be created.

The Bottom Line

Start with Query settings > Applied steps, not the original source. Find the first step where the expected column disappears, then correct the exact name, header operation, selection list, merge expansion, or source navigation step. Use MissingField.Ignore and MissingField.UseNull deliberately—they change error behavior, but they do not automatically repair an incorrect schema.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.