excel - 如何使用两个搜索条件优化 VLOOKUP 公式以提高计算效率?
问题描述
我有一个三列的长表,如下所示:
+-----+-------+-------+
| URL | Label | Value |
+-----+-------+-------+
| u1 | l3 | v1 |
+-----+-------+-------+
| u3 | l4 | v3 |
+-----+-------+-------+
| u2 | l2 | v2 |
+-----+-------+-------+
| u4 | l1 | v4 |
+-----+-------+-------+
| u3 | l5 | v3 |
+-----+-------+-------+
| u1 | l2 | v1 |
+-----+-------+-------+
| u4 | l3 | v4 |
+-----+-------+-------+
| u2 | l4 | v2 |
+-----+-------+-------+
我想准旋转它,让它看起来像:
+-----+-----+-----+-----+-----+-----+
| URL | l1 | l2 | l3 | l4 | l5 |
+-----+-----+-----+-----+-----+-----+
| u1 | #NV | v4 | v1 | #NV | #NV |
+-----+-----+-----+-----+-----+-----+
| u2 | #NV | v2 | #NV | v2 | #NV |
+-----+-----+-----+-----+-----+-----+
| u3 | #NV | #NV | #NV | v3 | v3 |
+-----+-----+-----+-----+-----+-----+
| u4 | v4 | #NV | v4 | #NV | #NV |
+-----+-----+-----+-----+-----+-----+
为此,我编写了一个带有两个搜索条件的 VLOOKUP 公式,如下所示:
=VLOOKUP($E2&F$1,CHOOSE({1.2},$A$2:$A$9&$B$2:$B$9,$C$2:$C$9),2,0)
用CTRL+ SHIFT+输入ENTER。
我不确定我是否正确地将公式从德语翻译成英语 - 我的德语 Excel 原始工作公式如下所示:
=SVERWEIS($E2&F$1;WAHL({1.2};$A$2:$A$9&$B$2:$B$9;$C$2:$C$9);2;0)
在这个例子中,这个公式就像一个魅力。
我的问题:我需要处理的原始表大约有 700.000 行长 - 在 Excel 昨晚整个计算之后,计算甚至还没有准备好。
有什么方法可以更有效地计算?
解决方案
不使用密集数组公式的一种更简单的替代方法是使用辅助列
在 D 列中,生成连接:
=A2&B2
一旦完成,那么它在单元格中是相当直接的公式F2
:
=IFERROR(INDEX($C:$C,MATCH($E2&F$1,$D:$D,0)),"#NV")
向下复制。
推荐阅读
- html - 表格行中文本的对齐方式
- java - 验证数据是否已存在于 firebase
- javascript - 覆盖 Number.toLocaleString("fa-IR") 并更改波斯数字的千位分隔符
- javascript - bcrypt npm 安装错误 - 错误:找不到模块 node-pre-gyp\bin\node-pre-gyp
- verilog - 我是 Verilog 的新手,如果无法合成初始块,那么如何在不重置的情况下初始化寄存器,请有人解释
- c# - 从 .NET C# 访问 LinkedIn API V2
- json - 如何在 JSON 文件中翻译 Laravel 的默认验证错误?
- python - 使用 plotly 和 geojson 文件绘制地图
- neo4j - 基于本体的 Neo4J 动态 Spring 数据类
- python - 批准后如何将对象从 App A.Model A 复制到 App B.Model B 创建新对象并更新 App B Model B 中的一个字段