[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別シートで勤務表の配置』(さくら)
A B C D 1 月日 5/1 5/2 5/3 つづく 2 A 田中 佐藤 3 B/C 山田/佐藤 田中/山田
別シート A B C D 1 5月 1 2 3 つづく 2 土 日 月 3 田中 ○ × ○ 4 A B 5 山田 ○ × ○ 6 B C 7 佐藤 ○ × ○ 8 C A 別シートにある○が出勤日でその下にあるABCが配置表です。 上のシートのB2B3にABCに当てはまる人名を振り分けたいです。 VLOOKUP関数がいいのかなと思いを試しましたがエラーが出てしまいます。 できたら同じセルでスラッシュを使いたいですが他の方法でも大丈夫です。 どうか教えてくださいませ。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
2つに分けたセルでないほうがいいのかなと思ったのとBとCの配置の名前を分けるためでこだわってません。(さくら) (さくら) 2021/01/23(土) 21:32
シート名が不明ですが
別シートがSheet2として
B2
=IFERROR(INDEX(Sheet2!$A$3:$A$8,MATCH("A",Sheet2!B$4:B$8,0)),"")
B3
=IFERROR(INDEX(Sheet2!$A$3:$A$8,MATCH("B",Sheet2!B$4:B$8,0))&"/"&INDEX(Sheet2!$A$3:$A$8,MATCH("C",Sheet2!B$4:B$8,0)),"")
(はまちゃん) 2021/01/23(土) 21:42
月日 5/1 (土) 5/2 (日) 5/3 (月) 5/4 (火) A 田中 山田 山田 B/C 山田/佐藤 佐藤/佐藤 田中/山田 佐藤/佐藤
5月 1 2 3 4 土 日 月 火 田中 ○ ○ ○ ○ A C B C 山田 ○ ○ ○ ○ B A C A 佐藤 ○ ○ ○ ○ C B A B
はまちゃんさん、ありがとうございます。同じシートで試しに当てはめてみたら上記のように空欄ででたり、同じ人が表記されたりしますが、なにが悪さしているのか不明です。(さくら)
(さくら) 2021/01/24(日) 12:16
1)別シートは、テーブルに設定してください
テーブル名:配置入力
2)別途、こんなテーブルを準備してください
テーブル名:分類
勤務 配置 A A B B/C C B/C
3)クエリ名:分類
読み込み先:接続専用
let
ソース = Excel.CurrentWorkbook(){[Name="分類"]}[Content],
変更された型 = Table.TransformColumnTypes(ソース,{{"勤務", type text}, {"配置", type text}})
in
変更された型
4)クエリ名:勤務表出力
読み込み先:テーブル
let
ソース = Excel.CurrentWorkbook(){[Name="配置入力"]}[Content],
列名 = Table.ColumnNames(ソース),
月 = 列名{0},
#"名前が変更された列 " = Table.RenameColumns(ソース,{{月, "担当"}}),
下方向へコピー済み = Table.FillDown(#"名前が変更された列 ",{"担当"}),
フィルターされた行 = Table.SelectRows(下方向へコピー済み, each [担当] <> null and [担当] <> ""),
ピボット解除された他の列 = Table.UnpivotOtherColumns(フィルターされた行, {"担当"}, "属性", "値"),
フィルターされた行1 = Table.SelectRows(ピボット解除された他の列, each [値] <> "○"),
マージされたクエリ数 = Table.NestedJoin(フィルターされた行1, {"値"}, 分類, {"勤務"}, "分類", JoinKind.LeftOuter),
#"展開された 分類" = Table.ExpandTableColumn(マージされたクエリ数, "分類", {"配置"}, {"配置"}),
置き換えられた値 = Table.ReplaceValue(#"展開された 分類",null,"×",Replacer.ReplaceValue,{"配置"}),
並べ替えられた行 = Table.Sort(置き換えられた値,{{"値", Order.Ascending}}),
グループ化された行 = Table.Group(並べ替えられた行, {"属性", "配置"}, {{"group", each _, type table [担当=text, 属性=text, 値=text, 配置=nullable text]}}),
追加されたカスタム = Table.AddColumn(グループ化された行, "カスタム", each Text.Combine([group][担当],"/")),
削除された列 = Table.RemoveColumns(追加されたカスタム,{"group"}),
並べ替えられた行1 = Table.Sort(削除された列,{{"属性", Order.Ascending}}),
追加されたカスタム1 = Table.AddColumn(並べ替えられた行1, "カスタム.1", each 月 & [属性]),
置き換えられた値1 = Table.ReplaceValue(追加されたカスタム1,"月","/",Replacer.ReplaceText,{"カスタム.1"}),
削除された列1 = Table.RemoveColumns(置き換えられた値1,{"属性"}),
ピボットされた列 = Table.Pivot(削除された列1, List.Distinct(削除された列1[カスタム.1]), "カスタム.1", "カスタム"),
フィルターされた行2 = Table.SelectRows(ピボットされた列, each [配置] <> "×")
in
フィルターされた行2
(マナ) 2021/01/24(日) 13:33
マナさん、返信ありがとうございます。 Power Queryの記事を見て便利になったと知りましたが、まだまだ自分のレベルでは理解できないのでお手上げです。 勤務配置は手入力を続けたと思います。 活用できずにすみません。 余裕ができたら勉強して活用したいと思います。(さくら) (さくら) 2021/01/24(日) 15:25
>同じシートで試しに当てはめてみたら 最初(別のシート)は検索範囲の田中さんはA3ですよね 同じシートだとセル範囲(田中の位置)が変われば、数式のセル範囲も変わりますよね それに合わせた数式に変えると出来るのではないのかな? (はまちゃん) 2021/01/24(日) 15:56
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.