只需查看可用的字符函数列表联合管理计划公式编辑器。

不是有人在数,但那是 42 个函数! 不用说,如果您有一个字符列并希望以某种方式更改它,JMP 可能有一个函数可以为您完成此操作。
但请注意,其中九个函数全部(或大部分)与提取字符值的某些部分有关。 诚然,这是最常见的操作之一——提取较大字符串的某些部分。 这称为子字符串。
最明显的功能是子字符串()函数,但此函数要求您确切知道您感兴趣的部分位于较大字符串中的位置。 这也意味着您想要的部分必须位于每个字符串中的相同位置。
这就是为什么我喜欢单词()功能。 它非常灵活并且按照我的想法工作。
这单词()函数采用两个必需参数和一个可选参数。
Word(n, "文本", <"分隔符">)
这单词()函数除以文本根据分隔符您指定并返回 n th单词。 如果您不指定分隔符参数,那么默认分隔符与我们用于分隔句子中单词的分隔符相同:空格。
作为示例,请考虑以下天数列:
| 天 |
|---|
| 12月6日 |
| 12月16日 |
| 9月28日 |
| 5月19日 |
| 9月29日 |
| 9 月 11 日 |
| 3月14日 |
| 11 月 13 日 |
| 10 月 27 日 |
| 1 月 7 日 |
分隔月份很容易单词()功能。 您只需要每个字符串的第一个单词。
字(1,日)
| 月 |
|---|
| 十二月 |
| 十二月 |
| 九月 |
| 可能 |
| 九月 |
| 九月 |
| 行进 |
| 十一月 |
| 十月 |
| 一月 |
这在许多情况下都很有效,但是当您考虑使用其他字符作为分隔符将字符串划分为“单词”时,真正的力量就出现了。
这是另一个列表。 这些是地点。 这次,纬度和经度嵌入在城市名称后面的字符串中。
| 地点 |
|---|
| 1600 NEW Bern AVE 罗利, NC [35.779892815000494, -78.61572674699966] |
| 3800 NEW Bern AVE 罗利, NC [35.79777009600048, -78.57633099599968] |
| 3200 CAPITAL BLVD 罗利, 北卡罗来纳州 [35.822875239000496, -78.58848179699964] |
| 700 VARDAMAN ST 罗利, 北卡罗来纳州 [35.77016025800049, -78.61995064499968] |
| 2900 BASSWOOD DR 罗利, 北卡罗来纳州 [35.74121031600049, -78.60477047599966] |
| 1300 CURFMAN ST 罗利, 北卡罗来纳州 [35.76619700500049, -78.65143264899967] |
| 8500 SWARTHMORE DR 罗利, 北卡罗来纳州 [35.89068092800045, -78.60012101699965] |
| 1200 CANYON ROCK CT 罗利, 北卡罗来纳州 [35.76156160400046, -78.55683519199965] |
| 800 GREENWICH ST 罗利, 北卡罗来纳州 [35.768321829000456, -78.59393748999963] |
| 300 ROSELLE CT 罗利, 北卡罗来纳州 [35.788000157000454, -78.58367178499964] |
在另一列中包含纬度和经度会很有用。
如果您将方括号视为分隔符,那么这非常简单。 你只想要第二个“词”。
字(2,位置,“[]”)
现在您已经有一列 (LatLong) 字符串,其中纬度和经度以逗号和空格分隔。
| 经纬度 |
|---|
| 35.779892815000494,-78.61572674699966 |
| 35.79777009600048,-78.57633099599968 |
| 35.822875239000496,-78.58848179699964 |
| 35.77016025800049,-78.61995064499968 |
| 35.74121031600049,-78.60477047599966 |
| 35.76619700500049,-78.65143264899967 |
| 35.89068092800045,-78.60012101699965 |
| 35.76156160400046,-78.55683519199965 |
这单词()函数再次来拯救。 这次,我们想使用逗号和空格作为分隔符。 如果我们只使用逗号,那么经度字符串的开头将有一个空格。 使用这两个分隔符会得到没有空格的字符串。
纬度
字(1,经纬度,“,”)
经度
字(2,经纬度,“,”)
这些应该通过使用将它们转换为数字来进一步清理数()函数,但这是另一篇文章的练习。
发挥优势的关键单词()功能是将字符串视为“句子”并抽象地思考如何选择分隔符。
这是最后一个例子。 假设您有一列批号 (LotNo),中间嵌入了名称:
| 批号 |
|---|
| A30941ALTE69073172 |
| A82886ILEAK51521781 |
| A54715XSURVXC88997379 |
| A7860BATTBC97523479 |
| A79004ILEAK52159080 |
| A59508ABAEG58962051 |
| A44172ILEAK28255713 |
| A21319XSURVXC88014800 |
| A58308BATTBC49519851 |
| A19412C83938451 |
这很困难,因为名称不会出现在每行字符串中的相同位置。 如果您在阅读时以与思考空格相同的方式思考数字,那么名称就成为“第二个”单词。
字(2,批号,“0123456789”)
| 姓名 |
|---|
| 阿尔特 |
| 伊莱克 |
| XSURVXC |
| 电池组 |
| 伊莱克 |
| 阿巴EG |
| 伊莱克 |
| XSURVXC |
| 电池组 |
| C |
如果您有时间只学习公式编辑器中 42 个字符函数中的一个,我会从单词()功能。
@JensRiege我很高兴您发现这篇文章并发现它很有用。
杰夫·珀金森写道:
尝试一下物品()函数代替。 它就像 Word() 一样,只不过它将多个分隔符视为每个定义一个新项目。
李以成写道:
嗨杰夫,
如果我有一个字符串=“1*2*3**5***8”,它打算被分成8个单独的列而不是5个,这意味着双**应该被视为具有空数据的一列,而三重***应该被视为两列空数据,依此类推,Word函数有什么解决方法吗?
保罗·萨瓦雷斯写道:
Jeff:很喜欢你关于 WORD 函数的文章,但对最后一个例子有点困惑。 似乎有什么地方不太对劲。 第一个批号是 A30941ALTE69073172,嵌入的“单词”显然是 ALTE,但 Word(2,LotNo,“0123456789”) 显示为返回值“C”? 此外,其他一些批次编号中嵌入了“XSURVX”字样,但没有一个结果表明该批次被选中。 另外,我没有看到任何批号中嵌入“VOLT”一词,但它两次出现作为 WORD 函数的结果?
谢谢,
保罗·S。