Страницы: 1
RSS
Ключу не соответствует ни одна строка в таблице., Помогите разобраться
 
Добрый день.
Помогите разобраться пожалуйста.
В PQ хочу организовать подключение к папке с файлами excel для сборки таблицы.
Файлы попадаются разные по количеству столбцов и строк.
Я импортировал один файл, как образец, затем преобразовал его в функцию и на основании это функции хотел преобразовать остальные файлы из папки, но по некоторым файлам, вместо таблиц получил ошибки: В запросе "" произошла ошибка. Expression.Error: Ключу не соответствует ни одна строка в таблице.
Сведения:
   Key=
       Item=Лист1
       Kind=Sheet
   Table=[Table]
Вопрос, это можно исправить?
 
Константин Каткаленко, проверьте среди источников, у вас там есть файл/ы с названием листа <> "Лист1".
Вот горшок пустой, он предмет простой...
 
Спасибо, помогло.
 
Здравствуйте! аналогичная ошибка выходит. Но только объяснение "Константин Каткаленко, проверьте среди источников, у вас там есть файл/ы с названием листа <> "Лист1"" мне не помогло. Что в итоге нужно сделали, чтобы ошибка исправилась?)))

у меня модель такая:
повер квери берет запрос данных из папки с файлами + из двух отдельных файлов Эксель (в них всего по одному листу с данными, который называется "Sheet1"). Я ссылки на них сделала динамическими через отдельную умную таблицу с адресами этих папок и файлов.
Все хорошо работает, но как только я выбираю другие файлы, то вылезает эта ошибка. Expression.Error: Ключу не соответствует ни одна строка в таблице.
Сведения:
  Key=
      Item=Лист1
      Kind=Sheet
  Table=[Table]

При этом новые выбранные папки нормально считаваются, запрос проходит. Ошибка чисто по файлам эксель
Изменено: anastasiya_pro - 14.11.2024 19:21:54
 
anastasiya_pro, ну и где здесь Item = "Лист1" ?
Пришелец-прораб.
 
отбой! разобралась.
Точнее методом тыка получилось. Но очень странно у одного файла в расширенном редакторе пришлось написать Лист1, а в другом Sheet1. Хотя в обоих файлах листы подписаны Sheet1. Но только так работает :sceptic:  странно конешшшно. Но ладно
 
Цитата
anastasiya_pro написал:
Хотя в обоих файлах листы подписаны Sheet1.
навряд ли это так, проверьте. У вас же на скрине лист называется Шит1, а не Лист1
 
Добавлю свой вопрос в эту тему. Импортирую файлы из папки в Power Query. Если в папке только файлы xlsx - все происходит без проблем. Пересохраняю один из импортируемых файлов в формат xls. Power Query выдает для этого файла ошибку на шаге Вызвать настраиваемую функцию.

Проверил операцию на другом (независимом) наборе данных, вот с этой странички. Та же ошибка.

Вопрос, есть ли возможность импортировать и объединять в одном запросе PQ файлы xls и xlsx?

PS Исходные файлы не прикладываю. Проблему можно проверить на любом наборе данных
Изменено: Graall - 18.01.2026 10:31:54
 
Graall, когда ваша "настраиваемая функция" читает содержимое файла, то она ожидает (это показано в тексте ошибки) таблицу вот такого вида

А чтение содержимого "legacy Excel" файла (xls) дает немного другую таблицу

причину надо искать вот в этом утверждении из документации
Цитата
Legacy ACE connector. Power Query reads legacy workbooks (such as .xls or .xlsb) using the Access Database Engine (or ACE) OLEDB provider. Because of this dependency, you might come across unexpected behaviors when importing legacy workbooks that don't occur when importing OpenXML workbooks (such as .xlsx). Here are some common examples.
Цитата
Graall написал:
Вопрос, есть ли возможность импортировать и объединять в одном запросе PQ файлы xls и xlsx?
есть. Надо подправить фильтр в вашей "пользовательской функции" с учетом вышесказанного.
Пришелец-прораб.
 
AlienSx, Вместо фильтрации по столбцам Item и Kind в функции, указал столбец Name. Все заработало.

Спасибо большое. Второй раз выручаете :-)

Наберусь наглости и задам еще вопрос. Какая разница между столбцами Name и Item? Посмотрел некоторые свои запросы; их содержимое везде одинаковое
 
Цитата
Graall написал:
Какая разница между столбцами Name и Item?
Item - это реальное имя объекта, как вы его задавали в файле. Эти имена могут быть неуникальными (например, имя листа и имя таблицы могут совпадать). Только комбинация Item и Kind является уникальной. Однако, PQ самостоятельно создает для каждого объекта уникальные имена Name. При совпадении каких-то имен в Item в Name к реальному имени объекта добавляется индекс, делая имя в Name уникальным. Как предугадать что получает индекс (скажем, имя листа или имя таблицы) - я не знаю. Но, может быть, в случае совпадения индексируются только имена таблиц / диапазонов или, наоборот, только имена листов. Это, наверное, можно выяснить экспериментальным путем.
Пришелец-прораб.
 
Цитата
написал:
Однако, PQ самостоятельно создает для каждого объекта уникальные имена Name
Спасибо! Запишу себе, что столбец Name содержит только уникальные записи
 
Цитата
AlienSx написал:
Как предугадать что получает индекс (скажем, имя листа или имя таблицы) - я не знаю
имя листа или таблицы не могут иметь в пределах одной книги одинаковые значения.
А вот имена - могут. Можно создать два одинаковых имени(например, "имя_диап") на двух разных листах, если области действия у них будут отличаться(одно имя имеет область действия "Лист1", второе - "Лист2"). И при этом можно добавить еще одно такое же имя, но уже с областью действия "Книга". И все три имени с одинаковыми названиями будут прекрасно уживаться в книге. Просто для имен с областью действия лист добавляется имя листа, на котором действует имя. Поэтому в PQ поле "Item" изначально не может содержать двух одинаковых значений для одной книги - но это из-за требований к структуре самой книги, PQ здесь по сути не при делах. И при этом в такой ситуации двум из трех имен в поле "Name" PQ добавит индекс: "имя_диап1" и "имя_диап2", т.к. Name тоже не может иметь дубликатов в пределах одной книги :) Это уже законы PQ. Порядок индексации напрямую зависит от того порядка, в каком имена расположены в диспетчере имен, независимо от того, в каком порядке имена создавались.

Для рассматриваемых выше трех одинаковых имен внутри одной книги запись будет примерно такой:
NameItem
имя_диапЛист1!имя_диап
имя_диап1Лист2!имя_диап
имя_диап2имя_диап
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
И все три имени с одинаковыми названиями будут прекрасно уживаться в книге.
про область действия - отличное уточнение. Спасибо!
Цитата
Дмитрий(The_Prist) Щербаков написал:
Поэтому в PQ поле "Item" изначально не может содержать двух одинаковых значений для одной книги
Если говорим про имена <> имя листа или имя таблицы, то это справедливо. А вот имя листа и имя таблицы все же могут совпадать. Поэтому столбец Item (в отличие от Name) может содержать дубликаты, о чем я и писал изначально.
Изменено: AlienSx - 18.01.2026 17:58:03
Пришелец-прораб.
 
Цитата
AlienSx написал:
имя листа и имя таблицы все же могут совпадать
а, не так понял. Да, в этом плане согласен полностью.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх