Expression error ключу не соответствует ни одна строка в таблице excel

let
    Источник = Excel.Workbook(File.Contents("C:Usersdamir.ispolovDesktopНовая папкаИсполнение ГПЗ.xlsx"), null, true),
    Таблица1_Table = Источник{[Item="Таблица1",Kind="Table"]}[Data],
    #"Измененный тип1" = Table.TransformColumnTypes(Таблица1_Table,{{"Заявка", Int64.Type}, {"Вн. Заказчик", type text}, {"Менеджер", type text}, {"Отдел", type text}, {"Код ТРУ", Int64.Type}, {"Материал", type text}, {"Категория", type text}, {"ЕИ", type text}, {"№ спецификации", type text}, {"№ Конкурса", type text}, {"№ договора SAP (системный)", type text}, {"№ Лота SAP", type text}, {"№ заказа SAP", Int64.Type}, {"№ договора SAP (внешний)", type text}, {"Менеджер_ТРУ", type text}, {"Статус отработки", type text}, {"Этап", type text}, {"Правило закупок (SAP)", type text}, {"Дата заявки", type date}, {"Дата деблокирования логистом", type any}, {"Шифр ИП", type text}, {"Название ИП", type text}, {"Лот 11", type text}, {"Прогноз своевременности", type text}, {"Статус план.", type text}, {"ЦО", type text}, {"Товар/Услуга", type text}, {"БЕ", type text}, {"СЗП/Центр.закуп", type text}, {"Статус конкурса", type text}, {"Пояснение блокировки логистами", type text}, {"Кол-во", type number}, {"Сумма в заявке  (без НДС), KZT", type number}, {"Месяц желаемой поставки", type date}, {"Прогноз поставки", type date}}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Измененный тип1", each ([Дата деблокирования логистом] = "-"))
in
    #"Строки с примененным фильтром"

‎Jun 13 2021

07:37 PM

Hello everyone,
I’m trying to merge multiple excel files into one spreadsheet using Power Query, but I receive the following error when doing so:

An error occurred in the ‘Transform File’ query. Expression.Error: The key didn’t match any rows in the table.
Details:
Key=
Item=Client Lists
Kind=Sheet
Table=

Now a bit of information on my data sheets. The workbooks I’m trying to combine are tabled and also contain 2 tabs each. I’m trying to specifically combine 1 of the tabs from each sheet. In the Power Query navigator, it shows the options of ‘Table’ and the named tab I want to focus on.

I tried to separate the 1 specific tab into one book and ensured all of my books have the exact same headers. When I try to combine I still receive the same error.

Do I have to un-table my sheets? Or do I have to create a new book for the specific sheet I’m looking to combine? Please help!


  • All Discussions


  • Previous Discussion

  • Next Discussion

17 Replies

‎Jun 14 2021

01:40 AM

@Ozz_Kozz 

I guess you use From Folder connector. For it both files shall have the same structure. If you select ‘Client Lists’ sheet for sample (first) file, sheet with the same name shall be in another file. If you combine based on structured tables, they shall have the same name in all files.

‎Jun 21 2021

02:17 PM

@Ozz_Kozz 

The column data types on both table must be the same.

What kind of join did you select in your merge query?

cheers

‎Jun 21 2021

03:08 PM

@Sergei Baklan,

So which is it that’s creating the error message since you already re-created the error

‎Jun 21 2021

03:11 PM

@Yea_So 

That’s in my very first answer above

‎Jun 21 2021

03:29 PM

@Sergei Baklan
Yes and I my response was to supplement your response and make sure that the data type details and my join type question is not overlooked by the user which is not mentioned in your response.

«I guess you use From Folder connector. For it both files shall have the same structure. If you select ‘Client Lists’ sheet for sample (first) file, sheet with the same name shall be in another file. If you combine based on structured tables, they shall have the same name in all files.»

‎Aug 03 2021

10:22 AM

I had a similar problem and for me the solution was simple. I just made the names of the worksheets in each workbook identical. I had 10 excel files, eg. USA.xlsx, China.xlsx, UK.xlsx, etc, each with one worksheet. I simply renamed the worksheet in each file as «SomeName» and that solved my problem.

