Excel 查找值的位置后再用位置取值
例题描述
Excel 文件中有下图所示的 3 个片区数据 (不同颜色标明)。
现在要算出1-12对应的一列数据,计算规则:在片区3中依次查找1-12,找到后在片区1对应位置取数,如果是0则取片区2同位置的数,如果是1则取F+当前查找数。结果如下图G、H列所示:
实现步骤
使用插件 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,返回当前数和如果片区1中k位置的数是0则取片区2中k位置的数,否则取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
英文版