你这哪是获取一个值,而是取一行重新生成一张表
带辅助列的话界面有些乱,我把公式整合起来了,当然只能放在一个单元内
第二行公式:=IF(COUNTIF(G:G,G2)=1,G2 & "," & H2 & "," & I2,G2 & "," & "男" & "," & VLOOKUP(G2&"男",IF({1,0},$G$2:$G$7 & $H$2:$H$7,$I$2:$I$7),2,0))
分解说明
第一层公式:IF(COUNTIF(G:G,G2)=1,A,B)
统计G列与当前单元G2一致的数量并判断是否为1,如果为1则执行A,否则执行B
第二层公式A:G2 & "," & H2 & "," & I2
拼接G2,H2,L2并以逗号分隔(直接取值)
第二层公式B:
G2 & "," & "男" & "," & VLOOKUP(G2&"男",IF({1,0},$G$2:$G$7 & $H$2:$H$7,$I$2:$I$7),2,0))
拼接 G2 , "男",和 查询后的年龄(带分隔符)
第三层查询年龄公式:
VLOOKUP(G2&"男",IF({1,0},$G$2:$G$7 & $H$2:$H$7,$I$2:$I$7),2,0)
拼接 G2+"男" 当作查询值,从动态表中查询年龄,返回动态表的2列值,即年龄值。
第四层 动态表公式:IF({1,0},$G$2:$G$7 & $H$2:$H$7,$I$2:$I$7)
$G$2:$G$7 & $H$2:$H$7
将G列和H列拼接组成新的一个列(1列,也是匹配列)
$I$2:$I$7=将I列(年龄)作为动态表一个列(2列)
以上行范围都是2-7。