[[20220715163502]] 『パワークエリ:西暦を和暦に変換するものを作成し』(まっち) ページの最後に飛ぶ

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

 

『パワークエリ:西暦を和暦に変換するものを作成しています』(まっち)

以下のテーブルがあったとして、
    日付    引算
1    1912/7/29 1867
2    1912/7/30 1911
3    1926/12/24 1911
4    1926/12/25 1925
5    1989/1/7 1925
6    1989/1/8 1988
7    2019/4/30 1988
8    2019/5/1 2018

(1)やりたいこと
「和暦変換」列と「和暦年数」列を追加したい
   日付 引算 和暦変換   和暦年数
1912/7/29 1867 明治   45
1912/7/30 1911 大正    1
1926/12/24 1911 大正   15
1926/12/25 1925 昭和   1
1989/1/7 1925 昭和   64
1989/1/8 1988 平成   1
2019/4/30 1988 平成   31
2019/5/1 2018 令和   1

(2)やったこと
let

    ソース = Excel.CurrentWorkbook(){[Name="テーブル3"]}[Content],
    変更された型 = Table.TransformColumnTypes(ソース,{{"日付", type date}, {"引算", Int64.Type}}),
    和暦変換 = Table.AddColumn(変更された型, "和暦変換", each if #date(1912,7,29)>=[日付] then "明治" else if #date(1926,12,24)>=[日付] then "大正" else if #date(1989,1,7)>=[日付] then "昭和" else if #date(2019,4,30)>=[日付] then "平成" else "令和", type text),
    和暦年数 = Table.AddColumn(和暦変換, "和暦年数", each if #date(1912,7,29)>=[日付] then Date.Year([日付])-1867 else if #date(1926,12,24)>=[日付] then Date.Year([日付])-1911 else if #date(1989,1,7)>=[日付] then Date.Year([日付])-1925 else if #date(2019,4,30)>=[日付] then Date.Year([日付])-1988 else Date.Year([日付])-2018, Text.Type)
in
    和暦年数

(3)結果、期待してることとの相違点
和暦変換は、無事に表示されるが、
和暦年数は、空白になる。(エディターでは数値が表示されているのに)

最終的には、[和暦変換]&[和暦年数]を作るため、
和暦年数=の最後に, Text.Typeがあると空白になる原因を探しています。

, Text.Typeをやらずに
Table.TransformColumnTypes(和暦年数,{{"和暦年数", type text}})
を追加して実行すれば、セルに表示されます。

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


 なんででしょうね?
  
 (d0 as any)=>(
    let
        d=Date.From(d0),
        era = if d>= #date(2019, 5, 1) then {"令和" , Text.From(Date.Year(d)-2018)} else 
              if d>= #date(1989, 1, 8) then {"平成" , Text.From(Date.Year(d)-1988)} else            
              if d>= #date(1926,12,25) then {"昭和" , Text.From(Date.Year(d)-1925)} else 
              if d>= #date(1912, 7,30) then {"大正" , Text.From(Date.Year(d)-1911)} else
                                            {"明治" , Text.From(Date.Year(d)-1867)}                                  
    in
        Text.Combine(era)
 ) 
(´・ω・`) 2022/07/15(金) 18:22  =>  8:52 ちょっと修正

 実験しました
    追加されたカスタム1 = Table.AddColumn(追加されたカスタム , "カスタム1", each "1" ,Int64.Type),   //読み込んだらブランク
    追加されたカスタム2 = Table.AddColumn(追加されたカスタム1, "カスタム2", each  1  ,Text.Type ),   //読み込んだらブランク
    追加されたカスタム3 = Table.AddColumn(追加されたカスタム2, "カスタム3", each "1" ,Text.Type ),   // OK
    追加されたカスタム4 = Table.AddColumn(追加されたカスタム3, "カスタム4", each  1  ,Int64.Type)   // OK

 型はちゃんと合わせないとだめだということのようです
(´・ω・`) 2022/07/16(土) 04:56

>最終的には、[和暦変換]&[和暦年数]を作るため、

読み込み先(ワークシート)のセル書式(表示形式)ではだめなのですか?

(マナ) 2022/07/16(土) 18:57


↑もしかしたら、以前にも同じことを確認したかもしれませんし、
たぶん、だめな理由があるのでしょうが、念のため。

(マナ) 2022/07/16(土) 19:34


ご連絡ありがとうございます。データ型で結構躓きます。
わかりやすいご回答ありがとうございます。
(相手にわかりやすい書き方の勉強になります。お恥ずかしい話・・・)

マナさま
 おっしゃるとおり、読み込み先(ワークシート)のセル書式(表示形式)で
やってしまえば簡単なのですが、
 利用部門より、「出力されるテキストデータはこれ!」という縛りがあり
四苦八苦しておるところです。

(まっち) 2022/07/19(火) 08:58


コメント返信:

[ 一覧(最新更新順) ]


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