Excel 查找值的位置后再用位置取值

例题描述

Excel 文件中有下图所示的 3 个片区数据 (不同颜色标明)。

..

现在要算出1-12对应的一列数据,计算规则:在片区3中依次查找1-12,找到后在片区1对应位置取数,如果是0则取片区2同位置的数,如果是1则取F+当前查找数。结果如下图GH列所示:

..

实现步骤

使用插件 SPL XLL

在空白单元格写入公式:

=spl("=12.(k=?3.conj().pos(~),[~,if(?1.conj()(k)==0,?2.conj()(k),""F""/~)])",A1:B6,C1:D6,E1:F6)

如图:

..

简要说明:

循环1-12,先在片区3中查到当前循环数的位置序号k,返回当前数和如果片区1k位置的数是0则取片区2k位置的数,否则取F+当前数。

问答搜集  https://stackoverflow.com/questions/63932628/ho-do-i-list-values-of-an-array-in-a-column-based-on-values-from-other-arrays

【附件】lookup.zip