‎Aug 27 2021

04:36 AM

@PGonzaga You are a genius. Simple and fast solution. Thanks you mate.

‎Sep 14 2021

06:41 PM

@Ozz_Kozz I built couple of PQs, one for Master and other for comparison. Now when I merged queries for vlookup, I’m getting the same error and that’s what I expected as there were no matching records.  I want to go to next step and work on those records, but PQ doesn’t allow me to Close & Load due to this. Does anyone overcome this or what’s the work around?

‎Oct 19 2021

06:38 AM

It worked for me, thanks!

‎May 17 2022

01:25 PM

@Ozz_Kozz 

I found this video on Ewetoob, on how to fix this. Very easy.

Basically, the worksheets within each book have different names, PQ is looking for the same name. You can have it look by an index number instead, probably 0 if there’s only one sheet in each workbook.

Open the editor. Select «Transform Sample File» in the Queries Pane (left side).

Select «Navigation» in the Applied Steps pane (right side).

Change the formula to 

= Source{0}[Data]

That should fix it!

Get Data from Multiple Excel Files with Different Sheet Names into Power BI

The ability to use Get Data from Folder in Power BI is a very useful option. However, if your sheet names are different in the list of Excel files, then you will face a problem. In this video, I’ll explain a method you can use that works regardless of the sheet names. Download the sample files …

‎Jun 03 2022

04:08 PM

@PGonzaga  

The simplest solution to a common problem experienced by most people the first time they try to use Power Query to merge Excel documents.  

Just make the name of the worksheet the same in each file containing data.  That is all.  

How many pages full of incomprehensible and complicated answers that were impossible to implement did I have to get through just to find this simple answer? Lots.  

‎Jun 03 2022

04:15 PM

I’ve been struggling for three hours trying to combine 56 Excel spreadsheets with over 26,000 records and this is the first answer that fixed the problem first-try. Thank you x1.000!

‎Mar 04 2023

05:13 AM

@Sergei Baklan 

I have the same error, However Im simply trying to load and save the power query from a single excel file, having only one worksheet.  In fact it is from one of the Tutorials and sample files from Kevin Stratvert. All simple tutorial steps followed. single file, single works sheet «Order Data».  No merge step required. However same error. Is there a bug with using the Folder Source connection?  Thanks for any reply.

KR, alx

‎Mar 09 2023

04:08 AM

@alxjcbs 

Do you use From Folder connector? Are there any other files in this folder? On which step do you have an error?

Я пытаюсь загрузить (объединить) несколько файлов Excel в Power BI (версия от октября 2019 г.). В каждом файле всего 1 лист. Каждый лист имеет 1 диапазон, и каждый диапазон имеет одинаковую схему для всех файлов. (Хотя названия листов разные.) Имя образца листа — «200704».

Вот мои шаги:

  1. Получить данные папку подключить
  2. укажите путь к папке
  3. Объединить и загрузить
  4. выберите один из файлов в качестве моего образца файла; щелкните по имени файла как «Мой Параметр1»; нажмите ОК

После того, как я нажму «ОК», курсор немного покрутится, а затем остановится. Ничего не произошло. Итак, я перехожу в Edit Queries Edit Queries. В моем запросе данных есть предупреждающий символ, который гласит:

Произошла ошибка в запросе «Преобразовать файл». Expression.Error: ключ не соответствует ни одной строке в таблице.

Подробности: Ключ = Элемент = 200704 Вид = Лист Таблица = [Таблица]

Как исправить эту ошибку?

Если это поможет, Power BI сгенерирует для меня 5 запросов со следующей структурой:

  • Преобразовать файл из данных [2]
  • Вспомогательные запросы [3]
  • Параметр1 (образец файла)
  • Образец файла
  • Преобразовать файл
  • Файл образца преобразования
  • Другие запросы [1]
  • данные

