如果单元格与excel中的计数器单元格匹配,是否有方法自动将行提取到另一个电子表格中?

如果单元格与excel中的计数器单元格匹配,是否有方法自动将行提取到另一个电子表格中?,excel,indexing,match,vlookup,Excel,Indexing,Match,Vlookup,我正在尝试运行一个公式,该公式执行以下操作: 我有三列,一个账号,记录的金额和实际金额。我想做的是,如果实际金额不等于记录的金额,我想划出这条线,包括账号、记录金额和实际金额,并将其放在单独的表格中。我试图在大约100行的范围内实现这一点。所以看起来是这样的: Account | Recorded Amount | Actual Amount ----------------------------------------- Company | $356 | $35

我正在尝试运行一个公式,该公式执行以下操作:

我有三列,一个账号,记录的金额和实际金额。我想做的是,如果实际金额不等于记录的金额,我想划出这条线,包括账号、记录金额和实际金额,并将其放在单独的表格中。我试图在大约100行的范围内实现这一点。所以看起来是这样的:

Account | Recorded Amount | Actual Amount
-----------------------------------------
Company |      $356       |     $356
Company |      $569       |     $569
Company |      $700       |     $705  ** Doesn't match
Company |      $300       |     $320  ** Doesn't match

##Now since the third and fourth rows don't match their respective columns
##The data is then extracted into a separate sheet.

**Separate Spreadsheet**

Account | Recorded Amount | Actual Amount
-----------------------------------------
Company |      $700       |     $705  
Company |      $300       |     $320 
我尝试过使用Vlookup和Match函数,但似乎无法解决这个问题。任何帮助都将不胜感激

尝试:

尝试使用IF语句时,我遇到的问题是无法返回整行。我可以返回特定单元格,但不能返回整行

=IF(E5=D5,A5:E5,"") * give a #VALUE error
=IF(E5=D5,E5) * returns selected cell
=VLOOKUP(E15=D15,D15:E299,2,FALSE) * #N/A
尝试在一个序列中使用它,但它只返回所选的第一个单元格,在这种情况下,它只返回“Company”。我可以为每一行运行这段代码,但要跨多个列和行运行这段代码需要大量的工作和代码。它也是不可伸缩的

我遇到的主要问题是捕获整行。如果匹配,我可以提取特定单元格的值,但不能提取整行数据。我也同意Excel不能做到这一点。我能够在Python中的几行代码中生成所需的结果,但在Excel中,我没有那么流利,我不确定该走哪条路。

建议的解决方案 如果我理解正确的话,解决方案可能如下

表1包含源数据:

Sheet2包含一个包含计算数据的表格:仅记录值与实际值不同的行:

活页2的单元格
A2:C9
包含公式。这是与表1上的源数据相同的单元格范围。表2
A2
包含以下公式:

{=IFERROR(INDEX('Sheet1'!$A$2:$C$9,LARGE(N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9)*(ROW('Sheet1'!$B$2:$B$9)-ROW('Sheet1'!$B$1)),SUM(N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9))-ROWS(A$1:A1)+1),COLUMNS($A1:A1)),"")}
主要定义

返回表或数组中由行号和列号索引选择的元素的值

用法是索引(数组、行号、列号)

示例:如果
D6
包含
Hello World然后
索引(C3:E20,4,2)
返回
你好世界(给定范围内第4行第2个单元格)

返回数据集中第k个最大值。您可以使用此函数根据其相对位置选择值。例如,可以使用“大”返回最高、亚军或第三名分数

用法是
大(数组,k)

示例:
LARGE({1,5,5,9,2,7,0,1},2)
=
7
(7是第二大值)

公式的分解 1)查找行号

首先比较B列和C列

在下一步中,布尔数组与相对行号相乘<代码>行('Sheet1'!$B$2:$B$9)
返回绝对行号:
{2,3,4,5,6,7,8,9}
。减去标题
行('Sheet1'!$B$1)
的位置。我们得到了相对行号
{1,2,3,4,5,6,7,8}

两个数组都相乘

N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9) * (ROW('Sheet1'!$B$2:$B$9) - ROW('Sheet1'!$B$1))
决议:

{0,1,0,0,1,1,0,1} * {1,2,3,4,5,6,7,8,9}
结果数组包含在B和C中不同的行的相对行号

2)按所需顺序排列行号

LARGE
函数的结果作为行号参数传递给
INDEX
函数。我们希望
INDEX
函数返回B列和C列中具有相等值的行的错误(稍后讨论)。因此,我们必须实现一些奇怪的逻辑来计算
LARGE
函数的
k
参数

LARGE(
    N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9) * (ROW('Sheet1'!$B$2:$B$9)-ROW('Sheet1'!$B$1)),
    SUM(N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9)) - ROWS(A$1:A1) + 1
),
结果值为:

2, 5, 6, 9, #NUM!, #NUM!, #NUM!, #NUM!
3)选择值

INDEX
函数引用源数据
'Sheet1'$A$2:$C$9
。行号是我们刚刚用
LARGE
计算的值,列号是当前查看的列
列($A1:A1)

对于第一个目标行,INDEX
返回第二个源行的值,对于第二个目标行,返回第五个源行的值,依此类推。从第5排开始,我们不想显示任何内容。如果我们对行号使用
2,5,6,9,0,0,0,0
INDEX
将在第5行到第8行写入不需要的值。这就是为什么我们希望
LARGE
返回
#NUM用于具有相等值的行。如果传递了
索引
#NUM
然后它还返回
#NUM。最后,我们可以使用
IFERROR(…,“”)
处理这些情况,并获得空单元格


就是这样。

在操作系统中,通常没有响应限制。请避免在你的问题中引入噪音来吸引注意力,自从你发表了你的问题以来,有更多有效的方式来展示你的进步。请告诉我任何其他方式来吸引人们对我的问题的注意力。自从我昨天发布这个问题以来,没有人回答或试图回答这个问题。我需要在星期二之前完成这个项目,我被卡住了。我已经找到了使用Python的替代方法,但我需要在excel中执行此操作。1)请记住,我们现在是周末,因此可以帮助他们的用户会更少,因为他们不访问该站点。2) 吸引注意力的一种方法是给予赏金,但为此你必须赢得声誉,另一种已经表明的方法是,你展示了你所尝试的,你只展示了你所拥有的和你想要的,而没有表现出任何努力。我在本周四发布了。。。有10个视图。。。你不是真的在帮我。。。是的,我可以展示我尝试过的所有东西,但都失败了。相信我,我已经为此付出了很大的努力。把我所有失败的尝试都贴出来似乎没有什么好处。而不是因为我的帖子而责骂我
N({FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE}) * ({2,3,4,5,6,7,8,9} - 1)
{0,1,0,0,1,1,0,1} * {1,2,3,4,5,6,7,8,9}
{0,2,0,0,5,6,0,8}
LARGE(
    N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9) * (ROW('Sheet1'!$B$2:$B$9)-ROW('Sheet1'!$B$1)),
    SUM(N('Sheet1'!$B$2:$B$9<>'Sheet1'!$C$2:$C$9)) - ROWS(A$1:A1) + 1
),
LARGE({0,2,0,0,5,6,0,8}, k)
2, 5, 6, 9, #NUM!, #NUM!, #NUM!, #NUM!