0

假设我有下表(VAR 代表变量):#

VAR1 VAR2  VAR3  VAR4    OUT 
 1     1     1     1    VAR4
 0     1     1     0    VAR3
 1     0     0     0    VAR1
 1     1     0     0    VAR2

因此,每个变量都被编码为 1 或 0。VAR4 的权重大于 VAR3,VAR3 的权重大于 VAR2,等等。

如果只有一个 VAR 为 1,则在输出中给出该 VAR。但是,如果多个VAR 为1,则输出仅是权重最高的VAR,即如果VAR2 和VAR4 为1,其他均为0,则输出列为VAR4。

Excel中的输入公式是什么,或者有什么快速的方法吗?

4

4 回答 4

4

我会说放入 E7 :

="VAR" & IF(D7=1,4,IF(C7=1,3,IF(B7=1,2,IF(A7=1,1,0))))

其中A是VAR1的列,VAR2的B,VAR3的C和VAR4的D。只需将公式放在 E 列内(检查索引;上面的公式适用于第 7 行(E7))

于 2013-06-25T14:00:35.613 回答
1

以下数组公式将完成工作。请注意,它不要求 VAR 名称的形式为 VAR + number,即,它将从数据列第一行中的名称中选择所需的名称。

=IFERROR(INDEX($A$1:$D$1,1,IF(SUM(A5:D5)=0,1/0,MAX({1,2,3,4}*A2:D2))),"-")

ISERROR 和 1/0 捕获所有权重为零并返回“-”而不是 VAR 名称的情况。如果不会出现权重全为零的情况,则公式简化为:

=INDEX($A$1:$D$1,1,MAX({1,2,3,4}*A2:D2))

这个公式将被输入到单元格 E2 中并复制下来。由于是数组公式,所以需要用Control- Shift-Enter组合键输入。

于 2013-06-25T14:25:45.733 回答
0

如果表格位于工作表的开头,请使用以下公式:

=IF(D2=1,$D$1,IF(C2=1,$C$1,IF(B2=1,$B$1,IF(A2=1,$A$1,0))))
于 2013-06-25T14:22:05.237 回答
0

这个公式将随着您的数据增长而起作用,并允许更多的灵活性:

=LOOKUP(TRUE,1/$A2:$D2=1,$A$1:$D$1)

A2:D2=1 如果每列包含1 1/A2:D2=1 则返回一个 TRUE/FALSE 数组) 匹配为 TRUE,并在该位置使用标题。

此公式不需要输入数组,您可以将其作为普通公式输入

如果所有权重均为 0,则公式将返回#N/A

于 2013-06-25T15:15:05.213 回答