You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按年-月间隔过滤列并提取质保期相关信息?

实现思路建议

1. 先解析原始数据

原始数据格式为+Year-Month,首先需要从字符串中提取出年和月的数值:

  • 去掉开头的+符号,得到类似0-0、1-6的字符串
  • 按-分割字符串,分别获取年、月对应的数字(转成数值类型,方便后续判断)

2. 用条件判断实现需求

根据提取的年、月数值,结合CASE或IF ELSE结构编写逻辑:

  • 核心判断:如果年和月的数值都为0,直接返回No Warranty
  • 若周期大于0,根据年、月的实际值组合成自然表述:
    • 年数>0且月数>0:返回X年Y个月(比如1年6个月)
    • 仅年数>0:返回X年
    • 仅月数>0:返回Y个月

示例代码参考

SQL场景(用CASE结构)

SELECT 
    original_column,
    CASE
        WHEN SUBSTRING(original_column, 2, CHARINDEX('-', original_column)-2) = '0' 
             AND SUBSTRING(original_column, CHARINDEX('-', original_column)+1, LEN(original_column)) = '0'
        THEN 'No Warranty'
        ELSE 
            CONCAT(
                CASE WHEN SUBSTRING(original_column, 2, CHARINDEX('-', original_column)-2) > '0' 
                     THEN CONCAT(SUBSTRING(original_column, 2, CHARINDEX('-', original_column)-2), '年') 
                     ELSE '' END,
                CASE WHEN SUBSTRING(original_column, CHARINDEX('-', original_column)+1, LEN(original_column)) > '0' 
                     THEN CONCAT(SUBSTRING(original_column, CHARINDEX('-', original_column)+1, LEN(original_column)), '个月') 
                     ELSE '' END
            )
    END AS warranty_info
FROM your_table;

Excel场景(用IF嵌套)

假设数据在A列,B列写入公式:

=IF(LEFT(A1,2)="+0", "No Warranty", 
    CONCAT(
        IF(MID(A1,2,FIND("-",A1)-2)*1>0, MID(A1,2,FIND("-",A1)-2)&"年", ""),
        IF(RIGHT(A1,LEN(A1)-FIND("-",A1))*1>0, RIGHT(A1,LEN(A1)-FIND("-",A1))&"个月", "")
    )
)

内容的提问来源于stack exchange,提问作者Jony_Junior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:20:33