Excel与IF语句连接
我想要做的是连接两个单元格,然后检查连接值对一列值,并将一个单元格,如果这样的值存在。 以下等式是我正在使用的:
{=IF(CONCATENATE(A2, " ", B2) = 'MasterList'!$C:$C, "x", "")}
列A是软件的名称,列B是版本号(A="Microsoft .NET Framework 4.5.1", B="4.5.50938", for example).
我知道这个连接值存在于MasterList工作表上,所以我不明白为什么我没有得到我期望的答案。
大师,这里有什么缺点?
工作表上最快的比较/查找是一个MATCH函数。 如果你有一个很长的专栏,把这个公式,你可以尝试,
=IF(ISNUMBER(MATCH(CONCATENATE(A2, " ", B2), 'MasterList'!$C:$C, 0)), "x", "")
根据需要填写。
它接缝,你selectMasterList表上的整个C列。 你不是说只有一个单元? 喜欢:
=IF(CONCATENATE(A2, " ", B2) = 'MasterList'!$C1, "x", "")
或尝试: =IF(CONCATENATE(A2, " ", B2) = MasterList.!$C1, "x", "")
(在打开的Office上)
最好的事情是,而不是你写的工作表名称,让Excel通过编辑公式为您做,删除工作表名称,然后用鼠标单击导航到所需的区域。
我只想说,在看到这个问题之前,我不知道数组公式是什么。
我有以下工作示例:
工作表Sheet1:
A1: Microsoft .NET Framework 4.5.1 B1: 4.5.50938 // press control-shift-enter after typing formula C4: =IF(CONCATENATE(A1," ",B1)=Sheet2!$A:$A,"YAY","NAY")
Sheet2中:
A1: Microsoft .NET Framework 4.5.1 4.5.50938
不知道你的电子表格有什么问题。 MasterList!$C:$C
的值是否实际上对应于您期望的串联结果?
这不是一个有效的数组公式。 LHS是一个单元,而RHS是一个arrays。 它实际上做的是比较连接到MasterList
中列C
所有单元格 。
您需要使其成为有效的数组公式或正常公式。 我build议第二个解决scheme。
对于第一种解决scheme,应该是:
{=IF(CONCATENATE(A:A, " ",B:B ) ='MasterList'!$C:$C, "x", "")}
但是,这将会非常缓慢,因为它会计算和连接两个完整的列 ,此外,您将不得不select要计算它的整个范围(一个完整列),然后按Ctrl + Shift + Enter。
你可以在单元格中制作一个简单的公式,然后复制/粘贴你的列。 C2
公式:
=IF(CONCATENATE(A2, " ", B2) = 'MasterList'!$C2, "x", "")