[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【PowerPivot】特定の文字が入っていたら指定した値を返す』(みん)
パワークエリとパワーピボットを使ってデータ集計などをしています。
元データの[担当者]列のチーム名を区別しチーム毎の売上を抽出したいのですが、区切り記号なども入っていないデータやチーム名の記載がなく名前しか記載のないものが不揃いに有るため、クエリエディタ上での編集が思いつかず、メジャーDAX関数?等でやるしかないのかな と行き詰まってしまい、ご教示いただけましたら幸いです。
担当者マスタは以後の処理に必要になってくるかと思い作成しております。
★目的:パワーピボットでチーム毎に売上を抽出したい
→担当者はフィルターにかけたいです
元データ(クエリ接続のみ)
[担当者コード] [担当者] [売上]
200 チームA 佐藤 5000
200 チームA田中 1000
200 チームB 宮本 6000
200 宮本 9500
500 チームC大島 12000
500 大島 300
・ ・ ・
・ ・ ・
・ ・ ・ 20000行程度
担当者マスタ(クエリ接続のみ)
[担当者コード] [チーム] [氏名]
200 チームA 佐藤
200 チームA 田中
200 チームB 宮本
500 チームC 大島
・ ・ ・
・ ・ ・
関数ですとIF、COUNTA、LOOKUPなどで出せていたのですがこのようなデータが増えることから楽に集計できないかと思い検討しています。
パワークエリやパワーピボットにもワイルドカードはあるのでしょうか。
パワークエリ、ピボットも始めたばかりなので見当違いな内容でしたら申し訳ありません。
VBAは会社の関係上使用できませんので考えておりません、、、
よろしくお願いいたします
< 使用 Excel:Excel2019、使用 OS:Windows10 >
Power Queryだけで目的のことを実現できませんか。
(こんな提案する理由が、単に、わたしのPCでは
Power Pivotを使えないというだけのですが)
・クエリのマージ
・グループ化
を使うことになります。
(マナ) 2021/07/02(金) 17:30
また、それをマクロなどを使わずに何とかするのも難しいでしょう。
ツール以前のデータ整備の問題に見えます。
(γ) 2021/07/02(金) 17:52
この方針を変更して
[担当者コード]をキーに、
担当者マスタから[チーム]を取得してください。
>関数ですとIF、COUNTA、LOOKUPなどで出せていたのですが
ただし、↑これが、よく理解できません。
関数なら普通はVLOOKUPのような気がするので、
わたしが質問内容を誤解しているのかもしれません。
(マナ) 2021/07/02(金) 18:54
[担当者]に、チームC大島 と 大島
があった場合に、
大島は、チームCと判定したいのでしょうが、
他のチームに大島がいないとは保証できませんよね。
(マナ) 2021/07/03(土) 08:21
担当者マスタを作成したい
という意味と解釈すると
1)チーム名はA〜Zしかない
2)他のチームに、同じ名前かつ同じ担当者コードは存在しない
の条件つきで、トライしてみました。
let ソース = Excel.CurrentWorkbook(){[Name="元データ"]}[Content], 変更された型 = Table.TransformColumnTypes(ソース,{{"担当者コード", Int64.Type}, {"担当者", type text}, {"売上", Int64.Type}}), 文字の移行による列の分割 = Table.SplitColumn(変更された型, "担当者", Splitter.SplitTextByCharacterTransition({"A".."Z"}, (c) => not List.Contains({"A".."Z"}, c)), {"担当者.1", "担当者.2"}), 追加された条件列 = Table.AddColumn(文字の移行による列の分割, "担当者", each if [担当者.2] = null then [担当者.1] else [担当者.2]), 追加された条件列1 = Table.AddColumn(追加された条件列, "チーム", each if [担当者.2] = null then null else [担当者.1]), 削除された他の列 = Table.SelectColumns(追加された条件列1,{"担当者コード", "担当者", "チーム"}), #"トリム テキスト" = Table.TransformColumns(削除された他の列,{{"担当者", Text.Trim, type text}, {"チーム", Text.Trim, type text}}), 削除された重複 = Table.Distinct(#"トリム テキスト"), グループ化された行 = Table.Group(削除された重複, {"担当者コード", "担当者"}, {{"group", each _, type table [担当者コード=nullable number, 担当者=text, チーム=nullable text]}}), 追加されたカスタム = Table.AddColumn(グループ化された行, "チーム", each Text.Combine([group][チーム])), 削除された他の列1 = Table.SelectColumns(追加されたカスタム,{"担当者コード", "チーム", "担当者"}) in 削除された他の列1
(マナ) 2021/07/03(土) 08:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.