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

时间:2014-02-11 16:11:39

标签: 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)

这是我提出的最好但问题是如果没有选择第一个供应商那么它将进入该空间,如果第一个供应商和最后一个供应商被选中,它将拥有所有这些介于两者之间。

2 个答案:

答案 0 :(得分:2)

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

假设您拥有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中的任何值,可以取消选中其复选框,将正确反映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表。

答案 1 :(得分:1)

如果J44是空白的并且您准备在J45中添加类似=IF(ISBLANK(I45),J44,J44&I45&", ")的内容(复制下来),那么可能:

=SUBSTITUTE(LEFT(wheelC,LEN(wheelC)-2),0,"")  

可能适用,其中wheelC是调查表的工作簿范围的命名范围!J50。