【问题标题】:Return specific value based on string in text根据文本中的字符串返回特定值
【发布时间】:2020-01-10 10:03:54
【问题描述】:

我有一个 Excel 文件,其中每年都有一个特定的数字。我想自动化该过程并创建一个列,该列将根据字符串中提到的年份返回存储的值。

Salefile                       Fixed value for year
CS Tota 2016 batch20             23  
CS 1040 (2017)                   26  
CS 1041 (2018)                   30  
CS 1040 (2019)                   34

我需要的是 在每周的“salefile”列下,我添加新文件名、文件名格式(CS 文件编号 yyyy)。添加新文件名时,将出现与文件名中年份对应的值。例如:如果我的下一个“销售文件”是 cs 1044 (2018),则 30 应该在“固定值”下生成

【问题讨论】:

  • 欢迎来到 SO!你能上传一张你的数据截图吗?

标签: excel if-statement search


【解决方案1】:

1] 在E4:F8中创建查找表

在输出“条件”B5:B8,输入:2017,2019,2016 and 2018

在“结果”C5,输入公式并复制下来:

=LOOKUP(1,-FIND(B5,$E$5:$E$8),$F$5:$F$8)

编辑:

这是另一个设置

2] 在E4:F8中创建查找表

在“销售文件”列 B 中输入条件

在“固定值”(结果)C5,公式复制下来:

=LOOKUP(1,0/ISNUMBER(FIND($E$5:$E$8,B5)),$F$5:$F$8)

【讨论】:

  • 感谢您的帮助。问题略有不同。在每周的“salefile”列下,我添加新文件名,当添加新文件名时,文件名中与年份对应的值会出现。例如:如果我的下一个“销售文件”是 cs 1044 (2018),则应该在“固定值”下生成 30
  • @Sumaiya Khatun,请查看新编辑的帖子。谢谢
【解决方案2】:

你可以使用

=IFERROR(INDIRECT(ADDRESS(MATCH("*"&E1&"*",$A:$A,0),2)),"No match")

MATCH("*"&E1&"*",$A:$A,0)

  • 提供找到 E1 值的行。
  • $A:$A 参考 A 列(使用 $ 符号修复范围)
  • 0 用于进行完全匹配

ADDRESS(MATCH("*"&E1&"*",$A:$A,0),2)

  • MATCH function 用于提供我们需要的行
  • 2 定位 B 列

INDIRECT()

  • 用于获取特定行-列的值

=IFERROR()

  • 如果E1的值不匹配,会出现“不匹配”警告

【讨论】:

  • 感谢您的帮助。问题略有不同。在每周的“salefile”列下,我添加新文件名,当添加新文件名时,文件名中与年份对应的值会出现。例如:如果我的下一个“销售文件”是 cs 1044 (2018),则 30 应该在“固定值”下生成
猜你喜欢
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多