Regex 带有对单元格的正则表达式引用的正则表达式匹配
我正在按关键字过滤gSheet上的数字,这是观众从通过数据验证创建的预定义下拉列表中选择的 观众可以选择多个选项,包括“全部”。因为“All”在数据源中不是可过滤的关键字,所以我使用FILTER(REGEXMATCH(IF(…))对数据进行排序。下拉列表位于单元格B1中,因此当IF语句为false时,我在REGEXMATCH中引用它 问题:正则表达式与文本匹配,而不是与数字匹配。当我引用单元格B1时,公式会出错,因为它不是文本值。但当我将其设置为文本值时,它找不到匹配项(当然)Regex 带有对单元格的正则表达式引用的正则表达式匹配,regex,google-sheets,excel-formula,Regex,Google Sheets,Excel Formula,我正在按关键字过滤gSheet上的数字,这是观众从通过数据验证创建的预定义下拉列表中选择的 观众可以选择多个选项,包括“全部”。因为“All”在数据源中不是可过滤的关键字,所以我使用FILTER(REGEXMATCH(IF(…))对数据进行排序。下拉列表位于单元格B1中,因此当IF语句为false时,我在REGEXMATCH中引用它 问题:正则表达式与文本匹配,而不是与数字匹配。当我引用单元格B1时,公式会出错,因为它不是文本值。但当我将其设置为文本值时,它找不到匹配项(当然) 当前: =SU
当前:
=SUM(IFERROR(FILTER(Sheet1!$E:$E,
REGEXMATCH(Sheet1!$I:$I,IF(B1="All","organic|paid|other",B1))=true),0))
- 列E根据所选关键字求和
- 列I包含要匹配的关键字
- 单元格B1有一个下拉列表,用户在其中选择他们的关键字
我所尝试的:
=SUM(IFERROR(FILTER(Sheet1!$E:$E,
REGEXMATCH(Sheet1!$I:$I,IF(B1="All","organic|paid|other",B1))=true),0))
-引用它作为一个值,希望它能读取返回的文本;它因输入错误而出错VALUE(B1)
-将其引用为文本;上面写着“B1”文本(B1)
”-三重引号,其思想是引用的引号将传递并封装B1返回的文本;上面写着“&B1&”(d'oh)”&B1&“
-转义单元格引用;我第一次尝试用正则表达式逃逸,所以这很可能是一个错误实现的正确答案“B1\”
从REGEXMATCH表达式中引用单元格B1还有其他想法吗?单元格B1中包含的值从任何公式中引用,仅作为B1。例如,
regexmatch(A1,B1)
使用数组时,=filter(A1:A10,regexmatch(A1:A10,B1))
可以工作
如果范围(在我的示例中为A1:A10)包含需要转换为文本的数字,一种方法是将它们与空字符串连接起来(这对数组很有效):=filter(A1:A10,regexmatch(A1:A10&“”,B1))
评论
- 写
regexmatch(…)=true是多余的,只需写
regexmatch(…)
- 考虑错误可能是由公式的其他部分引起的;拆下无关零件以隔离问题李>