我正在尝试自动化电子表格,并且仅当该单元格有值时才从另一个单元格的值中减去 vlookup 值。两个值都是时间 (hh:mm:ss),其中 Q3 始终大于 vlookup 值。
=IF(Q3="","",Q3-VLOOKUP('2020 - REVIEW'!B3,'2020 - DETAILED'!B:M,8,FALSE))
#####
由于某种原因,尽管 Q3 较大,细胞仍会返回。
答案1
VLOOKUP()
的返回将是表中值的十进制版本,但这不会导致减法出现任何问题。
对于这个难题,主要有两点想法:
- 您在最后一个参数中使用了“false”,
VLOOKUP()
这意味着如果无法找到精确匹配,则会返回错误VLOOKUP()
。由于各种原因,必须尽可能地认识到这一点,因此即使没有发生这种情况,您也必须考虑到这一点。如果返回错误,则整个公式都会返回错误,当然,除非 Q3 为空。如果错误太宽而无法在列中显示,您将得到“####”显示。 - 查找到的值总是小于 Q3 中的值。那么,[插入关于镍币的古老谚语,每次我听到一件事,然后它就不会那样发挥作用]. 那么你将得到负面结果并得到“####”的显示。
您基本上需要查看那里到底有什么,并且有多种方法可以做到这一点。一种是使用“评估公式”功能,这是一个很好的功能,尤其是对于像这样的短公式。另一种是简单地加宽列。如果显示突然有所不同,您可以从中找出问题所在。有趣的是,您可以立即区分(这样做)上述两个想法:如果是错误,则加宽适度的量应该可以清楚地显示出来。如果是负值(所以我得到另一个五分钱),您将从“####”转到“##########”等等。
但最可靠的方法是直接打开单元格格式功能(Ctrl-1
或使用鼠标)并将格式更改为常规,同时观察 Excel 显示内容的方式。如果出现错误,您将立即看到该错误。如果是负值,您也会立即看到该错误。
然后根据需要继续。
我很难想象,处理格式化的时间 (hh:mm:ss) 并希望得到类似格式的结果时,您没有足够宽的列来显示错误#N/A
。所以我很确定查找返回的值大于 Q3。
顺便说一句,它总是较大的部分在正常情况下不一定是错误的。它可能输入错误,或者从错误输入的地方带过来。例如,它可以是日期和时间,而不仅仅是时间。将其格式化为时间,它将很高兴地显示时间元素。但它也会有一个整数部分(时间完全是日期时间值的小数部分),如果 Q3 确实只是一个时间,那么存储的值将非常负,而它的时间部分确实总是小于 Q3。所以,如果不一样地看待,则既是假的又是真的。
可以解决您发现的问题。例如,如果查找返回错误,只需包装查找,或者更好的是包装公式IFERROR()
(或仅测试 #N/A 错误,以便其他错误仍然迫使您注意),这样您就可以返回显示问题的结果。如果查找返回的是日期时间,而不仅仅是时间,您可以删除整数部分的结果并继续。一旦您知道出了什么问题,所有问题都可以解决。此外,可以评估可能导致问题的任何其他因素,例如如果您没有单击以创建该查找表范围,则可能拼写工作表名称。有时导入的数字(尤其是从网站导入的数字)对 Excel 来说并不是真正的数字,因为它们会包含问题,有些问题我们无法解决,因此 Excel 会因为这个微妙的原因而无法进行查找。很难注意到,但很容易解决。搜索此站点以查找修复它的方法,但如果它是从网站获得的,请寻找一个提取数字字符的网站,而不是提供清理或修复CLEAN()
数据的网站。
不过,我认为几乎可以肯定,查找表中的值是日期时间,例如 43056.2384775,而不仅仅是时间,例如 0.2384775,或者包含网站垃圾的值。无论如何,这都是一个可能的猜测,但我认为您的列已经太宽,无法显示错误,因为错误很短,无法显示。
(我无意贬低网站程序员。我确实意识到他们的目的是显示对网站有用的信息,而不是保留从显示的页面轻松窃取、导入信息的能力。这没有什么错。)