Ключу не соответствует ни одна строка в таблице excel power query

‎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!

‎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?

 

Собственно сабж.

P/S/ я конечно, пожалуй, не умру от переработки, ежели просмотрю глазками 20 файлов в папке. Но это же не наш метод )

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

И вам здрасьте.
Ставлю на то, что в одной из книг Лист, с которого забираете данные, называется не так, как во всех остальных.

Вот горшок пустой, он предмет простой…

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#3

10.03.2021 10:21:14

Цитата
PooHkrd написал:
Ставлю на то…

Ставка не сработала. Отныне вы несостоятельный должник. Прошу покинуть казино.
Ответ: структура файла иная.

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#4

10.03.2021 10:52:40

Цитата
Сергей Евдокимов написал:
структура файла иная.

Какое замечательное описание. Под это подходит и — файл содержит данные структуры png изображения, а в нём пытаются найти лист с заданным именем.  :D

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#5

10.03.2021 11:24:05

Цитата
Андрей VG написал:
Какое замечательное описание. Под это подходит и…

Совершенно верно, Андрей.
Но, на мой взгляд, «описание» было б немного не по теме, посему я и не стал вдаваться в детали. Вряд ли кому-либо это интересно. Другие столбцы, строки, другие данные на листе. А имя вкладки такое же. «Продажи».

Вот понять бы, как ошибку впредь находить по-умному. Например, указывал бы где запрос на файл с этой ошибкой…
Об этом тема )

Изменено: Сергей Евдокимов10.03.2021 11:27:31

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

Сергей Евдокимов, показали б вы еще запрос.

Вот горшок пустой, он предмет простой…

 

Xel

Пользователь

Сообщений: 393
Регистрация: 17.10.2014

#7

10.03.2021 12:14:37

Цитата
Сергей Евдокимов написал:
Например, указывал бы где запрос на файл с этой ошибкой…

С этой — это чтобы показывал, где просто что-то как-то не так?  
Давно есть решение:    

http://button.dekel.ru/

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#8

10.03.2021 13:10:29

Цитата
Xel написал:
Давно есть решение:     http://button.dekel.ru/

Точно можно кликать ? Я нынче мнительный стал, (аки недоверчевый)

Прикрепленные файлы

  • 2021-03-10_17-09-04.jpg (31.94 КБ)

Изменено: Сергей Евдокимов10.03.2021 13:20:26

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#9

10.03.2021 13:19:56

Цитата
PooHkrd написал:
Сергей Евдокимов , показали б вы еще запрос.

Запрос-то полностью рабочий. Проблема была в исходном файле (одном из множества). Убрал кривой файл, все заработало.

Я вообще про принцип. Как искать такие ошибки ? Чиво крутить, што жать ? (если дело не в запросе)

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

StepanWolkoff

Пользователь

Сообщений: 1252
Регистрация: 07.05.2015

#10

10.03.2021 14:00:12

Цитата
Сергей Евдокимов написал:
Я вообще про принцип. Как искать такие ошибки ? Чиво крутить, што жать ? (если дело не в запросе)

Если вы делаете загрузку однотипных файлов из папки с помощью функции, то на шаге добавления функции видно будет где ошибка.

Прикрепленные файлы

  • Ошибка.PNG (39.86 КБ)

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#11

01.10.2022 06:03:16

Цитата
написал:

Цитата
Сергей Евдокимов написал:
Я вообще про принцип. Как искать такие ошибки ? Чиво крутить, што жать ? (если дело не в запросе)

Если вы делаете загрузку однотипных файлов из папки с помощью функции, то на шаге добавления функции видно будет где ошибка.

Именно так и делаю. Где ошибка — вижу. А причину ее появления пронять/устранить — не могу.
_____________________________________________

Были файлы формата .xlsx  Все прекрасно работало.
Некоторые из них сохранил в формате .xlsb Появились ошибки.

Подскажите, плиз, советом добрым.
Как раскрутить ситуацию, чтобы понять почему ошибки? Каков алгоритм? Куда копать?

Скрин ошибки

ДОПОЛНЕНИЕ: всё, помощи не надо. Ошибка пропала. Один в один переписал функцию, но на основе файла .xlsb
Код такой же. Странно.

Изменено: Сергей Евдокимов01.10.2022 06:34:02

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

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

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

Я делал это много раз, прежде чем использовать эти шаги (у меня не английская версия, поэтому строки могут немного отличаться):

  1. Power Query > From fileLoad external data Раздел)> From folder
  2. В диалоговом окне со списком файлов Excel в папке Combine and load
  3. В окне Combine files выберите желаемое имя таблицы.

Теперь у меня обычно получается одна большая объединенная таблица. Но за один комплект я получаю [Expression.Error]: The key did not match any rows in the table

В окне редактора запросов есть несколько файлов, загруженных ОК, а затем он заканчивается целой строкой, заполненной Error.

введите описание изображения здесь

Это можно легко обойти, установив флажок «Пропускать файлы с ошибками» в step 3, но я хотел бы знать, какие файлы вызывают эту ошибку.

Как их найти?

Понравилась статья? Поделить с друзьями:
  • Кнд 1152017 в word
  • Ключики для word 2013
  • Кнд 1114237 скачать бланк word
  • Ключики для microsoft word 2010
  • Ключей продуктов word 2019