根据下拉选择将文本附加到单元格值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据下拉选择将文本附加到单元格值相关的知识,希望对你有一定的参考价值。

我有一个公式来组合几个值:

  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列中的值应为空白。

有什么想法吗?

答案

真正的问题是当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(..))

以上是关于根据下拉选择将文本附加到单元格值的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 进行颜色填充,以单元格值为条件

使用VBA进行颜色填充,有条件地使用单元格值

Excel 根据单元格值复制到特定工作表

DataGridView ComboBox Column:从下拉列表中选择后更改单元格值?

如何根据单元格值自动填充excel用户表单中的选项按钮?

根据 Python HTML 电子邮件中的单元格值将 HTML 表格单元格从“低到高颜色阴影”着色