如何使用不同的标头手动映射Excel中的列

时间:2018-06-06 10:11:08

标签: excel excel-vba excel-formula vba

Excel example

我想写一个类似于简单的Index-Match或Vlookup-Match的函数。

问题: “Kadabra”列的值应显示在“Jam”列中,“Shadabra”列中的“Shadabra”列中。鉴于列将具有一致的标题(Jim,Jam,Kadabra,Shadabra),但它们的位置可能会改变(这意味着我们不能使用列号)。 “Abra”和“Jimmy”是指数值。

我正在寻找一个excel配方解决方案。如果没有,那么也欢迎使用Visual Basic解决方案。

2 个答案:

答案 0 :(得分:2)

实现此目的的一种方法是使用如下所示的索引匹配匹配公式,如果您要将此公式输入到单元格B8中:

=INDEX($A$1:$C$4,MATCH(A8,$A$1:$A$4,0),MATCH("Kadabra",$1:$1,0))

在C8中:

=INDEX($A$1:$C$4,MATCH(A8,$A$1:$A$4,0),MATCH("Shadabra",$1:$1,0))

然后你可以填写公式,它应该将适当的值带入你的Jimmy / Jim / Jam Table。

答案 1 :(得分:1)

首先请查看以下截图:

enter image description here

我在E:F创建了一个匹配表,以避免针对该条件嵌套IF。您可以将匹配表移动到另一个工作表并相应地更改您的公式。

B8的公式如下。您可以向下和向右拖动它:

=VLOOKUP($A8,$A$2:$C$4,MATCH(VLOOKUP(B$7,$E:$F,2,0),$A$1:$C$1,0),0)