反转反向匹配查找逻辑以避免使用辅助行

时间:2016-04-27 10:47:21

标签: excel excel-formula

我已经醒了太长时间和/或我的思绪都被炸了。我设法在帮助行的帮助下得到了我想做的事情,但我无法弄清楚如何反转公式/函数以在另一个方向工作并避免帮助行

目的

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

  1. 车辆在垂直于表面起始边缘的直线上行驶(将其视为沿着行驶的车辆)。
  2. 车轴纵坐标相对于引导轴供应。
  3. 引导轴离开起点的距离是     给出。
  4. 给出了表面的长度(尽管可能不是     必需的)。
  5. 给出车辆的总长度(即轴1到轴     5)
  6. 轴的数量可以变化但是将在相同的位置定义     表
  7. 车辆定义

             (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
    

    该表还使用命名范围进行了配置,如下所示:

    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 if语句来完成它,但这使得方程式看起来有时很难看并且难以破译。我在AB13中的铅轴数公式,然后我通过ABAB27向下复制,看起来像这样:

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

    我认为这很简单,效果很好。只需设置一个错误捕获,因为匹配查找方法返回轴之前我想要的意思是如果我想要轴1它将超出范围或不是基金类型交易。

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

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

    我扔了99以防万一有错误,但到目前为止它还没有出现在我的名单上。我认为它有效,我还没有打破它,但我没有尝试过多少。显然我没有定义我的W栏:

    =Truck_Length-AA13
    

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

    我想知道什么

    有没有办法计算用于确定后轴的倒数​​第二个等式,而不使用辅助行或嵌套if if语句的长串?

    额外信息

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

    Vehicle 1

    然后调用此Vehicle 3

    Vehicle 3

    此更改基于D4中的下拉选项

    如果碰巧帮助某人,这是我目前工作区的一个快照。中间的3个测试列最终将被删除。我也将考虑组合列。所有那些在AD列中得到3个是的标记!可悲的是,希望有一半的列会吐出1个数字。

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

    Work Area

1 个答案:

答案 0 :(得分:1)

试试这个数组公式...

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

我在突出显示的背景中得到了这些结果 - 与原始结果相比......

enter image description here

针对非CSE解决方案进行了更新

这个怎么样......

=MATCH(Truck_Length-W13,Axle_Ordinates,1)

我得到的结果与之前的图片相同。