【问题标题】:How to compare two columns in MS excel?如何比较MS excel中的两列?
【发布时间】:2017-01-01 15:38:57
【问题描述】:

我在 Excel 工作表中有两列数据 - A 列和 B 列。我希望 a 列中但 b 列中没有的值应该出现在 c 列中。例如,请看这个屏幕截图- http://imgur.com/a/qYmFF

非常感谢..

【问题讨论】:

  • 发布您的代码,而不是它的图像。
  • @Fred -ii- 如图所示,a 列中的值很少,b 列中的值也相同(4​​00 除外)。只有 500、800 和 400 是这三个值(见红色),它们不在 b 列中。我在 c- =IF(ISNA(VLOOKUP(A1;$B$1:$B$10;1;FALSE));A1;"") 列中应用了这个公式,但它仅在 c 列中显示 400。另一方面,我希望它应该在 c 列中显示 800 和 500 和 400。我认为我必须在 c 列中使用数组公式。请帮帮我。
  • 有一个答案(现已删除),其中包含以下链接ablebits.com/office-addins-blog/2015/08/26/…,不确定您是否看过它。你也应该在你的问题中发布你的公式;如果我不能,这会让其他人更容易帮助你。

标签: excel excel-formula excel-2010 excel-2007 worksheet-function


【解决方案1】:

您可以在 C2 中使用此数组公式(必须在 C2 中或 $C$1:C1 的引用必须更改为该公式第一个实例正上方的单元格):

=IFERROR(INDEX($A$1:$A$10,MATCH(1,(COUNTIF($A$1:$A$10,$A$1:$A$10)<>COUNTIF($B$1:$B$6,$A$1:$A$10))*(COUNTIF($C$1:C1,$A$1:$A$9)<COUNTIF($A$1:$A$10,$A$1:$A$10)-COUNTIF($B$1:$B$6,$A$1:$A$10)),0)),"")

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。如果操作正确,Excel 会在公式周围加上{}

然后复制/向下拖动公式直到出现空白。

【讨论】:

  • 亲爱的@Scott Craner,您建议的代码不起作用。我在 c2 中使用这些代码作为数组公式- =IFERROR(INDEX($A$1:$A$9,MATCH(1,(COUNTIF($A$1:$A$9,$A$1:$A$9)COUNTIF( $B$1:$B$6,$A$1:$A$9))*(COUNTIF($C$1:C1,$A$1:$A$9)=0),0)),"") 但它显示c列的所有单元格中只有800个。请看这个快照-imgur.com/a/6kTTY
  • 您一次将公式输入到所有单元格中。您只需将公式输入到 C2 中,按 Ctrl-Shift-Enter,然后按照我上面的指示复制并粘贴。
  • 非常感谢亲爱的@Scott Craner,现在公式几乎可以正常工作了。但是还是有问题。因为我在 a 列中添加了 3 次 100,但不在 b 列中,但在 c 列中只有一个 100。请查看此快照-imgur.com/a/rBMxz 请帮助。谢谢..
  • 谢谢亲爱的@Scott Craner,你在 excel 方面真的很棒。先生还有一个问题。事实上,这个公式工作正常,但先生它也减慢了 excel 表的速度。我的意思是说,我在广泛的范围内应用了这个公式。因此,当我输入任何值时,它会在 excel 表的下部显示计算或处理,并且系统挂起。我认为这个公式很长,它必须做很多计算,这就是它变慢的原因。您能否为此目的提供一个小公式。请看这个屏幕截图-imgur.com/9eM3nAz
  • @user3906491 这是一个数组公式,它会减慢计算时间,唯一的办法是使用 vba 和虚拟数组。
猜你喜欢
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
相关资源
最近更新 更多