2014-09-08 2 views
2

В Excel Power Query я пытаюсь добавить столбец (Table.AddColumn) к запросу, где значение для каждой строки проверяет всю строку, чтобы увидеть, есть ли в каких-либо полях запись «Ошибка», но Я не понимаю, как это сделать. Я знаю, как проверять отдельные поля, используя «try ... other», но я не уверен, как вводить всю строку. В основном моя цель - иметь поле, указывающее, имеет ли ЛЮБОЕ другое поле в записи (т. Е. Строка) ошибку без жесткой клавиатуры каждого столбца в функцию, которая проверяет каждую ошибку.Ошибки Excel Power Query

Любая помощь приветствуется!

+0

Ждать, запрос? Вы ищете решение для запроса? Если да, отметьте свой вопрос более подходящим тегом. Кроме того, вы можете расширить свой вопрос. – StorymasterQ

+0

Я не могу добавить тег «Power Query», но поскольку он является надстройкой Excel, я думал, что это самый подходящий тег. – LoganTheSnowEater

+0

Хороший вопрос! Я создал тег. –

ответ

0

Я уверен, что вы можете сделать некоторые хитрости, присоединившись к Table.SelectRowsWithErrors.

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

0

Добавление к подходу Джеффа. Если вам нужны все строки с некоторым столбцом индикатора, например «errored» «Fine»

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

Добавить 2 запроса, чтобы получить окончательный результат.

Если вам нужны только ошибки, вы можете изменить исходный запрос и просто сохранить ошибочные записи.

0

Если вы строго хотите иметь такую ​​колонку, вы можете сделать следующие шаги:

let 
    Source = Table.ExpandListColumn(Table.FromRecords({[Name= {"Bob", "Jim", "Paul"}, Discount = .15] }), "Name"), 
    AddedErrClmn = Table.AddColumn(Source, "ErrClmn", each if [Name] = "Jim" then [Name]-[Discount] else [Discount]), 
    AddedIndexClmn = Table.AddIndexColumn(AddedErrClmn, "Index", 1, 1), 
    ErrorlessIndexes = Table.RemoveRowsWithErrors(AddedIndexClmn)[Index], 
    AddedCheckClmn = Table.AddColumn(AddedIndexClmn, "Validation", each if List.Contains(ErrorlessIndexes, [Index]) then "ok" else "Error") 
in 
    AddedCheckClmn 

Так вы добавляете индекс, чистую таблицу ошибок и сохранить полученные индексы в списке ErrorlessIndexes. Затем добавьте столбец с формулой: найдите этот список для индекса каждой строки. Если он найден, строка будет ОК. Если нет, он содержит ошибки.

Смежные вопросы