多选下拉列表

时间:2018-06-18 21:59:01

标签: excel excel-vba vba

我想从下拉列表中包含多个选项的列中计算唯一选择的数量。

例如,列B3包含

  周一,周二,周三

count函数返回值1而不是3 - 有没有办法明确计算这三天?谢谢!

使用以下版本的VBA代码,可以从下拉列表中进行多项选择:https://docs.google.com/document/d/1JU7G_Tna2zPBtcG2TlarxKCTbuinNsg5LwBqzmuJYK8/edit

1 个答案:

答案 0 :(得分:1)

此解决方案取决于您的字符串值始终由逗号(,)分隔。看来您在链接中共享的代码将继续添加coma并添加每个新字符串,这意味着这应该适合您。

  

= IF(A1 ="",0,LEN(TRIM(A1)) - LEN(替代(TRIM(A1),""" "))+ 1)

如果单元格为空,请返回0

否则,计算逗号实例(,)并偏移1

enter image description here

编辑1:(说明)

请注意,该等式有两个非常类似的部分:LEN(TRIM(A1))& LEN(SUBSTITUTE(TRIM(A1),",",""))。唯一的区别是一个等式使用Substitute函数而另一个不使用Trim函数。

Len将删除领先和滞后的空格 Substitute会返回字符串的字符数 在这个例子中,commas用于替换(替换)所有""一个空字符串(sum(outer(x, y, ">"))

字符串逗号的长度与字符串没有逗号的长度之间的差异等于总逗号中存在的差异字符串。说到#34;算上逗号"因为我们真的在推断逗号的数量,所以我有点误导。