从文本列中提取十进制数



我希望提取在列TXT的小时数,但由于文本结构不一致,PQ无法找到模式。我用过列的例子,但没有帮助。

是否有M码或者M码的组合可以使用?

样本数据:

<表类>TXT合同工w/e 26.06.21-在职9.5hrs- MNL合同工w/e02.07.21 - Physio- 19.34hrs- ARK合同工w/e 04.07.21 - RN 13.25- MNL合约职员w/e 04.07.21 -职业6- MNL合约职员w/e25.06.21 -照顾者12.5 - KLTL合同工w/e04.07.21 - RN 34hrs- KLTL合同工w/e04.07.21 - AIN 25.5hrs- KLTL合约员工w/e26.06.21-护理人员- 6hrs- MNL合同工w/e11.07.21 - 6hrs- MNL合约职员24.06.21 -护理人员8小时- ARK合同工w/e 16.06.21 - EN 5.50- GL合同工w/e 16.06.21 - RN 5.25- GL合同工w/e 11.07.21 - RN 22hrs- MNL合约职员w/e 11.07.21 -护理人员27.75- MNL合同工w/e04.07.21 - RN 22.25hrs- KLTL合同工w/e04.07.21 - AIN 69.67 - KLTL合同工w/e04.07.21 - RN 5.75- KLTL合同工w/e10.07.21 - RN 16hrs- KLTL合约职员w/e10.07.21-全职人员6hrs- KLTL合同工w/e11.07.21 - AIN 38.50- KLTL合同工w/e18.07.21 - RN 46-KLTL合同工w/e18.07.21 - AIN 17 - kltl合约职员w/e18.07.21 -清洁工24.50 - kltl合同工w/e18.07.21 - AIN 19.5- MNL合同工w/16.07.21 - RN23.25hrs - MNL合约职员WIE 25.07.21 -护理人员- 42.25小时- MNL合同工w/E 18.07.21 - AIN 24.5 - KLTL合同工WIE 18.07.21 -国内6- KLTL合同工w/e 13.07.21 - RN 6.25hrs- KLTL合同工w/e25.07.21 - RN 19.5- KLTL合同工w/e25.07.21 - AIN 13.5- KLTL合同工w/e18.07.21 - AIN 6hrs- ARK

你不需要正则表达式:

  1. 添加列,提取"-"后的文本
  2. 删除所有字母和剩余的"-">
  3. 将文本转换为数字
#"Inserted Text After Delimiter" = Table.AddColumn(
Source, 
"hours", 
each Text.AfterDelimiter([TXT], "-"), type text
),
#"Remove Letters" = Table.TransformColumns(
#"Inserted Text After Delimiter", 
{{"hours", each Text.Remove(_, {"A".."z", "-"})}}
),
#"Changed Type to number" = Table.TransformColumnTypes(
#"Remove Letters",
{{"hours", type number}}
)