如何将数据从一张 Excel 表导入到另一张

Posted

技术标签:

【中文标题】如何将数据从一张 Excel 表导入到另一张【英文标题】:How I can import data from one excel sheet to other 【发布时间】:2021-12-02 14:08:40 【问题描述】:

在我的 excel 中,我有主工作表,其中包含我需要的所有数据,但此数据未过滤(大多数行为空),因此要从特定列中选择值,我需要取消选中过滤器中的“空白”和只有这样我才能复制数据并将其粘贴到另一张表(其中应包含每列的数据)。我对主工作表中的每一列都执行此操作。 有没有办法将数据(具有值的行)从每列导入到另一张表?因为当我手动进行时,它需要很多时间。 谢谢帮忙!

【问题讨论】:

【参考方案1】:

如果我理解你的想法,你需要这样的表达方式:

=Sheet1!A26+Sheet1!B26

【讨论】:

【参考方案2】:

突出显示源数据并使用表/范围中的数据进入 powerquery

在家中...高级/编辑器...在下面粘贴代码,更改第一行以反映您的范围。好的

文件...关闭并加载

这适用于任意数量的列,将数据“整理”到每列的顶部

let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
#"Demoted Headers" = Table.DemoteHeaders(Source),
#"Added Index" = Table.AddIndexColumn(#"Demoted Headers", "Index", 0, 1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", "Index", "Attribute", "Value"),
#"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns","Index"),
#"Grouped Rows" =Table.Group(#"Removed Columns" , "Attribute", "GRP", each Table.AddIndexColumn(_, "Index", 1, 1), type table),
#"Expanded GRP" = Table.ExpandTableColumn(#"Grouped Rows", "GRP", "Value", "Index", "Value", "Index"),
#"Pivoted Column" = Table.Pivot(#"Expanded GRP", List.Distinct(#"Expanded GRP"[Attribute]), "Attribute", "Value"),
#"Removed Columns1" = Table.RemoveColumns(#"Pivoted Column","Index"),
#"Promoted Headers" = Table.PromoteHeaders(#"Removed Columns1", [PromoteAllScalars=true])
in #"Promoted Headers" 

【讨论】:

【参考方案3】:

如果您想在删除空格的同时堆叠行值,只需使用粘贴到单元格中的FILTER 函数然后跨列复制即可:

=FILTER(Sheet1!A2:A100,LEN(Sheet1!A2:A100)>0)

但是,我注意到左侧有时间戳。如果要过滤掉完全空白的表数据行,同时保留至少一列中包含数据的所有行并保持表完整性(仍然存在一些空白),那么这也可以通过更复杂的公式来完成:

=LET(data, Sheet1!B1:E100, table, Sheet1!A1:E100, FILTER(table&"",MMULT(LEN(data),TRANSPOSE(--(COLUMN(data)>0)))>0))

在这里,您可以将data 字段中所有字符串的长度与单位矩阵相乘来创建过滤条件,该单位矩阵使用MMULT(LEN(data),TRANSPOSE(--(COLUMN(data)>0))) 为您提供一行中所有字符的总和。

[参考:https://***.com/a/61476755/3688861]

然后可以测试这个数组,看看它是否大于过滤条件的 0。

【讨论】:

谢谢答案,这是最正确的,但我的意思有点不同:目前我正在通过过滤每一列的空白值来完成这项任务,这样我就可以将 id 和时间戳复制到稍后我将使用 VLOOKUP 函数从中导入新工作表。我正在为每一列(email_minus_10、email_minus_7 ...)执行此操作。最后,当我为每一列完成 VLOOKUP 时,我有这样的表格(帖子中的最后一个屏幕截图)。有什么简单的方法吗?

以上是关于如何将数据从一张 Excel 表导入到另一张的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA 将值从一张表移动到另一张表

如何将SQL Server中多个表的数据一次性返回到一张EXCEL工作表(Sheet)中

将整行从一张excel表复制到另一张表的下一个空行

VB6:如何实现导入Excel表格,然后再生成另一张Excel?

怎么将MySQL里的表数据导入到SqlServer里面

Excel 单元格从一张纸到另一张纸