Excel 公式帮助:如果单元格 1 等于单元格 2,并且单元格 3 中的数字介于 x 和 y 之间,则显示单元格 4

Excel 公式帮助:如果单元格 1 等于单元格 2,并且单元格 3 中的数字介于 x 和 y 之间,则显示单元格 4

这是我今天的公式(它与下拉菜单(单元格 P2)中的前 2 个一起使用):

"=如果(P2=DATA!D3;如果(AND(O4>=1;O4<2);数据!G4;如果(AND(O4>=2;O4<3);数据!G5;如果(AND(O4>=3;O4<4);数据!G6;如果(AND(O4>=4;O4<5);数据!G7;如果(AND(O4>=5;O4<6);数据!G8;如果(AND(O4>=6;O4<7);数据!G9;如果(AND(O4>=7;O4<8);数据!G10;如果(AND(O4>=8;O4<9);数据!G11;如果(AND(O4>=9;O4<10);数据!G12;如果(AND(O4>=10 ;O4<11);数据!G13;如果(AND(O4>=11;O4<12);数据!G14;如果(AND(O4>=12;O4<13);数据!G15;如果(AND(O4>=13;O4<14);数据!G16;如果(AND(O4>=14;O4<15);数据!G17;如果(AND(O4>=15;O4<16);数据!G18;如果(AND(O4>=16;O4<17);数据!G19;如果(AND(O4>=17;O4<18);数据!G20;如果(AND(O4>=18;O4<19);数据!G21;)))))))))))))))));如果(P2=DATA!D4;如果(AND(O4>=1;O4<2);数据!J4;如果(AND(O4>=2;O4<3);数据!J5;如果(AND(O4>=3;O4<4);数据!J6;如果(AND(O4>=4;O4<5);数据!J7;如果(AND(O4>=5;O4<6);数据!J8;如果(AND(O4>=6;O4<7);数据!J9;如果(AND(O4>=7;O4<8);数据!J10;如果(AND(O4>=8;O4<9);数据!J11;如果(AND(O4>=9;O4<10);数据!J12;如果(AND(O4>=10;O 4<11);数据!J13;如果(AND(O4>=11;O4<12);数据!J14;如果(AND(O4>=12;O4<13);数据!J15;如果(AND(O4>=13;O4<14);数据!J16;如果(AND(O4>=14;O4<15);数据!J17;如果(AND(O4>=15;O4<16);数据!J18;如果(AND(O4>=16;O4<17);数据!J19;如果(AND(O4>=17;O4<18);数据!J20;如果(AND(O4>=18;O4<19);数据!J21;)))))))))))))))))))”

单元格 P2 包含从 DATA!D3 到 D6 的文本。如果 P2 等于 DATA!D3,则如果单元格 O4 中的数字大于或等于 1 且小于 2,则从单元格 G4 获取数据。

我想将 DATA!D5 和 D6 添加到该公式中,但是当我将其更改为 DATA!D5 或 D6 时,单元格 P2 显示为 FALSE。

希望这是有意义的,并且有人对如何使其正常工作给出了很好的建议

答案1

更好的标题标签

您的主题标题让我相信您的问题来自一个懒惰的人,他无法学习简单的公式基础知识,但事实并非如此。我会将其重新标记为“如何在 Excel 中实现二维查找?”。

Excel 的编码风格

我让工作表易于阅读。使用几个单元格实现此类公式以简化调试。成功后,您可以根据需要隐藏行或列,以便在使用工作表时专注于相关单元格内容。

配方改进

您尝试通过执行重复的 IF 公式来选择依赖于 P2 和 O4 内容的单元格值。在您的案例中,可以很容易地看到所寻址的单元格和 O4 值之间的简单公式关系。查看矩阵版本的 excel INDEX 函数。使用 O4 值作为参数来选择矩阵的元素。单行或单列也是矩阵。通过将数字向下舍入为非小数来消除 O4 的小数内容。

仅处理一个维度

使用此解决方案,您可以通过以下方式压缩很多内容:

=索引(g4:g21;向下舍入(04;0);1)

而不是整个

如果(AND(O4>=1;O4<2);数据!G4;如果(AND(O4>=2;O4<3);数据!G5;如果(AND(O4>=3;O4<4);数据!G6;如果(AND(O4>=4;O4<5);数据!G7;如果(AND(O4>=5;O4<6);数据!G8;如果(AND(O4>=6;O4<7);数据!G9;如果(AND(O4>=7;O4<8);数据!G10;如果(AND(O4>=8;O4<9);数据!G11;如果(AND(O4>=9;O4<10);数据!G12;如果(AND(O4>=10;O4<11) ;数据!G13;如果(AND(O4>=11;O4<12);数据!G14;如果(AND(O4>=12;O4<13);数据!G15;如果(AND(O4>=13;O4<14);数据!G16;如果(AND(O4>=14;O4<15);数据!G17;如果(AND(O4>=15;O4<16);数据!G18;如果(AND(O4>=16;O4<17);数据!G19;如果(AND(O4>=17;O4<18);数据!G20;如果(AND(O4>=18;O4<19);数据!G21;))))))))))))))))))

请记住,矩阵内的坐标是相对于其自身而言的,而不是指整个工作表。

处理第二维度

增加矩阵以便它覆盖整个查找区域,例如:

=index(g4:z21;向下舍入(04;0);1)

将“1”替换为矩阵中的相对位置。您需要通过为 P2 中的四个可能的文本字符串中的每一个分配一个相对列坐标来进行一些预处理。您可以使用 IF 子句和一个指向翻译表的 VLOOKUP 来执行此操作。

相关内容