添加新行以完成Excel电子表格

添加新行以完成Excel电子表格,excel,Excel,假设我有一张Excel表格,如下所示: states incidents years 1 Texas 1 2000 2 Texas 1 2008 3 Arizona 2 2004 4 California 1 2002 5 California 4 2007 我想为没有事件的状态创建值为0的新行。例如,我将为德克萨斯州创建七个新行,表明它在2001年至2007年期间没

假设我有一张Excel表格,如下所示:

      states incidents years
1      Texas         1  2000
2      Texas         1  2008
3    Arizona         2  2004
4 California         1  2002
5 California         4  2007
我想为没有事件的状态创建值为0的新行。例如,我将为德克萨斯州创建七个新行,表明它在2001年至2007年期间没有发生过任何事件。亚利桑那州将新建八排(2000年至2008年,2004年除外)


如何在Excel中执行此操作?显然,我可以手动操作,但我想知道是否有一种方法可以自动化该过程。

在Sheet2上创建一个新表,该表将填充第一个表中的数据或零

对于二维版本:将状态放在最上面一行,年份放在左边一行。用如下等式填充数据(从单元格B2开始):

键入公式时,按ctrl+shift+enter键接受它。这是一个数组函数

对于1-D版本,将状态放在A列,年份放在B列。现在将C列:

=iferror(index(Sheet1!$C$2:$C$6, match($A$ & "_" & $B2, Sheet1!$B$2:$B$6 & "_" & Sheet1!$D$2:$D$6, 0)), 0)
(别忘了按ctrl+shift+enter)


如果使用Insert>Table将原始数据格式化为表格,您将看到键入的公式被替换为巧妙的列标题。。。这将使整个表的数据可用于公式,无论添加了多少数据。非常有用。

您需要VBA,我想您在这里呆了很长时间,已经意识到“我如何在Excel中实现这一点?”对于本网站来说是一个不充分的问题。您用[r]标记提问。这些答案怎么了?您尚未对任何解决方案作出响应。我本打算在R中找到如何执行此操作的方法,但被告知在Excel中执行此操作。我后来接受了另一个问题的解决办法。
=iferror(index(Sheet1!$C$2:$C$6, match($A$ & "_" & $B2, Sheet1!$B$2:$B$6 & "_" & Sheet1!$D$2:$D$6, 0)), 0)