如何检查每个唯一值,我们在excel中具有相同的唯一ID

时间:2018-02-17 16:03:51

标签: r excel vba excel-vba excel-formula

我有一张excel表,看起来像:

Col1

我想再添加一列并检查(针对每个唯一TRUE值)FALSE中指定的值是=IF(B2=B1,IF(A2=A1,"TRUE","FALSE"))还是Col2

到目前为止,我已经尝试了这个:Col1 Col2 Result IJ-123 A2B1 TRUE IJ-123 A2B1 TRUE IJ-456 C2C2 TRUE IJ-456 c2c2 TRUE IJ-456 D1e2 FALSE IJ-789 LJ87 TRUE (Because Col2 count=1 for this value) IJ-789 LJ98 TRUE (Because Col2 count=1 for this value) 哪个工作正常,但是对于{{1}}中每个新值的第一列,它给了我" FALSE"结果

输出:

{{1}}

2 个答案:

答案 0 :(得分:3)

我认为你的逻辑实际上非常复杂,并且在最初的问题中没有得到很好的解释 - 因此在评论中进行了长时间的讨论。这是我现在理解的逻辑:

  
      
  1. 如果col2中的值超过1,则检查那些col2值的相应col1值是否相同
  2.   
  3. 如果只有一个col2值,则检查col1是唯一的,但仅针对多个col2值的col1值
  4.   

这是公式:

=IF(COUNTIF($B$2:$B$8,B2)=1,SUMPRODUCT(--(($A$2:$A$8=A2)*(COUNTIF($B$2:$B$8,$B$2:$B$8))>1))=0,COUNTIFS($B$2:$B$8,B2,$A$2:$A$8,"<>"&A2)=0)

根据需要返回以下内容:

enter image description here

答案 1 :(得分:0)

您错过了“b2 = b1”的错误。

这应该解决它:

=IF(B2=B1,IF(A2=A1,"TRUE","FALSE"),"FALSE")

为了简化,如果你可以使用AND函数,而不是双倍。

If(AND(B2=B1,A2=A1),"True","False")