【问题标题】:Multiple Cells Check Without VBA?没有 VBA 的多个单元格检查?
【发布时间】:2021-07-25 04:19:17
【问题描述】:

所以,我想在这里解释一下我需要的是我在同一个工作簿上的两张工作表,工作表示例:

我需要为每个单元格创建一个公式,检查工作表 A“Num_Doc_Ini”和“Num_Doc_Fin”与工作表 B“CHV_CTE_REF”,在将工作表 B 上的“VL_DOC”数字相加后计算总数,最后用“检查”将结果与工作表 A“VL_DOC”进行比较后,正确”或“不正确”。

例如,工作表 A 的第二行。我需要检查一下 NUM_DOC_INI 和 FIN,因此“101 - 102”检查工作表 B“CHV_CTE_REF”上的这些数字,将“VL_DOC”加起来此示例 4,159.86 + 4,585.1 等于 = 8,744.96,然后将其与工作表 A 上的“VL_DOC”匹配,在这种情况下显示文本“正确”,如果不匹配则显示“不正确”。

有些行只有很少的文档可以达到,例如“106 - 108”,但有些行有 10 个或更多要阅读和总结这些值,因此我真的很想提出一些想法。

这可能吗?我可以想出几种使用 VBA 的方法,但我正在尝试使用 Cells Formula 来完成这一切,因此我有点迷茫,任何帮助将不胜感激!

编辑: 我正在使用excel 2016 atm。 所以这里有一个工作簿文件:https://mega.nz/file/LgVCBbjT#xJnf2HbHd6wdRSNPY7wXSssKv2jZ1-pMsOuKcePlulQ

还有颜色的解释: 我需要在红色单元格上使用一个公式来检查表格 1 上蓝色单元格的数量,在表格 2(蓝色单元格)上找到它们,将表格 2 上的 VL_DOC(绿色单元格)相加,然后对照上的值检查它们Sheet 1橙色单元格(VL_DOC)​​,然后根据值的匹配打印出正确或错误。

【问题讨论】:

  • 能否将图片添加到问题的正文而不是链接中呢?或者更好地尝试给出一个最小可重复的例子,尽可能突出你面临的具体问题?
  • 当然!给你:mega.nz/file/…我需要在红色单元格上使用公式来检查表格 1 上蓝色单元格的数量,在表格 2(蓝色单元格)上找到它们,将表格 2 上的 VL_DOC(绿色单元格)相加,然后对照表 1 橙色单元格 (VL_DOC) 上的值检查它们,然后根据值的匹配打印出正确或错误。

标签: excel excel-formula formula


【解决方案1】:

从我在链接中看到的内容来看,如果您拥有最新版本的 excel(其中行范围和列引用留给您的具体情况,因为我们看不到它们),您可以使用类似下面的内容:

=IF(SUM(FILTER(SheetB!$VL_DOC, 
(SheetB!$CHV_CTE_REF=SheetA!J2)+(SheetB!$CHV_CTE_REF=SheetA!I2)+...))=N2, 
"Correct", "Incorrect")

然后在FILTER 函数中添加您需要的许多其他条件。例如:

请求编辑:如果您没有最新版本的 excel,您可以重复使用 VLOOKUPINDEX/MATCH,但需要多次使用。例如:

=IF(SUM(
VLOOKUP($I2, SheetB!$CHV_CTE_REF, 2,),
VLOOKUP($J2, SheetB!$CHV_CTE_REF, 2,), 
...)=$N2,
"Correct", "Incorrect")

【讨论】:

  • 嗨!我目前正在使用 excel 2016 版,代码会有很大变化吗?这是示例表mega.nz/file/… 如果您最好将其可视化。唯一让我夜不能寐的事情是如何为单元格设置公式以“查找”另一张纸上的数字。
  • 当然,看我的编辑。显然删除要运行的最后一个逗号和省略号,我将它们放在那里以表明您可以继续为所需的每一列添加VLOOKUPs
  • 谢谢!明天我一回到家,我就会用全尺寸的工作簿试一试。将更新结果!
  • 您好!我刚刚在我的工作簿中对其进行了测试,当我们的列很少但我需要在工作簿中整理近 1.000 列时,它运行良好,难道没有办法让它在旧版本上自动化吗?只需将公式粘贴到每个单元格中就可以了?
  • 在这种情况下,最好的方法可能是将数据(Number1、Number2、...、Number1000 列)更改为其美元值。将数据复制并粘贴到新的 Excel 工作表中,使用 =VLOOKUP(value, range, 2,0),将值复制并粘贴到旧数据列上,然后只需使用 =IF(SUM(new_range)=dollar_column, "Correct", "Incorrect")
【解决方案2】:

求和、间接、地址、匹配

  • 注意INDIRECT 是一个volatile 函数。

  • 在示例工作簿Sheet 1 的单元格K2 中,您可以使用以下公式:

=IFERROR(IF(SUM(INDIRECT(ADDRESS(MATCH(H2,Tabela1[NUM_DOC],0)+1,COLUMN(Tabela1[VL_DOC]),1,1,"Sheet 2")&":"&ADDRESS(MATCH(I2,Tabela1[NUM_DOC],0)+1,COLUMN(Tabela1[VL_DOC]),1,1),TRUE))=J2,"Correct","Incorrect"),"")

【讨论】:

  • 嗨!您是否在示例工作簿中对其进行了测试?我在这里尝试使用公式,每次都会显示错误消息。
  • 我在您提供链接的工作簿中进行了尝试。它与包含您发布的图像的工作表的工作簿不同。你必须相应地进行调整。您有一些有趣的工作表名称(Sheet 1Sheet 2,而不是 Sheet1Sheet2)并且您有一个名为 Tabela1Excel 表。这是Sheet 1中单元格K2的分号版本:=IFERROR(IF(SUM(INDIRECT(ADDRESS(MATCH(H2;Tabela1[NUM_DOC];0)+1;COLUMN(Tabela1[VL_DOC]);1;1;"Sheet 2")&":"&ADDRESS(MATCH(I2;Tabela1[NUM_DOC];0)+1;COLUMN(Tabela1[VL_DOC]);1;1);TRUE))=J2;"Correct";"Incorrect");"")
  • 您使用的是哪个版本的 Excel?你能把它和你的代码一起上传给我看看它是如何工作的吗?是的,我知道哈哈,与双语公司合作有时会让事情变得有点混乱。
  • 没关系,我只是有点笨,忘了换一个字母哈哈,工作得很好,谢谢!现在我将对其进行一些更改以适应我正在做的另一个项目。你真的是一个救生员!
猜你喜欢
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多