Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 基于下拉选择将文本附加到单元格值_Excel_Excel Formula_Excel 2010 - Fatal编程技术网

Excel 基于下拉选择将文本附加到单元格值

Excel 基于下拉选择将文本附加到单元格值,excel,excel-formula,excel-2010,Excel,Excel Formula,Excel 2010,我有一个组合多个值的公式: C列中的值 如果有空格,则添加“和” 第一列中的下拉选择值 基于列中下拉选择的赋值,例如B1、C1 将B1或C1附加到C列中的值,结果显示在M列中 M列中的公式: =IFI15=卡车,清洁替代替代替代品TRIMC15,和,和,CHAR32,,IFI15=公共汽车,清洁替代品替代品TRIMC15,和,和,和,和,和,CHAR32,&B1,IFI15=汽车,清洁替代品替代品TRIMC15,和,和,和,CHAR32,&C1真正的问题是当I15为空时。使用Evaluate F

我有一个组合多个值的公式:

C列中的值 如果有空格,则添加“和” 第一列中的下拉选择值 基于列中下拉选择的赋值,例如B1、C1 将B1或C1附加到C列中的值,结果显示在M列中 M列中的公式: =IFI15=卡车,清洁替代替代替代品TRIMC15,和,和,CHAR32,,IFI15=公共汽车,清洁替代品替代品TRIMC15,和,和,和,和,和,CHAR32,&B1,IFI15=汽车,清洁替代品替代品TRIMC15,和,和,和,CHAR32,&C1真正的问题是当I15为空时。使用Evaluate Formula工具运行,您应该会看到它,但是如果您将代码分解并使用缩进/新行等格式进行格式化:

=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是空白的,不是Car,所以它变成IFFALSE、N/A和C1-意思是,如果I15不是Bus或Truck,它将始终显示C1

另外,您可能可以将代码简化为=CLEANSUBSTITUTESUBSTITUTETRIMC15,和,和,CHAR32,&IFI15=Bus,B1,IFI15=Car,C1


如果您可以在某处设置一个表,您可以将If语句更改为VLOOKUP,或者如果您有一个下拉值表,您可以使用CHOOSEMATCH..

感谢您的详细解释,您共享的简化代码非常有用。感谢你的耐心。