如何在 MS Excel 中使用 IF 获取特定列的值?

如何在 MS Excel 中使用 IF 获取特定列的值?

我有一个保存在 MS Excel 表中的疾病数据集,数据格式如下:

| Object Name | Symptom 1 | Symptom 2 | Symptom 3 |...| Symptom N | Disease | | ABC | 1 | 0 | 0 |...| n | XYZ | | ABC | 0 | 1 | 0 |...| n | XYZ | | ABC | 1 | 0 | 1 |...| n | YZX | | ABC | 1 | 1 | 0 |...| n | XYZ |

其中第一列是输入变量,即某个对象的名称,最后一列是疾病名称。中间的列是该对象特定疾病的症状列。

现在,对于工作表中的每一行,我想获取值为 1 的所有症状属性,即存在此症状,使用疾病列作为决策变量。逻辑如下。

for each row in the sheet 
  -->  IF (Disease = XYZ)
  --> Get all the Symptoms variables where value is 1

第一行的期望结果如下;

第 1 行 --> XYZ (症状 1)
第 2 行 --> XYZ (症状 2)
第 3 行 --> XYZ (症状 1,症状 3)
第 4 行 --> XYZ (症状 1,症状 2)


我该如何在 MS Excel 中使用 IF 公式执行此操作?如能得到这方面的帮助,我将不胜感激。

答案1

如果您有多余的空白工作表,这里有一个示例。设Sheet1为主工作表,Sheet2为空工作表;症状的标题在 中Sheet1!$C$4:$F$4,标志在 中Sheet1!C5:F8

类型

=B5&IF(Sheet1!C5,","&Sheet1!C$4,"")

进入单元格C5Sheet2 然后复制此单元格以填充块Sheet2!C5:F8。最后一列(Sheet2!F5:F8)将包含每行的症状列表(前面有一个额外的逗号)。

在此处输入图片描述

然后只需添加公式

=G5&"("&REPLACE(Sheet2!F5,1,1,"")&")"

到单元格Sheet1!H5Sheet1并将其复制到该列下方。

在此处输入图片描述

如果你的数据库太大,并且这种浪费不是一个选择,那么考虑使用VBA 函数 并作适当的修改。

编辑:

一些建议:

如果它可以处理~2000条记录但无法处理整个大小,那么至少您可以将其分成块。

VBA 解决方案也是一个可能的替代方案。

另一个(OT)替代方案是使用数值它可以读取/写入excel文件,并且其concatenate函数可以正确处理范围,因此 OP 有一个单元格公式解决方案。

也可以创建自定义excel Add-on,但在这种情况下这似乎有点小题大做。

答案2

我认为您可以使用 IF(AND 函数。我写了以下内容:=IF(AND(H32=1,I32=1,J32=1),K32,"无疾病")

H32、I32、J32 中都有 1 或 0。K32 是“疾病”。

你也可以做这样的事情:

=如果(H32 + I32 + J32 = 3,K32,K33)

k33为无病,其余细胞与上同。

这有帮助吗?

相关内容