情况:我有一个自动过程,可以从不同的输入表收集数据并以透视友好的格式显示。看来其他人也需要相同的数据,尽管他们希望数据的格式略有不同(他们不是excel的朋友)。为此,我可以按照自己的需要格式化表格的版本(带有空白列,其中我的提取物不包含任何数据)。
表(均为)是每个部门每年每个成本/收入(从现在开始,成本)类别的一行。原始数据包含每年的成本,尽管某些用户希望将其作为初始年份的成本增量。我想要: 一栏原始成本(X)。一列增量成本(Y)。一个输出列(Z)包含这两个值之一,具体取决于下拉选择。前两列位于“用鼠标选择并复制这些”列的右侧,因此我无需教其他用户如何选择不相邻的列:P(只是让您知道理解的水平我必须在这里工作)
现在最简单的方法是在Z列中添加一个if语句,如下所示:
=IF(selected_Calc="Use raw cost";[@[X]];[@[Y]])
或者,嵌套更多的if(“使用与2019年的差异”,如果将来有更多方法显示该值,则可能会添加更多的嵌套)
这有效。但是,它并没有我想要的那么优雅,如果我确实最终找到了更多的方法来为其他人计算,则将有很多嵌套的ifs。
因此,我正在考虑这样的事情:
=INDIRECT("[@["INDEX(mapTab_out;match(selected_Calc;mapTab_in;0))&]]")
但是这给出了一个#ref,而且我并不希望它能正常工作。
想法是:。
到目前为止,我发现的google-stuff似乎都对从表外部使用间接函数感兴趣,并且通常希望对整个列求和。我过去曾经使用过。像使用@这样的“ ThisRow”东西似乎并不能间接使用。有什么想法,还是我只是在公式中犯了一些初学者错误?
答案 0 :(得分:0)
假设它在同一张表中,则可以利用隐式交集并只需使用:
=INDEX(Tablename,,MATCH(selected_Calc,Tablename[#Headers],0))
其中selected_Calc是要返回的列的名称。 (如果出于某种原因要使用查找表,则可以将其作为下一个INDEX / MATCH的结果。)