我在选项卡组佣金的以下布局中有一个数据块(我也附上照片。)。在为代理商Paul命名的单独选项卡上,我尝试交叉引用单元格B11中的客户端名称和单元格B4中的代理名称以及组委员会的数据,以返回特定代理的佣金百分比。因此,如果在标签保罗我有"客户1"在B11和" Paul"在B4中,我希望能够返回" 12.5"。保罗并不总是在座席4中。任何座席都可以在特定客户的代理2,座席3或座席4中。
我有这个公式,但它不是我想要的,因为我不能对行号进行硬编码。
{=INDEX('Group Commissions'!G:I,MATCH('Paul'!B11,'Group Commissions'!A:A,0),MATCH(B4,'Group Commissions'!C143:E143,0))}
但是,使用一系列列会导致公式出错。正如我所提到的,我不能对行号进行硬编码,所以现在我被卡住了。这甚至可能吗?
{=INDEX('Group Commissions'!G:I,MATCH('Paul'!B11,'Group Commissions'!A:A,0),MATCH(B4,'Group Commissions'!C:E,0))}
答案 0 :(得分:0)
=INDEX('Group Commissions'!G1:I5,MATCH(Paul!B11,'Group Commissions'!A1:A5,0),SMALL(IF(Paul!B4=IF('Group Commissions'!A1:A5=Paul!B11,'Group Commissions'!C1:E5),IF('Group Commissions'!A1:A5=Paul!B11,COLUMN('Group Commissions'!C1:E5)-COLUMN(C:C)+1)),1))
好的,这有点乱,但可以实现您的目标。
对于第二个参数(列号),我不得不使用嵌套的IF()语句来构建一个列号数组(至少是INDEX()子句的开头,使用列计算只是为了便于阅读,我通常会减去所需的数量。)
对于与客户端匹配的行以及行的正确值,我首先为所有单元格生成一个FALSE数组:
IF('Group Commissions'!A1:A5=Paul!B11,'Group Commissions'!C1:E5)
然后检查此数组是否有代理名称,并将其与我想要返回的列号相等(相同的公式,但返回列号减去索引偏移量):
IF(Paul!B4=[Previus part],IF('Group Commissions'!A1:A5=Paul!B11,COLUMN('Group Commissions'!C1:E5)-COLUMN(C:C)+1)
这包含在SMALL()
中,因此我们可以返回最小的结果(将数字放在第一位),这样我们就可以得到列号作为结果。