我创建了 2 列,第一列有一个使用数据验证的系统类别,第二列有该系统的描述和故障。
这样做的目的是打开某些部件的故障。
在另一张表中,我希望仅在这次我想选择系统时做同样的事情,并且描述将自动出现在下一列中,显示我在该系统上写的所有故障。
我对excel的所有功能都不是很擅长。但我仍然在寻找可能对我有帮助的人。我曾尝试使用 DGET 功能,但它让我无处可去。
2 回答
也许在这里尝试解决方案 - 在不复制粘贴整个内容的情况下解释有点棘手: https ://superuser.com/questions/536234/excel-how-to-vlookup-to-return-multiple-values
如果您正在使用电子表格,还请查看 vlookup()。
正如预期的那样,您在这里看到的所有回复 - 可能在其他地方 - 都是 VLookup 的小伙伴,或者拒绝回答您的问题。
我猜你正在使用 DGET() 因为你需要从一个命名列中检索数据,使用匹配另一个命名列中的搜索词;你就是这样,因为你不能依赖列序号或地址——你必须按名字来做。
VLookup 不会为您做到这一点:不是没有极其复杂和脆弱的数组公式。
坏消息是:微软从未发布过 DGET() 公式或任何相应的 VBA 工作表函数代码的工作示例。
在帮助文件和 MSDN 上有一页又一页的描述性文本和一般解释:但没有工作示例。雷德蒙德没有人坐下来让 DGET() 函数使用一组可重现的函数参数工作,并发布了工作公式的屏幕截图。
我会让你猜猜这是为什么。
也许在某个地方有一个例子,实际上是使用 DGET() 为已知列序号实现的 VLookup。如果有,我从来没有找到它,你也不会:当然,对于使用字段名称而不是已知序数的任何应用程序来说,它都是无用的。
您需要做的是捕获表格数据范围,字段名称位于顶行,然后使用 ADODB 或 MS-Query 将其传递给 SQL 查询。坏消息是所有 MS-JET Excel 驱动程序都有致命的内存泄漏。
失败后,您将数据导出到适当的数据库应用程序可以运行 SQL 的地方:这实际上是正确的做法,因为您尝试使用 DGET() 是一个关系数据查询。
如果您需要完全在 Excel 中执行此操作,那么您已经达到了通常与飞机失事的最后一名幸存者相关的绝望程度,他吞噬了他不幸的乘客烧焦的遗体,最终被迫考虑打开和吃机上餐饮的可怕紧急情况。
Excel 中等价物的可怕细节是此处发布的一个可怕的黑客:
http://excellerando.blogspot.com/2014/09/from-time-to-time-it-necessary-to.html