Интересно, что если это помогает диагностировать проблему, если я установил образец файла = Первый файл или если я вручную установил образец файла для своего первого файла, в диалоговом окне выдается следующая ошибка, но она не показывает, какой запрос ошибочен. когда я пытаюсь просмотреть / отредактировать запрос.

Не удалось сохранить изменения на сервере. Возвращена ошибка: «Ошибка OLE DB или ODBC: [Expression.Error] Ключ не соответствует ни одной строке в таблице ..».

И, конечно же, когда я пытаюсь загрузить этот файл (или любой файл в папке, если на то пошло) индивидуально (через соединение Excel), он загружается успешно. Итак, что-то не так с кодом M в моем подключении к папке.

Я понял причину моей проблемы и решение. Проблема в том, что на строку в моем запросе шаблона ссылались неправильно (т. е. первичный ключ между запросом шаблона и обычным запросом неверен, и он имеет жесткое кодирование имен листов). Чтобы это исправить, мне пришлось удалить все остальные столбцы в таблице запросов шаблона, кроме столбца «Данные», как описано здесь. (Странно, что документация MS по объединению нескольких файлов Excel не обсуждает этот очень важный шаг.)

Для сравнения вот мой бывший (неверный) M-код:

Файл-образец преобразования:

let
    Source = Excel.Workbook(Parameter1, null, true),
    #"Sample_Sheet" = Source{[Item="sample",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(#"Sample_Sheet", [PromoteAllScalars=true])
in
    #"Promoted Headers"

Контрольная работа:

let
    Source = Folder.Files("C:some folder path"),
    #"Filtered Hidden Files1" = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File", each #"Transform File"([Content])),
    #"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name", "Source.Name"}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name", "Transform File"}),
    #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", Table.ColumnNames(#"Transform File"(#"Sample File"))),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Table Column1",{{"Source.Name", type text}, {"ID", type text}, {"Name", type text}})
in
    #"Changed Type"

А вот мой новый (правильный) код:

Файл-образец преобразования:

let
    Source = Excel.Workbook(Parameter1, null, true),
    #"Removed Columns" = Table.RemoveColumns(Source,{"Name", "Item", "Kind", "Hidden"}),
    Data = #"Removed Columns"{0}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Data, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"ID", type text}, {"Name", type text}})
in
    #"Changed Type"

Контрольная работа:

let
    Source = Folder.Files("C:some folder path"),
    #"Filtered Hidden Files1" = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File", each #"Transform File"([Content])),
    #"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name", "Source.Name"}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name", "Transform File"}),
    #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", Table.ColumnNames(#"Transform File"(#"Sample File")))
in
    #"Expanded Table Column1"

Обратите внимание на шаг «Удаленные столбцы» в новом шаблоне запроса. Это «секретный соус» к ключевой проблеме. Также обратите внимание, что я сохранил все шаги по умолчанию после моего шага «Данные» (т.е. «Продвинутые заголовки» и «Измененный тип») в моем шаблоне запроса. Это потому, что все мои листы имеют одинаковую схему. Если бы это было не так, мне бы пришлось перенести эти шаги в обычный запрос.


5

skyline01
17 Окт 2019 в 17:39

I figured out the cause of my problem and the solution. The issue is that the row in my template query was being referenced incorrectly (i.e., the primary key between the template query and the regular query is wrong, and it has hard-coding of sheet names). To fix that, I had to remove all other columns in the template query table except the Data column, as described here. (It’s odd that no MS documentation on combining multiple Excel files discusses this very important step.)

For comparison, here is my former (incorrect) M code:

Transform Sample File:

let
    Source = Excel.Workbook(Parameter1, null, true),
    #"Sample_Sheet" = Source{[Item="sample",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(#"Sample_Sheet", [PromoteAllScalars=true])
in
    #"Promoted Headers"

test:

let
    Source = Folder.Files("C:some folder path"),
    #"Filtered Hidden Files1" = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File", each #"Transform File"([Content])),
    #"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name", "Source.Name"}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name", "Transform File"}),
    #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", Table.ColumnNames(#"Transform File"(#"Sample File"))),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Table Column1",{{"Source.Name", type text}, {"ID", type text}, {"Name", type text}})
