说我有下表(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中的输入公式是什么,或者有什么快速的方法可以做到这一点?
答案 0 :(得分: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))
答案 1 :(得分: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 组合键输入。
答案 2 :(得分:0)
如果表位于工作表的开头,请使用以下公式:
=IF(D2=1,$D$1,IF(C2=1,$C$1,IF(B2=1,$B$1,IF(A2=1,$A$1,0))))
答案 3 :(得分:0)
此公式将随着您的数据增长而变得更加灵活:
=LOOKUP(TRUE,1/$A2:$D2=1,$A$1:$D$1)
A2:D2 = 1如果包含1
,则返回每列的TRUE / FALSE数组
1 / A2:D2 = 1将反转该数组
在反向数组中找到TRUE将返回具有First(或最后因为它被反转)匹配的位置为TRUE,并在该位置使用标题。
此公式 不 需要输入数组,您可以将其作为普通公式输入
如果所有权重均为0,则公式将返回#N/A