我正在做谷歌表格,我需要把一些设备和房间号码联系起来。我在细胞里找一个图案,像这样: CS1-4。CS总是在单个数字(1-4)之前,后面是'-‘,然后是1或2个数字。例如,我可能有CS1-5或CS1-12。每当我有CS1-9,我会得到一个#参考错误的谷歌表。
下面是我现在的代码:
=IF(REGEXMATCH(D10, "CS([1-4]-[1-4])"), 220, IF(REGEXMATCH(D10, "CS([1-4]-[5-8])"), 240, IF(REGEXMATCH(D10, "CS([1-4]-[9-12])"), 260, IF(REGEXMATCH(D10, "CS([1-4]-[13-16])"), 280, ""))))它似乎只是看第一个数字后的破折号,而不是看看是否有两个数字后的破折号。任何帮助都将不胜感激,谢谢!
发布于 2022-10-13 21:41:18
这个表示法[9-12]不是9-12的范围,它是一个无效的范围。
数字1-4和9-12的图案可以写成:
CS-[1-4]-(9|1[012])和13-16
CS-[1-4]-1[3-6]如果不希望部分匹配,可以在模式的左和右添加单词边界\b,或者将^和$锚定。
发布于 2022-10-13 21:29:32
尝试:
"CS[1-4]-9|10|11|12"

外汇:
=IF(REGEXMATCH(D10, "CS[1-4]-9|10|11|12"), 260,
IF(REGEXMATCH(D10, "CS[1-4]-13|14|15|16"), 280,
IF(REGEXMATCH(D10, "CS[1-4]-[1-4]"), 220,
IF(REGEXMATCH(D10, "CS[1-4]-[5-8]"), 240,))))发布于 2022-10-13 22:58:09
我现在的工作是这样的。
=IF(REGEXMATCH(D10, "CS[1-4]-[1|2|3|4]$"), 220, IF(REGEXMATCH(D10, "CS[1-4]-[5|6|7|8]$"), 240, IF(REGEXMATCH(D10, "CS[-4]-(9|10|11|12)$"), 260, IF(REGEXMATCH(D10, "CS[1-4]-13|14|15|16$"), 280, ))))https://stackoverflow.com/questions/74061996
复制相似问题