如何使用 Excel 公式将计算值与给定多个条件的表进行比较

如何使用 Excel 公式将计算值与给定多个条件的表进行比较

我有 Excel 2016。

我有两个值来自一些公式,我想将它们与表格进行比较,并输出“管道尺寸正常”或“管道尺寸太小”。
我得到的一个值是最大展开 (dev) 长度,必须将其四舍五入到下一个更大的表格值。然后使用表格中的该列,我获取我拥有的固定装置单元数,并将其与管道尺寸和最大 dev 长度进行比较。如果固定装置单元数大于该管道尺寸允许的最大值,给定允许的最大展开长度,则需要加大管道尺寸。如果固定装置单元数小于允许值,则管道尺寸正常。

我的表格基本上是这样的:

distro pipe 40 60 80 100 ... <= 最大设备长度 (英尺)
1/2" 2.5 2 1.5 1.5 ...<= 允许的最大设备单位数
3/4" 9.5 7.5 6.5 5.5 ...
1" 32 25 20 16.5 ...
1-1/4" 32 32 27 21 ...
1-1/4" 32 32 32 32 ...
1-1/4" 80 80 80 75 ...
1-1/2" 87 87 87 87 ...
... ....

因此,根据我的其他计算,我得出 3/4 英寸管道的最大开发长度为 49 英尺,总固定装置数量为 56。我的结果应该输出“管道尺寸太小”

我的另一个问题是,在仪表和分配管道列中都有多个相同值的实例。因此,我需要一个迭代公式来找到大于我想出的固定装置单元数量的值。

我已经使用索引匹配函数将最大开发长度四舍五入到下一个更高的列值,但是我无法找出一个公式来引用固定装置单位值。

=INDEX('pipe sizing charts'!$C$2:$M$2,MATCH($H$59,'pipe sizing charts'!$C$2:$M$2,1)+(LOOKUP($H$59,'pipe sizing charts'!$C$2:$M$2)<>$H$59))

其中 C2:CM 是我的最大开发长度表编号,H59 是我正在调整大小的部分的最大开发长度

答案1

我认为我有它。

根据你提出的问题,我做出的假设是:

  • 您的 INDEX 公式找到了正确的列
  • 您需要向下查找该列以找到比您计算的值高一级的值
  • 您已经获得了所寻找的值(就您的问题而言:56)
  • 您需要返回 B 列的数据(我认为这是您的第一列的参考)

因此,如果我的假设正确,您首先需要按降序对表中的数据进行排序。

然后,您需要返回要向下搜索的列的列字母。将 INDEX 公式包装在 SUBSTITUTE/ADDRESS 函数中应该可以工作

=SUBSTITUTE(ADDRESS(1,COLUMN(INDEX('管道尺寸图表'!$C$2:$M$2,MATCH($H$59,'管道尺寸图表'!$C$2:$M$2,1)+(LOOKUP($H$59,'管道尺寸图表'!$C$2:$M$2)<>$H$59))),4),"1","")

现在你有了列字母,你可以使用 INDEX/MATCH 来编写

=INDEX('管道尺寸图表'!B:B,MATCH($H$59,INDIRECT(xx&":"&xx),-1))

上述公式中的 xx 是您输入上述 SUBSTITUTE 公式的单元格引用。MATCH 在这种情况下有效,因为“-1”匹配类型会查找大于您要查找的数字的下一个数字,但数据必须按降序排列才能起作用。

上述操作应该可以实现,可能还需要进行一些细微的调整才能适合你的工作表。

让我知道你怎么去。

相关内容