这个题根据其要求分析:1:连续6个月B级(含)及以上的;
因为要求连续B级以上,所以可以先把1到12月份的数据合并成文本,然后根据CD去split,剩下的就只有包含AB的字符串了;
然后根据条件2:连续月份中,至少有一次连续3个月A级的
意思就是只要在剩下的字符串中筛选出包含“AAA”的,且字符串长度大于5的就可以了(条件1:连续6个月),字符串的长度就是连续的月数。
所以,用PQ解不难的,以下M语句中的源是指“部门,1月-12月” 这13列所在的数据区域:
- = #table( 2,
Table.ToList( 源, each { _{0},
Text.Length(
(List.Select(
Text.SplitAny( Text.Combine(List.Skip(_)),"CD"),
(x)=>Text.Length(x)>5
and
Text.Contains(x,"AAA") ) & {""} ) {0} ) }))
复制代码
|