【问题标题】:Append text to cell value based on dropdown selection根据下拉选择将文本附加到单元格值
【发布时间】:2018-03-02 06:57:06
【问题描述】:

我有一个公式可以组合几个值:

  1. C 列中的值
  2. 如果有空格,请添加“和”
  3. 在 I 列中下拉选择值
  4. 根据 I 列中的下拉选择分配的值(例如 B1、C1)
  5. 将 B1 或 C1 附加到 C 列中的值,结果显示在 M 列中

M 列中的公式:

=IF(I15="Truck",CLEAN(SUBSTITUTE(SUBSTITUTE(TRIM(C15),"and ","And"),CHAR(32),"")),IF(I15="Bus",CLEAN(SUBSTITUTE(SUBSTITUTE(TRIM(C15),"and","And"),CHAR(32),"")& "B1"),IF(I15="Car",CLEAN(SUBSTITUTE(SUBSTITUTE(TRIM(C15),"and","And"),CHAR(32),"")),"")& "C1"))

除了一小部分外,它可以工作;每当 C 列中的值为空白时,C1 默认填充到 M 列。 M 列中的值应为空白。

有什么想法吗?

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案1】:

    真正的问题是I15 为空。使用“评估公式”工具运行,您应该会看到它,但是如果您将代码拆分并使用缩进/换行等格式化:

    =IF(I15="Truck",
        CLEAN(
            SUBSTITUTE(
                SUBSTITUTE(TRIM(C15),"and ","And"), 'Should this be "and" rather than "and " to match the "Bus" and "Car"?
                CHAR(32),
                ""
            )
        ),
        IF(I15="Bus",
            CLEAN(
                SUBSTITUTE(
                    SUBSTITUTE(TRIM(C15),"and","And"),
                    CHAR(32),
                    ""
                )& "B1"
            ),
            IF(I15="Car",
                CLEAN(
                    SUBSTITUTE(
                        SUBSTITUTE(TRIM(C15),"and","And"),
                        CHAR(32),
                        ""
                    )
                ), 'Should this bracket be after the "C1" instead of here?
                ""
            )& "C1"
        )
    )
    

    现在,如果I15 为空白,则追踪:I15 不是“卡车”且I15 不是“公共汽车”,因此我们得到:

    =IF(FALSE,
        N/A,
        IF(FALSE,
            N/A,
            IF(I15="Car",
                CLEAN(
                    SUBSTITUTE(
                        SUBSTITUTE(TRIM(C15),"and","And"),
                        CHAR(32),
                        ""
                    )
                ), 'Should this bracket be after the "C1" instead of here?
                ""
            )& "C1"
        )
    )
    

    把它简化,你会得到:

    IF(I15="Car",
        CLEAN(
            SUBSTITUTE(
                SUBSTITUTE(TRIM(C15),"and","And"),
                CHAR(32),
                ""
            )
        ),
        ""
    )& "C1"
    

    但是,I15 是空白的,而不是“汽车”,所以它变成了 IF(FALSE, N/A, "") & "C1" - 意思是,如果 I15 不是“公共汽车”或“卡车”,它将始终显示“C1”。

    另外,您可能可以将代码简化为 =CLEAN(SUBSTITUTE(SUBSTITUTE(TRIM(C15),"and","And"),CHAR(32),"")) & IF(I15="Bus", "B1", IF(I15="Car", "C1", ""))

    如果您可以在某处设置表格,则可以将IF 语句更改为VLOOKUP,或者如果您有一个用于下拉值的表格,则可以使用CHOOSE(MATCH(..))

    【讨论】:

    • 感谢您的详细解释,您分享的简化代码效果很好。感谢您的耐心。
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2021-03-11
    相关资源
    最近更新 更多