Excel从包含数字字符串的单元格中提取用户名

时间:2016-02-15 21:55:03

标签: excel excel-formula

我有电子表格,其中包含一串数字(文本)我需要在括号中提取文本并计算符合条件的数量

我尝试了以下代码:

=COUNTIF(NASC!C:C,"MID(NASC!C:C,SEARCH(zv489408,NASC!C:C,22))")

但它没有返回一个值。

这是必须搜索的字符串:

1234595250110784533 (zv489408)

及其在标有NASC的单独表格上

1 个答案:

答案 0 :(得分:0)

免责声明:我在Ubuntu工作,这些已在LibreOffice中测试,而不是Excel。程序之间可能存在一些差异。

您的核心功能应为SEARCH("(zv489408)", NASC!C:C)。 (示例中的22开始从单元格中的第22个字符开始搜索;如果它在单元格中较早出现,则不会找到该字符串。)这将返回该单元格中字符串的起始字符,或者错误(可能是#VALUE!)。

您可以设置另一列,每个单元格中的公式为=NOT(ISERROR(SEARCH("(zv489408)", NASC!$C1)))(当然,1将更改为与每个单元格相关的行),然后SUM列在另一个单元格中。

我设法找到一个有效的数组公式,但我现在警告你,它很讨厌:

=COUNTIF(MID(NASC!C:C, SEARCH("(", NASC!C:C) + 1, SEARCH(")", NASC!C:C, SEARCH("(", NASC!C:C)) - SEARCH("(", NASC!C:C) - 1), "zv489408")

(点击Ctrl + Shift + Enter将公式保存为数组公式。)

令人讨厌,因为它经历了所有这些步骤,并且无法保存中间结果:

  1. 找到左括号。
  2. 在左括号后找到右括号。
  3. 从关闭支架的位置减去开口支架的位置以获得长度(再加一个,以排除关闭支架)。
  4. 在它们之间获取文字。