in
    #"Changed Type"

And here is my new (correct) code:

Transform Sample File:

let
    Source = Excel.Workbook(Parameter1, null, true),
    #"Removed Columns" = Table.RemoveColumns(Source,{"Name", "Item", "Kind", "Hidden"}),
    Data = #"Removed Columns"{0}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Data, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"ID", type text}, {"Name", type text}})
in
    #"Changed Type"

test:

let
    Source = Folder.Files("C:some folder path"),
    #"Filtered Hidden Files1" = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File", each #"Transform File"([Content])),
    #"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name", "Source.Name"}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name", "Transform File"}),
    #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", Table.ColumnNames(#"Transform File"(#"Sample File")))
in
    #"Expanded Table Column1"

Notice the ‘Removed Columns’ step in the new template query. This is the «secret sauce» to the key problem. Also notice that I kept all default steps after my ‘Data’ step (i.e., ‘Promoted Headers’ and ‘Changed Type’) in my template query. This is because all of my sheets have the same schema. If this weren’t true, then I would need to move those steps to the regular query.

Обработка ошибок в Power Query с помощью попытки в противном случае — советы и рекомендации по Power BI №32

Я пытаюсь загрузить (объединить) несколько файлов Excel в Power BI (версия от октября 2019 г.). В каждом файле всего 1 лист. Каждый лист имеет 1 диапазон, и каждый диапазон имеет одинаковую схему для всех файлов. (Хотя названия листов разные.) Имя образца листа — «200704».

Вот мои шаги:

  1. Получить данные папку подключить
  2. укажите путь к папке
  3. Объединить и загрузить
  4. выберите один из файлов в качестве моего файла образца; щелкните имя файла как мой Параметр1; нажмите ОК

После того, как я нажму «ОК», курсор немного покрутится, а затем остановится. Ничего не произошло. Итак, я перехожу в Edit Queries Edit Queries. В моем запросе данных есть предупреждающий символ, который гласит:

Произошла ошибка в запросе «Преобразовать файл». Expression.Error: ключ не соответствует ни одной строке в таблице.

Подробности: Ключ = Элемент = 200704 Вид = Лист Таблица = [Таблица]

Как мне исправить эту ошибку?

Если это поможет, Power BI сгенерирует для меня 5 запросов со следующей структурой:

  • Преобразовать файл из данных [2]
  • Вспомогательные запросы [3]
  • Параметр1 (образец файла)
  • Образец файла
  • Преобразовать файл
  • Файл-образец преобразования
  • Другие запросы [1]
  • данные

Интересно, что если это помогает диагностировать проблему, если я установил образец файла = Первый файл или если я вручную установил образец файла для своего первого файла, в диалоговом окне выдается следующая ошибка, но она не показывает, какой запрос ошибочен. когда я пытаюсь просмотреть / отредактировать запрос.

Не удалось сохранить изменения на сервере. Возвращена ошибка: «Ошибка OLE DB или ODBC: [Expression.Error] Ключ не соответствует ни одной строке в таблице ..».

И, конечно же, когда я пытаюсь загрузить этот файл (или любой файл в папке, если на то пошло) индивидуально (через соединение с Excel), он загружается успешно. Итак, что-то должно быть не так с кодом M в моем подключении к папке.

  • Вы пытались выяснить, есть ли что-нибудь в вашем 200704 лист отличается от любых других листов в папке? Структура, форматирование и т. Д.

Я выяснил причину своей проблемы и решение. Проблема в том, что на строку в моем запросе шаблона ссылались неправильно (т.е. первичный ключ между запросом шаблона и обычным запросом неверен, и в нем жестко заданы имена листов). Чтобы исправить это, мне пришлось удалить все другие столбцы в таблице запроса шаблона, кроме столбца данных, как описано здесь. (Странно, что никакой документации MS по объединению нескольких файлов Excel не обсуждает этот очень важный шаг.)

Для сравнения вот мой бывший (неверный) M-код:

Файл-образец преобразования:

