颠倒反向匹配查找逻辑以避免使用助手行

我已经醒了太久,或者我的心被炸了。 我设法得到我想要做的帮助行的帮助,但我不知道如何扭转公式/函数在另一个方向工作,并避免助手行

目的

确定表面上的最后一个车轮:

  1. 车辆以垂直于表面起始边缘的直线行驶(将其视为沿着一条线行驶的车辆)。
  2. 车轴纵坐标相对于导轴被提供。
  3. 给出了远离起点的引导轴行进的距离。
  4. 表面的长度是给定的(虽然可能不需要)。
  5. 给出车辆的总长度(即车轴1至车轴5)
  6. 轴的数量可以变化,但是将在同一个表中定义

车辆定义

(B) (C) (D) (E) (F) (G) (7) Axle 1 2 3 4 5 (8) Ordinate 0 3.6 4.8 11.4 18 (10) HelperRow 18 14.4 13.2 6.6 0 (B) (C) (D) (11) Surface Length 8 (13) Truck length 18 

该表也已使用命名范围进行了如下configuration:

 Truck_Definition as $C$7:$G$9 Axle_Header as $C$7:$G$7 Axle_Ordinates as $C8:$G$8 Span as $C$11 

等式到目前为止

辅助行只是将从卡车前部到卡车后部的纵坐标方向颠倒。 在C10中,我放置了下面的公式,然后复制到右边

 =Truck_Length-C8 

在电子表格的右侧,我正在开发一个完整的重击(这是技术术语是正确的?)列的中间计算。 列AA行13至27保持前轴行进的距离。 所以我的第一个任务就是确定主轴号。 我可以通过一系列的嵌套if语句来完成,但这使得方程看起来非常难看,有时难以破译。 我在AB13中的主轴号码公式,然后通过ABAB27复制下来,如下所示:

 =IFNA(MATCH(AA13-Span,Axle_Ordinates,1)+1,1) 

我认为这很简单,而且效果很好。 只要设置一个错误捕获匹配查找方法返回轴之前我想要的意思,如果我想轴1它会超出范围或不是资金types的处理。

于是我把注意力转向寻找一个漂亮的光滑的公式从相反的方向来做。 随着辅助行的增加,我在AC13中提出了这个问题,并将其复制到AC27:

 =IFNA(MATCH(W13,$C$10:$G$10,-1),99) 

为了防止出现错误,我扔了99,但到目前为止,还没有出现在我的名单上。 我认为这是工作,我还没有打破,但我没有尝试太多。 显然,我没有定义我的W列:

 =Truck_Length-AA13 

哦,是的,差点忘了。 如果有帮助,K13:K27中有一个索引列,其顺序为1到15。

我想知道的

有没有办法计算倒数第二个方程来确定拖尾轴,而不使用辅助行或嵌套的冗长缠绕的string?

额外的信息

这是上面描述的设置信息的屏幕截图,让我们称之为车辆1。

车辆1

并让我们打电话给这辆车3

车辆3

该更改基于D4中的下拉select

如果碰巧帮助某人,这是我目前工作区域的快照。 中间的3个testing列最终将被删除。 我将要看看结合列。 所有在AD栏里得到3个是的标志! 可悲的是通过希望有一半的列将吐出1个数字。

是的,通过VBA这么简单,但不会去那里,坚持公式。

工作区域

试试这个数组公式…

 {=IFNA(MATCH(W13,Truck_Length-$C$8:$G$8,-1),99)} 

我得到这些结果,在突出显示的背景 – 与您的原始结果相比…

在这里输入图像说明

更新为非CSE解决scheme

这个怎么样 …

 =MATCH(Truck_Length-W13,Axle_Ordinates,1) 

我得到了与前一张图片相同的结果。