Excel 使用vlookup返回公式有效,但公式仅使用表中的第一行作为变量

Excel 使用vlookup返回公式有效,但公式仅使用表中的第一行作为变量,excel,excel-formula,boolean,vlookup,Excel,Excel Formula,Boolean,Vlookup,这是我第一次使用布尔函数并试图用vlookup返回公式。我一直在使用和让excel使用vlookup返回公式。有桌子和没有桌子我都试过了。它适用于第一行,但在这之后,公式会继续为每一个其他公式引用第一行中的字段 如果人们真的想看到公式在运行,我用通用名称重新创建了电子表格(请原谅它太粗糙) 我使用的查找公式是=eval(VLOOKUP([@[Boolean Only]],Sheet2!$C$3:$D$9,2,0)) 它应该从中选择的公式是。第一行选择公式BlueTable[HIRE\u END\

这是我第一次使用布尔函数并试图用vlookup返回公式。我一直在使用和让excel使用vlookup返回公式。有桌子和没有桌子我都试过了。它适用于第一行,但在这之后,公式会继续为每一个其他公式引用第一行中的字段

如果人们真的想看到公式在运行,我用通用名称重新创建了电子表格(请原谅它太粗糙)

我使用的查找公式是
=eval(VLOOKUP([@[Boolean Only]],Sheet2!$C$3:$D$9,2,0))

它应该从中选择的公式是。第一行选择公式
BlueTable[HIRE\u END\u DATE]-BlueTable[HIRE\u START\u DATE]
(我在列名前尝试了带@和不带@。如果我使用@s,它将返回#name error)

最终结果看起来像。提取公式后,它将使用第一行,而不是公式的行

我两个都试过了

Function Eval(s As String) As Variant
    Application.Volatile
    Eval = Application.Evaluate(s)
End Function

第二条建议在互联网上的其他帖子中提出,但没有什么不同

我错过什么了吗?我只是不知道如何让它改变公式的行。如果有帮助的话,它不需要是一张桌子。我做这件事只是为了和我读到的相符。任何帮助都将不胜感激


对于任何想了解我正在做什么的人,布尔运算会计算出使用什么公式来确定在用户指定的日期内项目租用了多少天(实际文件在整个一年中>50000行)。因此,如果(比如)该项目仍在租用中,则生成的公式将使用用户指定的结束日期减去租用的开始日期来获得天数。还有一点,但我只是想知道为什么vlookup不工作,然后我把它的其余部分

您好,RainbowCanary,我真的不知道数据是否会被截短,但我猜您的vlookup并没有得到很好的效果…尝试在表的“Boolean Only”字段(底图)上过滤UNIQUE,然后复制并物理地将查找表与UNIQ进行匹配,并将列值与列值进行比较。另外,由于您的目标查找看起来很小(只是示例中的一个假设),您可以尝试使用查找(C3)值对该表进行排序,并将vlookup调用修改为exact(True=>”,2,0“chg to”,2,1”)。您好,JBowman,抱歉,我一定错过了您回复的通知。谢谢你试一试,但事实证明这只是电脑/excel的情绪化。星期一早上来了,一切正常。非常令人沮丧,因为那个星期五我可能花了两个多小时试图让它工作!
Function EvalFormula(FormulaCell As String)
EvalFormula = Evaluate(FormulaCell)
End Function