advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 13156 for 日付 (0.003 sec.)
[[20220719113839]]
#score: 2423
@digest: a3fb0f7f0bdc959ce2b6416bae5dce73
@id: 91853
@mdate: 2022-07-19T07:19:49Z
@size: 9012
@type: text/plain
#keywords: 毎連 (68588), 番= (52522), デク (41356), datetime (38627), 付= (33216), 品目 (29955), 目"} (29010), 化= (24636), タム (23784), 目= (23451), 番", (22564), 目", (22540), 化, (21970), ス"} (21846), ム" (21141), ト], (19478), 除, (18487), int64 (17401), table (16839), 付", (16569), 目毎 (16012), 除= (15514), ム", (15251), カス (14438), 連番 (13467), addindexcolumn (11293), transformcolumntypes (9894), 列削 (9846), expandtablecolumn (9529), プ化 (9475), selectcolumns (9185), type (8306)
『パワークエリ:データ型とエディタ上の表示が相違する現象』(まっち)
以下のテーブルがあったとします。 連番 品目 日付 1 あ 1912/7/29 2 あ 1912/7/30 3 あ 1926/12/24 4 あ 1926/12/25 5 あ 1989/1/7 6 い 1989/1/8 7 い 2019/4/30 8 い 2019/5/1 (1)やりたいこと 品目毎に連番を振った列を追加したい (2)やったこと let ソース = Excel.CurrentWorkbook(){[Name="テーブル3"]}[Content], グループ化 = Table.Group(ソース, {"品目"}, {{"カウント", each _, type table}}), 品目毎連番 = Table.AddColumn(グループ化, "カスタム", each Table.AddIndexColumn([カウント],"インデクス",1,1), type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]), 他の列削除 = Table.SelectColumns(品目毎連番,{"カスタム"}), #"展開された カスタム" = Table.ExpandTableColumn(他の列削除, "カスタム", {"連番", "品目", "日付", "インデクス"}, {"連番", "品目", "日付", "インデクス"}) in #"展開された カスタム" (3)結果 連番 品目 日付 インデクス 1 あ 1 2 あ 2 3 あ 3 4 あ 4 5 あ 5 6 い 1 7 い 2 8 い 3 日付がブランクになってしまう。 以前「データ型が一致していないとブランクになる」と教わり、 「品目毎連番 =」のところで、日付=Date.Typeと指定しているのですが、 「#"展開された カスタム" =」のところで展開すると、 日付列のデータ型「日付」となっているのですが、エディタ上は 日付/時刻のようにyyyy/MM/dd h:mm:ssとdatetime型のように表示されて いるのです。(タイトルのところはちゃんと日付型になっているのに・・・) 単なるバグであるならMS社にしかわからないのでしょうが、もし、ご存じの 方がいらっしゃいましたら、教えてください。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- 日付列は最初から最後までずっと日付時刻型のままです。 最初に日付型にしましょう また、前の質問であったように、グループ化すると、任意型に変わってしまうので... let ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"連番", Int64.Type},{"品目", type text},{"日付", type date}}), // 日付をDate型にする グループ化 = Table.Group(変更された型, {"品目"}, {{"カウント", each _, type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]}}), // ここで Tableの各列の型を指定 品目毎連番 = Table.AddColumn(グループ化, "カスタム", each Table.AddIndexColumn([カウント],"インデクス",1,1), type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]), 他の列削除 = Table.SelectColumns(品目毎連番,{"カスタム"}), #"展開された カスタム" = Table.ExpandTableColumn(他の列削除, "カスタム", {"連番", "品目", "日付"}, {"カスタム.連番", "カスタム.品目", "カスタム.日付"}) in #"展開された カスタム" (´・ω・`) 2022/07/19(火) 12:53 ---- ご返信ありがとうございます。 いただいたコードでやってみましたが、やはり日付はdatetime型になってしまし、 ワークシートに戻すと日付がブランクになってしまいました。 他の要因かもしれませんので、引き続き頑張ってみます。 ちなみに、返信を踏まえ、以下で実行してみましたが、だめでした。 let ソース = Excel.CurrentWorkbook(){[Name="テーブル3"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"連番", Int64.Type},{"品目", type text},{"日付", type date}}), // 日付をDate型にする グループ化 = Table.Group(ソース, {"品目"}, {{"カウント", each _, type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]}}), 品目毎連番 = Table.AddColumn(グループ化, "カスタム", each Table.AddIndexColumn([カウント],"インデクス",1,1), type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]), 他の列削除 = Table.SelectColumns(品目毎連番,{"カスタム"}), #"展開された カスタム" = Table.ExpandTableColumn(他の列削除, "カスタム", {"連番", "品目", "日付", "インデクス"}, {"連番", "品目", "日付", "インデクス"}) in #"展開された カスタム" (まっち) 2022/07/19(火) 13:07 ---- すみません。できました。 グループ化 = Table.Group(ソース, のソースを変更された型に直し損ねてました。 申し訳ございません。 (まっち) 2022/07/19(火) 13:09 ---- 余談です。 日付列は最初から最後までずっと日付時刻型のままなので、最初に 型の変更しなければならないことはわかったのですが、 [連番=Int64.Type, 品目=Text.Type,は、最初にanyのままでも グループ化の時にしていすれば、その型を維持してくれるのです。 日付だけは、違う動きしている感じでまだ気持ち悪いですが、 頑張って勉強していきます。 ありがとうございました。 (まっち) 2022/07/19(火) 13:16 ---- こんな感じで、 変更された型で、日付以外は、任意の型にしていても グループ化のところで、型をしていすれば、 その型を維持してくれる。 日付だけは、最初に型をしていしないといけないのはなぜなのか。 わかったら、展開してみたいと思います。(実害ないので趣味のレベルですが) let ソース = Excel.CurrentWorkbook(){[Name="テーブル3"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"日付", type date}}), // 日付をDate型にする グループ化 = Table.Group(変更された型, {"品目"}, {{"カウント", each _, type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]}}), 品目毎連番 = Table.AddColumn(グループ化, "カスタム", each Table.AddIndexColumn([カウント],"インデクス",1,1), type table [連番=Int64.Type, 品目=Text.Type, 日付=Date.Type]), 他の列削除 = Table.SelectColumns(品目毎連番,{"カスタム"}), #"展開された カスタム" = Table.ExpandTableColumn(他の列削除, "カスタム", {"連番", "品目", "日付", "インデクス"}, {"連番", "品目", "日付", "インデクス"}) in #"展開された カスタム" (まっち) 2022/07/19(火) 13:22 ---- グループ化するときに、連番の列の型をテキスト型で指定する Table.Group(変更された型, {"品目"}, {{"カウント", each _, type table [連番=Text.Type, 品目=Text.Type, 日付= Date.Type] }}) と、やっぱりうまくいかないわけですから、 「型を指定すると、自動で型変換してくれる」という認識が間違っているのだと思います なぜ「型の指定」=「自動型変換」と考えたのですか? (´・ω・`) 2022/07/19(火) 13:57 ---- ご連絡ありがとうございます。 私の頭の中では、以下の感じで考えていました。 ソースを取り込んだ時「連番=any」「品目=any」「日付=any」になる 型の変更をせずに グループ化のときに「連番=Text」「品目=Text」「日付=Date」に指定して展開すると 結果は、「連番=Text」「品目=Text」「日付=Datetime」になってしまいます。 最初に型の変更しなければだめですよとお教えいただいたので、 ソースを取り込んだ時「連番=any」「品目=any」「日付=any」になる 型の変更する「日付=Date」を実行 グループ化のときに「連番=Text」「品目=Text」「日付=Date」に指定して展開すると 結果は、「連番=Text」「品目=Text」「日付=Date」になるのです。 Int64.Type や Text.Typeの項目は、最初にTable.TransformColumnTypesでanyのままにしても そのあとのグループ化の時の型指定は維持してくれるのに、Dateだけは、最初にDate型にしないで グループ化でDate型と指定してもDatetimeになってしまうのはなぜなんだろうとがんばって考えて いるのです。 頭の中では、自動で型変換してくれるというのではなく、 なぜ、型を指定したのに勝手にdatetimeに変換されちゃうのだろう?です。 たぶん、私のあたまの中のどこかの認識が違うのでしょう。う〜ん。 (まっち) 2022/07/19(火) 15:03 ---- >Dateだけは、最初にDate型にしないでグループ化でDate型と指定してもDatetimeになってしまう 各列の左側のアイコンで、列の型が分かりますが、 Date型はカレンダーのアイコン 、DateTime型はカレンダー+時計のアイコンです。 let table = Table.FromRecords( { [Id = 1, Name = "あ",日付=#datetime(2022,7,20,0,0,0)], [Id = 2, Name = "い",日付=#datetime(2022,7,21,0,0,0)] }, type table [Id=Int64.Type, Name= Text.Type, 日付=Date.Type] ) in table というクエリのがあったとして、 table [Id=Int64.Type, Name= Text.Type, 日付=Date.Type] というのは、テーブル各列の型を指定しているわけです。 列のアイコンを確認してください。 日付列のアイコンは、カレンダーになってて、日付型であることになってませんか? 一方で、画面上はデータは時間まで表示されててDateTime型になっているように見えます 実際には、Id列のデータは 1,2 という整数で、Name列のデータは"あ","い"という文字列です。 この2つは、テーブルの列の型と実際のデータの型が一致してますので、問題ありません 日付の列は、Date型の列にDateTime型を入れようしてますので、ミスマッチです。 実際のデータ型とテーブルの列の型が一致してないとうまくいかないのだと思います。 画面上(これはあくまでプレビューです)はDateTime型が入っているように見えますが、 シートに読み込むとうまくいってません テーブルの列の型と実際のデータの型が一致するように、Table.TransformColumnTypesで型変換すればうまくいきます。 テーブルの列の型がDeta型だからといって、自動で型が一致するように型変換はしてくれないようです。 ということを申し上げています。 パワークエリは、結構型に厳格な印象です 文字列と数値の文字連結とかしっかりエラーだしてくれますし。 この件については、私からはこれ以上書くことはありません かなり私の推測というか私見が入ってます。 公式ドキュメントに何か書いてあればいいのですが。 (´・ω・`) 2022/07/19(火) 15:42 ---- ご連絡ありがとうございます。 テーブルの列の型と実際のデータの型が一致するように、Table.TransformColumnTypesで型変換していくようにしてまいります。 ご丁寧にご説明いただき、感謝いたします。 本当にありがとうございます。 (まっち) 2022/07/19(火) 16:19 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202207/20220719113839.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97032 documents and 608003 words.

訪問者:カウンタValid HTML 4.01 Transitional