let Source = Excel.Workbook(Parameter1, null, true), #'Sample_Sheet' = Source{[Item='sample',Kind='Sheet']}[Data], #'Promoted Headers' = Table.PromoteHeaders(#'Sample_Sheet', [PromoteAllScalars=true]) in #'Promoted Headers' 

контрольная работа:

let Source = Folder.Files('C:some folder path'), #'Filtered Hidden Files1' = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true), #'Invoke Custom Function1' = Table.AddColumn(#'Filtered Hidden Files1', 'Transform File', each #'Transform File'([Content])), #'Renamed Columns1' = Table.RenameColumns(#'Invoke Custom Function1', {'Name', 'Source.Name'}), #'Removed Other Columns1' = Table.SelectColumns(#'Renamed Columns1', {'Source.Name', 'Transform File'}), #'Expanded Table Column1' = Table.ExpandTableColumn(#'Removed Other Columns1', 'Transform File', Table.ColumnNames(#'Transform File'(#'Sample File'))), #'Changed Type' = Table.TransformColumnTypes(#'Expanded Table Column1',{{'Source.Name', type text}, {'ID', type text}, {'Name', type text}}) in #'Changed Type' 

А вот мой новый (правильный) код:

Файл-образец преобразования:

let Source = Excel.Workbook(Parameter1, null, true), #'Removed Columns' = Table.RemoveColumns(Source,{'Name', 'Item', 'Kind', 'Hidden'}), Data = #'Removed Columns'{0}[Data], #'Promoted Headers' = Table.PromoteHeaders(Data, [PromoteAllScalars=true]), #'Changed Type' = Table.TransformColumnTypes(#'Promoted Headers',{{'ID', type text}, {'Name', type text}}) in #'Changed Type' 

контрольная работа:

let Source = Folder.Files('C:some folder path'), #'Filtered Hidden Files1' = Table.SelectRows(Source, each [Attributes]?[Hidden]? <> true), #'Invoke Custom Function1' = Table.AddColumn(#'Filtered Hidden Files1', 'Transform File', each #'Transform File'([Content])), #'Renamed Columns1' = Table.RenameColumns(#'Invoke Custom Function1', {'Name', 'Source.Name'}), #'Removed Other Columns1' = Table.SelectColumns(#'Renamed Columns1', {'Source.Name', 'Transform File'}), #'Expanded Table Column1' = Table.ExpandTableColumn(#'Removed Other Columns1', 'Transform File', Table.ColumnNames(#'Transform File'(#'Sample File'))) in #'Expanded Table Column1' 

Обратите внимание на шаг «Удаленные столбцы» в новом шаблоне запроса. Это «секретный соус» к ключевой проблеме. Также обратите внимание, что я сохранил все шаги по умолчанию после моего шага «Данные» (т.е. «Продвинутые заголовки» и «Измененный тип») в моем шаблоне запроса. Это потому, что все мои листы имеют одинаковую схему. Если бы это было не так, мне пришлось бы переместить эти шаги в обычный запрос.

  • Это решение требуется, когда в книгах используются разные имена листов. В противном случае достаточно простого «Объединить и загрузить».
  • У меня возникли проблемы с загрузкой данных из Smartsheet, и я использовал ваш ответ для навигации по своим справочным вопросам. Сначала я загрузил данные из нового расположения моих справочных таблиц. Во-вторых, я скопировал код навигации в существующие таблицы. Я получил сообщение об ошибке, спрашивающее, хочу ли я «отредактировать настройки» для источника данных, поскольку они не давали таблиц из исходной папки, из которой я загрузил справочные таблицы. Затем я смог получить доступ к возможности редактировать ссылку и просмотрел папки, чтобы найти расположение моих новых таблиц. В-третьих, я удалил все повторяющиеся таблицы, в результате

Tweet

Share

Link

Plus

Send

Send

Pin

Понравилась статья? Поделить с друзьями:
  • Export java to excel
  • Expression a sentence for each word
  • Export in pdf from word
  • Express your love in one word
  • Export in excel from sap