我有以下表格:
这些是多方回答问题的答案(即调查问题,其中有“检查所有适用的”指示)
使用以下公式,我可以检查单元格A2到A4是否包含单元格B1到D1中的答案。
IF(ISNUMBER(SEARCH(B1; A2; 1));1;0)
如果字符串包含答案,则返回1;如果字符串不包含,则返回0.
我遇到的问题是如何构造代码以搜索字符串并确定除了给定的选择数组(即A,B和C)之外是否还有其他答案
我正在尝试转换数据,以便我可以在SPSS中处理它们。
答案 0 :(得分:0)
只要答案每个少于1000个字符,并且只要答案之间有唯一的分隔符(我假设您在示例中显示了逗号),那么以下内容应该有效。如果您要求实际和潜在答案之间的比较区分大小写,则可以使用EXACT
函数。
但在我看来,在工作表上输入答案的另一种方法更可取。
在下面的公式中,您需要将逗号(用作函数参数之间的分隔符)更改为您的语言环境中的分号。
首先,定义命名公式Formulas --> Define Name
seq_999 Refers To: =IF(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))=1,1,(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))-1)*999)
然后:
B2: =SUMPRODUCT(N(TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",999)),seq_999,999))=B$1))
公式根据逗号分隔符将A2拆分为数组,然后查看数组中的任何元素是否等于B1的内容。如果是,则会计算1
。
填写此内容但不包括Other
列;并根据需要填写。
编辑检查A列是否为空
在Other
列中,我们使用以下公式:
E2: =IF($A2<>"",N((LEN($A2)-LEN(SUBSTITUTE($A2,",","")))=SUM(B2:D2)),0)
我们将第一行中匹配的答案数与A列中的答案总数进行比较,以确定是否有额外答案。如果有,则必须有other
。