let
ソース = Excel.Workbook(File.Contents("C:………\出身地.xlsx"), null, true),
出身地_Table = ソース{[Item="出身地",Kind="Table"]}[Data],
変更された型 = Table.TransformColumnTypes(出身地_Table,{{"出身地", type text}}),
Add = Table.TransformColumns(変更された型, {"出身地", each Text.Start(_,
if List.Contains({"街道","宰府","諸県"},Text.Middle(_,1,2)) then 0 else
if Text.Contains("都道府県",Text.Middle(_,2,1)) then 3 else
if Text.Middle(_,3,1)="県" then 4 else 0)})
in
Add
以下、余計な情報です。
●現在のクエリ内で関数を定義する方法
let
Ken = (t as text) => Text.Start(t,
if List.Contains({"街道","宰府","諸県"},Text.Middle(t,1,2)) then 0 else
if Text.Contains("都道府県",Text.Middle(t,2,1)) then 3 else
if Text.Middle(t,3,1)="県" then 4 else 0),
ソース = Excel.Workbook(File.Contents("C:………\出身地.xlsx"), null, true),
出身地_Table = ソース{[Item="出身地",Kind="Table"]}[Data],
変更された型 = Table.TransformColumnTypes(出身地_Table,{{"出身地", type text}}),
Add = Table.TransformColumns(変更された型, {"出身地", each Ken(_)})
in
Add
●別にカスタム関数を作成して呼び出す方法
関数の作成→新しい関数名 Ken →詳細エディターで
let
s = (t as text) => Text.Start(t,
if List.Contains({"街道","宰府","諸県"},Text.Middle(t,1,2)) then 0 else
if Text.Contains("都道府県",Text.Middle(t,2,1)) then 3 else
if Text.Middle(t,3,1)="県" then 4 else 0)
in
s
と定義してから、現在のクエリをこんな感じで書き換える。
let
ソース = Excel.Workbook(File.Contents("C:………\出身地.xlsx"), null, true),
出身地_Table = ソース{[Item="出身地",Kind="Table"]}[Data],
変更された型 = Table.TransformColumnTypes(出身地_Table,{{"出身地", type text}}),
Add = Table.TransformColumns(変更された型, {"出身地", each Ken(_)})
in
Add
...無駄が多い。