2015-05-13 84 views
0

我对excel很新,发现它有点棘手,所以任何帮助,将不胜感激!EXCEL帮助(无VBA) - 动态范围和偏移量/ vlookup

我有一张表格,数据将由人输入。在此主表中,我使用了IF语句将相关列复制到工作簿中的另一个工作表。 (不知道这是否是最好的方法)。

因此,当一个新的数据行输入到主表单中时,这会在另一个表单中创建一个新行,因为它显示了在主表单中输入的内容。这可以说是建立一个分表。从这个子数据(无论是否转向表)我想创建数据透视表。

问题: 如果将子数据转换为表格,则当在主表格中输入新数据时,子表格不会展开。 尝试另一种方式,不用子数据创建表格,我尝试使用OFFSET创建动态范围。但是,如果从主工作表中删除条目,则会在用于创建数据透视表的动态范围中创建一个空行。

任何帮助将不胜感激!我已经研究过OFFSET,MATCH,VLOOKUP,虽然我确实了解了这些功能可以实现的功能,但它有点令人困惑。

在此先感谢!

+2

子表的目的是什么?提供更多详细信息或数据结构示例 – dePatinkin

+0

输入数据的主表包含太多列,因此数据太多。子数据表从主表中取6列并显示它们。这很容易,我也不想从主数据运行数据透视表,我只是希望它是一个数据输入工具。子数据只有6个带有标题的列,并且在主数据库中添加一行时,行会自动添加。 - 我希望那是你的意思?! – thefonz

+0

如果你有一个唯一的ID列,它可以帮助。没有看到数据或你尝试过的东西,很难给你一个解决方案,因为有很多。另外,如果您正确删除表格中的一行,则不应有空白。 – dePatinkin

回答

0

这个特殊的组合是用来摆弄范围,例如验证和复杂的查找。
他们会不是帮助你解决你的问题。
当新数据输入到相邻的单元格中时,触发范围扩展,而不是当其现有条件变得可识别时。
=OFFSET()用于摆弄范围。
MATCH(...,0)找到你的字符串的第一个匹配项,在你的情况下缺少字符串。
如果你能在实际上建立了一个数据透视表来间接引用这个公式将是您的解决方案:

=OFFSET(YourSheet!$A$1,0,0,MATCH("",YourSheet!$A:$A,0)-1,MATCH("",YourSheet!$1:$1,0)-1) 

其中YourSheetA1包含的财产以后像

=IF(IncrementalDataSheet!A1<>"",IncrementalDataSheet!A1,"") 
0

我想我明白你的问题'有。如果在Sheet1中有A:Z数据,并且您只希望在更具视觉吸引力的Sheet2上看到列A,T和Y,则最初的想法是将Sheet2,=Sheet1!T1中的=Sheet1!A1放入B1中,和=Sheet1!Y1分成C1。根据需要将范围向下复制以显示来自Sheet1和Bingo的数据!一个不错的整理汇总版本。

但是等待......如果从Sheet1中删除一行,Sheet2中的引用单元格现在只显示#REF! ... boo ...这是不好的。

因此,您可以使用INDIRECT函数来确保生成的值始终相对基于目标单元的地址,而不是使用直接单元格引用。

在Sheet2中,你会放:

A1 =INDIRECT("Sheet1!"&(CELL("address",A1))) 
B1 =INDIRECT("Sheet1!"&(CELL("address",T1))) 
C1 =INDIRECT("Sheet1!"&(CELL("address",Y1))) 

抄下。乍一看,它看起来就像原来的结果,不同之处在于您现在可以从Sheet1中删除行而不会损害Sheet2上的输出,因为间接引用只会查找所有位置发生变化的新值。

然后,您应该可以轻松地转出结果数据集。

这就是说......当您创建数据透视表时,您可以选择包含哪些列,以便您可以摆脱原始巨型表格并排除您不感兴趣的任何列汇总。