日付のデータは含まれてなく、加工前と記載したキーワードのみが、CSVでファイル出力されています。
csv
1列名
22022101
32022102
42022103
52022104
62022105
72022106
82022111
92022112
102022113
112022114
122022115
とりあえずこういうファイルがShift-JISで保存されているとして、
おおまかな仕組みとしては下記のような形でよろしいのではないかと。
(1) 加工前の値を text 型として扱い、[年月]と[週]に分割する。
(2) [年月]を date 型のデータに変換し、その日付が含まれる年月の最終週(週の数)を取得する。
(3) [週]を number 型のデータとして扱い、その値が「年月の最終週(上記 2 の結果)を 2 で割った結果」以下なら "1H"、そうではなければ "2H" という文字列を取得する。
(4) [月初日]の値をフォーマットした文字列と上記 3 の結果を文字列結合する。
PowerQuery
1let
2 Source = Csv.Document(File.Contents("C:\FolderName\FileName.csv"),[Delimiter=",", Encoding=932, QuoteStyle=QuoteStyle.None]),
3 PromoteHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
4 ChangedType = Table.TransformColumnTypes(PromoteHeaders,{{"列名", type text}}),
5 GetYearAndMonth = Table.AddColumn(ChangedType, "年月", each Text.Middle([列名],0,6)),
6 GetWeek = Table.AddColumn(GetYearAndMonth, "週", each Number.FromText(Text.Middle([列名],6,1))),
7 GetStartOfMonth = Table.AddColumn(GetWeek, "月初日", each Date.FromText([年月], [Format="yyyyMM", Culture="ja-JP"])),
8 GetEndOfMonth = Table.AddColumn(GetStartOfMonth, "月末日", each Date.EndOfMonth([月初日])),
9 GetWeekOfMonth = Table.AddColumn(GetEndOfMonth, "月の最終週", each Date.WeekOfMonth([月末日])),
10 GetPeriodOfHelfMonth = Table.AddColumn(GetWeekOfMonth, "月半期区分", each if [週] <= ([月の最終週] / 2) then "1H" else "2H"),
11 GetResult = Table.AddColumn(GetPeriodOfHelfMonth, "月と月半期区分を結合", each Date.ToText([月初日],[Format="MM月", Culture="ja-JP"]) & [月半期区分])
12in
13 GetResult
ファイルパスや列名などについては適宜修正して下さい。