Power Query中Text.Middle与Text.Range的区别及选型建议
Text.Middle 和 Text.Range 的区别与使用建议
在Power Query中,Text.Middle和Text.Range的核心功能完全一致——都是用于从指定文本中提取子字符串,日常使用中的行为没有差异:
Text.Middle("Hello, World", 7) // 返回 "World" Text.Range("Hello, World", 7) // 返回 "World" Text.Middle("Hello, World", 0, 5) // 返回 "Hello" Text.Range("Hello, World", 0, 5) // 返回 "Hello"
从函数定义来看,二者仅参数命名有区别(Text.Middle的第二个参数叫start,Text.Range的叫offset),但参数的作用、可选性以及返回结果完全相同:
Text.Middle(text as nullable text, start as number, optional count as nullable number) as nullable text Text.Range(text as nullable text, offset as number, optional count as nullable number) as nullable text
二者的本质区别
它们的差异主要来自历史迭代和命名规范:
Text.Middle是Power Query早期版本就存在的函数,命名更偏向“从文本中间截取”的语义;Text.Range是后续版本新增的函数,命名更贴合通用编程语言的习惯(比如类似C#的Substring、JavaScript的slice),用“范围(Range)”来描述子字符串的提取逻辑,语义更直观。
优先选择哪个?
- 如果是维护已有旧代码,直接保留原函数即可,无需替换;
- 编写新代码时,更推荐使用
Text.Range——它的命名更符合通用编程语境,团队协作时更容易被理解; - 若你或团队习惯
Text.Middle的命名,完全可以继续使用,二者在功能上没有任何差异。
内容的提问来源于stack exchange,提问作者Stevoisiak
相关产品推荐
相关产品推荐

