[[20210922093747]] 『パワークエリ 生年月日の入力値を変更』(じあ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『パワークエリ 生年月日の入力値を変更』(じあ)

パワークエリ初心者です。

パワークエリ内で生年月日に入力されている値を変更したいです。

現在、入力されている値は

3480525
4050114

のように3が昭和、4が平成といった数値+和歴で値が入力されています。

これを

19730525
19930114

のように西暦に変更したいです。

やり方をご教授お願いします。

< 使用 Excel:Office365、使用 OS:Windows10 >


 練習問題としてやってみました。
 カスタム関数とかにすれば、いいのかもしれませんが。

 let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    変更された型 = Table.TransformColumnTypes(ソース,{{"生年月日", Text.Type}}),
    挿入された最初の文字 = Table.AddColumn(変更された型, "最初の文字", each Text.Start(Text.From([生年月日], "ja-JP"), 1), type text),
    追加された条件列 = Table.AddColumn(挿入された最初の文字, "和暦文字", each if [最初の文字] = "3" then "S" else if [最初の文字] = "4" then "H" else if [最初の文字] = "5" then "R" else null),
    削除された列 = Table.RemoveColumns(追加された条件列,{"最初の文字"}),
    挿入された最後の文字 = Table.AddColumn(削除された列, "最後の文字", each Text.End(Text.From([生年月日], "ja-JP"), 6), type text),
    位置によって分割された列 = Table.SplitColumn(挿入された最後の文字, "最後の文字", Splitter.SplitTextByRepeatedLengths(2), {"最後の文字.1", "最後の文字.2", "最後の文字.3"}),
    変更された型1 = Table.TransformColumnTypes(位置によって分割された列,{{"最後の文字.1", Text.Type}, {"最後の文字.2", Text.Type}, {"最後の文字.3", Text.Type}}),
    結合された列 = Table.CombineColumns(変更された型1,{"最後の文字.1", "最後の文字.2", "最後の文字.3"},Combiner.CombineTextByDelimiter("/", QuoteStyle.None),"結合済み"),
    結合された列1 = Table.CombineColumns(結合された列,{"和暦文字", "結合済み"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"結合済み.1"),
    変更された型2 = Table.TransformColumnTypes(結合された列1,{{"結合済み.1", type date}}),
    変更された型3 = Table.TransformColumnTypes(変更された型2,{{"結合済み.1", type text}}),
    置き換えられた値 = Table.ReplaceValue(変更された型3,"/","",Replacer.ReplaceText,{"結合済み.1"})
 in
    置き換えられた値
(´・ω・`) 2021/09/22(水) 10:26

 関数を作ってみました
 どっちがいいのかはわかりません

 ------- クエリ  日付文字列に変換 -------
 let
     ソース = (数値文字列)=>
     let
         文字列 = Text.From(数値文字列,"ja-JP"),
         最初の数字 = Text.Start(文字列,1),
         和暦イニシャル={"","M","T","S","H","R"}{Number.FromText(最初の数字)},
         和暦文字列 = 和暦イニシャル & Text.Middle(文字列,1,2) & "/" & Text.Middle(文字列,3,2) & "/" & Text.Middle(文字列,5,2),
         西暦文字列 = DateTime.ToText(DateTime.From(和暦文字列,"ja-JP"),"yyyyMMdd")
     in 
         西暦文字列
 in
     ソース

 ------- クエリ テーブル1 -------
 let
     ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
     変更された型 = Table.TransformColumnTypes(ソース,{{"生年月日", Text.Type}}),
     呼び出されたカスタム関数 = Table.AddColumn(変更された型, "日付文字列に変換", each 日付文字列に変換([生年月日]))
 in
     呼び出されたカスタム関数
(´・ω・`) 2021/09/22(水) 15:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.