excel - 我需要帮助合并定期更改的供应商名称列表吗?

标签 excel excel-formula

我有一个电子表格,用作调查问卷。

其中一个问题是 Who are your wheel suppliers (mark all that apply)? C 列中有 6 个复选框,用于选择 5 个不同的车轮供应商和一个 Other选项。我有这些复选框链接以返回在与复选框位于 I 列中的单元格相邻的单元格中选择的任何供应商名称。

因此,根据客户选择的车轮供应商,可能会选择 1-6 个不同的供应商。因此,一旦客户选择了车轮供应商,任何选择的供应商都将显示在 I45:50 范围内的正确单元格中.

我遇到的问题是我需要这些将数据选项卡拉入一个单元格。我想出一个公式来将所有供应商作为一个列表放在一个单元格中,用逗号分隔每个单元格时遇到问题。请记住,它可能是 1 个供应商,可能是 3 个,可能是 6 个。

非常感谢任何建议。我尝试过使用 If 公式和 Concatenate,但我似乎无法弄清楚如何让它像我想要的那样工作。

=CONCATENATE(Questionnaire!I45," ",Questionnaire!I46," ",Questionnaire!I47," ",Questionnaire!I48," ",Questionnaire!I49," ",Questionnaire!I50)

这是我想出的最好的,但问题是如果第一个供应商没有被选中,那么它无论如何都会进入那个空间,如果第一个供应商和最后一个供应商被选中,它之间就会有所有这些空间.

最佳答案

另一种方法,这个使用辅助细胞的方法。

假设您有 A1:A6 中的数据.在 B1 ,输入这个公式:=IF(LEN(A1)>0,A1&",","") .向下拖动到 B5 .

B6 ,略有不同:=IF(LEN(A6)>0,A6,",""") .

C1 : =CONCATENATE(B1,B2,B3,B4,B5,B6) .

发生的情况是 B 列中的单元格检查它们在 A 列中的各自值是否不是空白。如果没有,他们将追加 ,给它。否则,它们将返回空白(而不是空格)。唯一的变化是 B6 --因为它是列表的结尾,所以没有,附加到它。

此时只需将它们连接起来即可。删除 A 中的任何值,也许通过取消选中他们的复选框,将反射(reflect) C1 中的更改适本地。

enter image description here

让我们知道这是否有帮助。

编辑:

要适应您的公式,请更改您的 CONCATENATE公式如下:
=LEFT(CONCATENATE(...),LEN(CONCATENATE(...)-1)
它的作用是通过从左边获取直到 的所有字符来删除最右边的字符。比结果的长度小一 .显然,填写...与您要连接的范围。

让我们知道这是否是您需要的。

进一步编辑:

=LEFT(CONCATENATE(Questionnaire!F45,Questionnaire!F46,Questionnaire!F47,Questionnaire‌​!F48,Questionnaire!F49,Questionnaire!F50),LEN(CONCATENATE(Questionnaire!F45,Questionnaire!F46,Questionnaire!F47,Questionnaire‌​!F48,Questionnaire!F49,Questionnaire!F50))-1)

看起来很丑,对吧?但做的工作。但是,如果您使用命名范围会更好,如下所示:

enter image description here

现在它更短了。我的错误是因为我没有 Questionnaire表,显然。

关于excel - 我需要帮助合并定期更改的供应商名称列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707057/

相关文章:

excel - 提取Excel单元格中的子字符串

Excel - 在另一个工作表中查找具有相同值的单元格并在其左侧输入值

excel - VBA 查找值并在消息框中报告并更改同一行单元格中的值

Excel公式从字符串中获取小数点后的所有内容

r - 将大量行转换为一列?

vba - Powershell 使用动态参数量运行 Excel 宏

excel - 在单个单元格中搜索多个单词并返回找到的所有单词

用于生成模式的 Excel 公式

excel - 更改Excel数据验证中的日期格式

vba - 如何使用 VBA 限制图表的源数据?