我有一个包含3个条件的数据表。成本中心,员工级别和工作国家/地区。工作表看起来像这样
Australia China Hong Kong India
All L10 10,000 10,001 10,003 10,004
All L11 9,000 9,001 9,002 9,003
C9620 L10 10,005 10,006 10,007 10,008
C9620 L11 9,005 9,006 9,007 9,008
我有50个国家/地区,100多个成本中心以及每个成本中心10个级别。
我将数据移动到另一种以列形式列出的格式。工资栏包含我的公式,并且仅适用于所有国家/地区的成本中心“全部”。我相信问题出在成本中心。
Country Cost Center Level Salary
Australia All L10 10,000
Australia C952 L10 #N/A
Austraila C845 L10 #N/A
China All L10 10,001
China C952 L10 #N/A
China C845 L10 #N/A
我已经使用数组公式来获得答案。
-Median Salary by Cost Center'!$B$14:$B$1682 = Cost Centers
-Logic Board'!$G14 = Cost Center
-Logic Board'!$H14 = Employee Level
-Median Salary by Cost Center'!$C$13:$AR$1698 = All Data
-Logic Board'!$E14 = Country
-Median Salary by Cost Center'!$C$13:$AT$13 = Country
=VLOOKUP(IF('Median Salary by Cost Center'!$B$14:$B$1682='Logic Board'!$G14,'Logic Board'!$H14,"NA"),'Median Salary by Cost Center'!$C$13:$AR$1698,MATCH('Logic Board'!$E14,'Median Salary by Cost Center'!$C$13:$AT$13,0),FALSE)
预期结果的薪水列一直向下填充。当前,它仅适用于成本中心“全部”。所有其他成本中心都提出了#N / A
任何想法都会受到赞赏。
答案 0 :(得分:3)
最简单的方法可能是没有公式。使用Power Query,您只需单击几下即可转换表格。
在前两列中添加列标签,然后将该表添加到Power Query编辑器中。选择前两列,然后在“变形”功能区上使用 Unpivot>其他列命令。重命名,重新排列和排序数据,然后将其加载到工作表中。
如果您不想使用Power Query,则可以使用此公式。请参阅屏幕快照以获取单元地址并进行相应调整。请注意,此公式不应与整个列引用一起使用,否则它将变得非常慢。
=INDEX($C$2:$F$5,MATCH(J2&K2,INDEX($A$2:$A$5&$B$2:$B$5,0),0),MATCH(I2,$C$1:$F$1,0))
答案 1 :(得分:1)
我同意@teylyn的观点,认为最有效的方法是使用 Power Query 取消旋转表以获得所需的结果。考虑到要转换的数据很多,基于公式的答案可能会减慢计算速度。
还有另一种使用数据透视表和数据透视图向导的方法,可以在文本到列功能的帮助下将原始表转换为所需的表。
>以下是如何在不同版本的Excel中查找数据透视表和数据透视图向导的说明:Where are Pivot Table and PivotChart Wizard in Excel 2007, 2010, 2013, 2016, 2019 and 365
干杯:)