如何仅从一列中的单元格中获取最后一个字符串
How to get only the last string from cells in one column
我正在尝试获取列中单元格的最后一个字符串(从右侧开始),但我无法弄明白。
我有这段代码可以从左侧获取前三位数字,但是不行。
var first_3_digs = values.filter(r => {
if(r.toString().includes('_')){return r;}
}).map(r=> r.toString().split('_')[0]);
例如,如果我想要作为输入 CS_1*44u 我想要输出 u。同样适用于 ml、l 等...
如果您需要更多信息,请告诉我。
非常感谢您的帮助。
如何从多个单元格中获取 'units' 的示例:
const unit = x => /[\d]+[\D]+/.test(x) ? x.match(/[A-z]+$/)[0] : '';
var texts = ['CS_1*44u', 'Case', '72x64ml', '11x37kg', '123'];
texts.forEach(x => console.log(unit(x))); // --> 'u', '', 'ml', 'kg', ''
如何从一个单元格中获取 'unit' 的示例:
const unit = x => /[\d]+[\D]+/.test(x) ? x.match(/[A-z]+$/)[0] : '';
var cell_value = 'CS_1*44u';
console.log(unit(cell_value)); // --> 'u'
如果您需要从另一个单元格数组中获取 'units' 的数组,您可以这样映射函数:
const unit = x => /[\d]+[\D]+/.test(x) ? x.match(/[A-z]+$/)[0] : '';
var cells = ['CS_1*44u', 'Case', '72x64ml', '11x37kg', '123'];
var units = cells.map(x => unit(x)); // <---- here
console.log(units); // --> ['u', '', 'ml', 'kg', '']
由于您已为可能的解决方案标记了公式,我将提供以下 REGEXEXTRACT 公式:
=REGEXEXTRACT(K1,"[^(\d+(\.\d+)?)(?!.*\d+(\.\d+)?)]*$")
说明:
最后一次出现“a”之后:
[^a]*$
最后一位(带或不带小数点):
(\d+(\.\d+)?)(?!.*\d+(\.\d+)?)
[编辑]
其中 \d
表示一个数字,这是一个(更短的)替代方案,它也被测试为使用相同的数据集:
=REGEXEXTRACT(K1,"[^\d]*$")
我正在尝试获取列中单元格的最后一个字符串(从右侧开始),但我无法弄明白。
我有这段代码可以从左侧获取前三位数字,但是不行。
var first_3_digs = values.filter(r => {
if(r.toString().includes('_')){return r;}
}).map(r=> r.toString().split('_')[0]);
例如,如果我想要作为输入 CS_1*44u 我想要输出 u。同样适用于 ml、l 等...
如果您需要更多信息,请告诉我。
非常感谢您的帮助。
如何从多个单元格中获取 'units' 的示例:
const unit = x => /[\d]+[\D]+/.test(x) ? x.match(/[A-z]+$/)[0] : '';
var texts = ['CS_1*44u', 'Case', '72x64ml', '11x37kg', '123'];
texts.forEach(x => console.log(unit(x))); // --> 'u', '', 'ml', 'kg', ''
如何从一个单元格中获取 'unit' 的示例:
const unit = x => /[\d]+[\D]+/.test(x) ? x.match(/[A-z]+$/)[0] : '';
var cell_value = 'CS_1*44u';
console.log(unit(cell_value)); // --> 'u'
如果您需要从另一个单元格数组中获取 'units' 的数组,您可以这样映射函数:
const unit = x => /[\d]+[\D]+/.test(x) ? x.match(/[A-z]+$/)[0] : '';
var cells = ['CS_1*44u', 'Case', '72x64ml', '11x37kg', '123'];
var units = cells.map(x => unit(x)); // <---- here
console.log(units); // --> ['u', '', 'ml', 'kg', '']
由于您已为可能的解决方案标记了公式,我将提供以下 REGEXEXTRACT 公式:
=REGEXEXTRACT(K1,"[^(\d+(\.\d+)?)(?!.*\d+(\.\d+)?)]*$")
说明:
最后一次出现“a”之后:
[^a]*$
最后一位(带或不带小数点):
(\d+(\.\d+)?)(?!.*\d+(\.\d+)?)
[编辑]
其中 \d
表示一个数字,这是一个(更短的)替代方案,它也被测试为使用相同的数据集:
=REGEXEXTRACT(K1,"[^\d]*$")