[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『パワークエリ エラー値によるifでの分岐 』(まっち)
ある列にエラー値と正常な値が混合しています。
?@エラー値の場合は、nullにしたい。
?A正常な値の場合は、1なら処理1、2なら処理2という感じで処理を分岐したいのです。
try otherwiseであれば、
try [ある列] otherwise null で、?@までできたのですが、?Aも処理したいと考えています。
if [ある列]= ***** then null else if [ある列]= 1 then 処理1 else 処理2
のような感じにしたいのですが、可能でしょうか。
最悪Table.ReplaceErrorValuesで、エラー値を変換するしかないのでしょうか。
(ユーザからエラー値はそのまま残したいとの要望(何に使うんじゃ!))
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(マナ) 2022/06/28(火) 17:48
>エラー値はそのまま残したい
置換しなければよいだけ??
(マナ) 2022/06/28(火) 20:13
if [ある列] = 1 then 処理1 else if [ある列] <> 1 then 処理2 else [ある列]
(マナ) 2022/06/28(火) 21:32
Errorって、Excelに読み込んだら空白になりますよね? 残しておいてもどうしようもないので、nullに置換すればいいのでは? (´・ω・`) 2022/06/28(火) 22:01
ある列には、#N/Aと日付データが入っていて、そのテーブルをパワークエリに取り込むと
#N/Aのところは、Errorになります。
パワークエリで新しい列を追加して、日付だったら「対象外」Errorだったら空白にするのが
最終目標です。
もともとのテーブルの#N/Aをなんかの文字列に変換させてとお願いしても何かに使うらしくダメと・・。
現在、入っているデータがErrorだったらという分岐の方法を模索中です。
(利用者は、なんでエクセルを紙のようにつかいたがるんでしょうね!ほんとに(愚痴失礼しました))
(まっち) 2022/06/29(水) 10:46
let ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"ID", Int64.Type}, {"ある列", type any}}), 追加されたカスタム = Table.AddColumn(変更された型, "カスタム", each let test = try [ある列] , ret = if test[HasError] then null else let test2 = try Date.From([ある列]) , ret2 = if test2[HasError] then [ある列] else "対象外" in ret2 in ret ) in 追加されたカスタム (´・ω・`) 2022/06/29(水) 11:24
if (try [ある列])[HasError] then "対象" else "対象外"
でいいと思います。
(d-q-t-p) 2022/06/29(水) 14:11
>if (try [ある列])[HasError] then "対象" else "対象外 なるほどです。
では、こうなりますかね
= Table.AddColumn(変更された型, "カスタム", each if (try [ある列])[HasError] then null else if (try Date.From([ある列]))[HasError] then "対象" else "対象外(日付)" ) (´・ω・`) 2022/06/29(水) 14:26
(利用部門から「関数とかなら簡単にできるものが、なんでこんなに時間かかるんだ!」と怒られると心が折れます。)
(まっち) 2022/06/30(木) 08:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.