使用 Vlookup 提取数据并使用 Arrayformula 检查值

Extracting data with Vlookup and checking values with Arrayformula

我需要将数据从一个选项卡(提取的数据)提取到另一个选项卡并按以下方式验证数据:

如果0%分配3 如果从 0 到 -10% 分配 2 如果从 -10% 或更多分配 1 如果从 0% 到 10% 分配 4 如果从 10% 或更多分配 5

这里是 link 文件 https://docs.google.com/spreadsheets/d/1f8SFi2hNP6Anav7G7BYWyK-fasPk1pT1A2HFJblT-FI/edit?usp=sharing

我建议你使用两个 vlookup。

如果您有一个名为 'Ranges' 的选项卡,其中包含以下两列:

Percentage  Result
-1000%      1
-10%        2
0%          3
10%         4
11%         5

那么 'calculations' 选项卡上单元格 B1 中的公式将类似于:

=arrayformula({"Con Potential";iferror(vlookup(vlookup(A2:A,'Extracted data'!A:D,4,0),Ranges!A:B,2,1),)})

删除单元格 B1 下的所有数据以使 arrayformula 正常工作。

第二个 vlookup 引用 'Extracted data' 选项卡上的列 D,因为我认为这是您比较的百分比?如果不是,请将 vlookup 中的 4 更改为另一列。

如果有帮助,请看: https://whosebug.com/help/someone-answers

注意:您可以使用固定数组代替 Ranges!A:B

=arrayformula({"Con Potential";iferror(vlookup(vlookup(A2:A,'Extracted data'!A:D,4,0),{-10,1;-0.1,2;0,3;0.1,4;0.11,5},2,1),)})

如果您想临时查看固定数组以防您想要编辑任何值,请将它放在一个单元格中的某个地方:

={-10,1;-0.1,2;0,3;0.1,4;0.11,5}

, 用于跳到新列,; 用作 return。

相关性

正在查看来自 'Position Delta' 的 'Relevance' 查询和 sheet 中的这个 table:

由于 'position delta' 值 10 不能同时具有 5 和 4 的相关性,我假设 10 得到 5。如果这不正确,那么我将调整边界。

将此添加到 'calculations' 选项卡上的单元格 C1(清除下面的所有单元格):

=arrayformula({"Relevance";iferror(vlookup(vlookup(calculations!A2:A,'Extracted data'!A:D,3,0),{0,5;11,4;21,3;31,2;41,1;51,0},2,1),)})

固定数组 {0,5;11,4;21,3;31,2;41,1;51,0} 具有这些值:

0   5
11  4
21  3
31  2
41  1
51  0

如果您需要更改边界以便 10 是 4,而不是 5,则更改 vlookup 以使用此固定范围 {0,5;10,4;20,3;30,2;40,1;50,0}:

0   5
10  4
20  3
30  2
40  1
50  0

vlookup 是递增的,任何大于 11 的都将得到 5,然后 11 到 20 将得到 4,21 到 30 将得到 3,依此类推。

,1) 在最右边的 vlookup 中获取最接近的值匹配,直到 'position delta' 到达下一个边界。