Sql server 使用EXCEL(而不是R或SQL)进行数据操作/分析/聚合--由两列组成的复合键,计算出的计数总和
我四处打听,仍然没有解决办法。人们只是告诉我“使用数据透视表容易”,但说起来容易做起来难,到目前为止还没有解决办法 我想使用Excel 2013/2016完成以下工作: 1。原始数据 我有一个这样的逗号分隔的文本文件,有280万行: 表1:Sql server 使用EXCEL(而不是R或SQL)进行数据操作/分析/聚合--由两列组成的复合键,计算出的计数总和,sql-server,excel,aggregate,composite-key,Sql Server,Excel,Aggregate,Composite Key,我四处打听,仍然没有解决办法。人们只是告诉我“使用数据透视表容易”,但说起来容易做起来难,到目前为止还没有解决办法 我想使用Excel 2013/2016完成以下工作: 1。原始数据 我有一个这样的逗号分隔的文本文件,有280万行: 表1: Cell_Id, Gene_Id, Count gcatatgc,AAK1,36 gcatatgc,ABHD14B,5 gcatatgc,ABHD17B,20 tttggcca,ABI3,4 tttggcca,AAK1,50 tttggcca,ABHD14B
Cell_Id, Gene_Id, Count
gcatatgc,AAK1,36
gcatatgc,ABHD14B,5
gcatatgc,ABHD17B,20
tttggcca,ABI3,4
tttggcca,AAK1,50
tttggcca,ABHD14B,6
aaaggctt,ABT1,5
aaaggctt,ACAA1,14
aaaggctt,AAK1,50
aaaggctt,ABHD14B,6
ggaggcaa,AAK1,50
ggaggcaa,ABHD14B,6
ggaggcaa,AAK1,36
ggaggcaa,ABHD14B,5
......
....
Distinct_Cell_ID, Key_Distinct_Cell_ID
gcatatgc, 1
tttggcca, 2
aaaggctt, 3
ggaggcaa, 4
......
....
Distinct_Gene_ID, Key_Distinct_Gene_ID
AAK1,1
ABHD14B,2
ABHD17B,3
ABI3,4
ABT1,5
ACAA1,6
......
....
Key_Distinct_Cell_ID, Key_Distinct_Gene_ID, Sum_Group_Count
1, 1, 36
1, 2, 5
1, 3, 20
2, 4, 4
2, 1, 50
2, 3, 6
3, 5, 50
3, 6, 6
3, 1, 36
3, 2, 5
......
....
Cell\u ID
和Gene\u ID
具有重复项
2。步骤A。从上面的CSV文本文件中,我想创建一个具有不同Cell\u ID
的表,并使用每个不同Cell\u ID
的唯一键号生成新列
生成的表2:
Cell_Id, Gene_Id, Count
gcatatgc,AAK1,36
gcatatgc,ABHD14B,5
gcatatgc,ABHD17B,20
tttggcca,ABI3,4
tttggcca,AAK1,50
tttggcca,ABHD14B,6
aaaggctt,ABT1,5
aaaggctt,ACAA1,14
aaaggctt,AAK1,50
aaaggctt,ABHD14B,6
ggaggcaa,AAK1,50
ggaggcaa,ABHD14B,6
ggaggcaa,AAK1,36
ggaggcaa,ABHD14B,5
......
....
Distinct_Cell_ID, Key_Distinct_Cell_ID
gcatatgc, 1
tttggcca, 2
aaaggctt, 3
ggaggcaa, 4
......
....
Distinct_Gene_ID, Key_Distinct_Gene_ID
AAK1,1
ABHD14B,2
ABHD17B,3
ABI3,4
ABT1,5
ACAA1,6
......
....
Key_Distinct_Cell_ID, Key_Distinct_Gene_ID, Sum_Group_Count
1, 1, 36
1, 2, 5
1, 3, 20
2, 4, 4
2, 1, 50
2, 3, 6
3, 5, 50
3, 6, 6
3, 1, 36
3, 2, 5
......
....
3。步骤B,还创建另一个具有不同基因ID的表,并使用每个不同基因ID的唯一键号生成新列
生成的表3:
Cell_Id, Gene_Id, Count
gcatatgc,AAK1,36
gcatatgc,ABHD14B,5
gcatatgc,ABHD17B,20
tttggcca,ABI3,4
tttggcca,AAK1,50
tttggcca,ABHD14B,6
aaaggctt,ABT1,5
aaaggctt,ACAA1,14
aaaggctt,AAK1,50
aaaggctt,ABHD14B,6
ggaggcaa,AAK1,50
ggaggcaa,ABHD14B,6
ggaggcaa,AAK1,36
ggaggcaa,ABHD14B,5
......
....
Distinct_Cell_ID, Key_Distinct_Cell_ID
gcatatgc, 1
tttggcca, 2
aaaggctt, 3
ggaggcaa, 4
......
....
Distinct_Gene_ID, Key_Distinct_Gene_ID
AAK1,1
ABHD14B,2
ABHD17B,3
ABI3,4
ABT1,5
ACAA1,6
......
....
Key_Distinct_Cell_ID, Key_Distinct_Gene_ID, Sum_Group_Count
1, 1, 36
1, 2, 5
1, 3, 20
2, 4, 4
2, 1, 50
2, 3, 6
3, 5, 50
3, 6, 6
3, 1, 36
3, 2, 5
......
....
4。步骤C,从表1、2和3生成一个新表,按Distinct\u Cell\u ID
和Distinct\u Gene\u ID
分组,并生成一个组计数和,按(Distinct\u Cell\u ID
,Distinct\u Gene\u ID
)唯一对分组
生成的表4:
Cell_Id, Gene_Id, Count
gcatatgc,AAK1,36
gcatatgc,ABHD14B,5
gcatatgc,ABHD17B,20
tttggcca,ABI3,4
tttggcca,AAK1,50
tttggcca,ABHD14B,6
aaaggctt,ABT1,5
aaaggctt,ACAA1,14
aaaggctt,AAK1,50
aaaggctt,ABHD14B,6
ggaggcaa,AAK1,50
ggaggcaa,ABHD14B,6
ggaggcaa,AAK1,36
ggaggcaa,ABHD14B,5
......
....
Distinct_Cell_ID, Key_Distinct_Cell_ID
gcatatgc, 1
tttggcca, 2
aaaggctt, 3
ggaggcaa, 4
......
....
Distinct_Gene_ID, Key_Distinct_Gene_ID
AAK1,1
ABHD14B,2
ABHD17B,3
ABI3,4
ABT1,5
ACAA1,6
......
....
Key_Distinct_Cell_ID, Key_Distinct_Gene_ID, Sum_Group_Count
1, 1, 36
1, 2, 5
1, 3, 20
2, 4, 4
2, 1, 50
2, 3, 6
3, 5, 50
3, 6, 6
3, 1, 36
3, 2, 5
......
....
并将表4输出到逗号分隔的CSV文件中
5。步骤D,生成3个“总值”
如果有人能帮助我,告诉我如何在EXCEL 2013或EXCEL 2016中执行步骤A、B、C和D,我将不胜感激
- 需要从一列到另一列提取“不同的”值(删除重复项),然后在新列旁边为列单元格ID(新列不同的单元格ID和键不同的单元格ID)和列基因ID(新列不同的基因ID和键基因的单元格ID)生成一个序列键号
- 创建另一个表,其中包含列Key_Distinct_Gene_ID、Key_Distinct_Cell_ID,并生成第三列“计数”总和,查找原始数据表1,组合键为(Distinct_Gene_ID,Distinct_Cell_ID)=(Gene_ID,Cell_ID)
- 当源CSV文件更改时,也可以通过单击EXCEL功能按钮来刷新表1至表4以及步骤D中的值
Alex您已经具体尝试了什么,遇到了什么问题?您可以尝试一些方法,例如运行SQL查询以获取不同的组合和计数,或者如果您熟悉VBA,您可以尝试(例如)使用字典提取唯一值并创建键值。听起来你并不真的需要Excel的解决方案……我儿子在生命科学学院的实验室工作,他的教授给了他一个关于一些研究的数据分析任务。我参加了edX Microsoft的“EXCEL数据分析和可视化”课程。因此,我的第一反应是“使用PowerPivot实现卓越”。然后我尝试了,但没有找到EXCEL中实现这一点的步骤/工具。我儿子嘲笑我,说EXCEL不能胜任如此简单的数据分析处理任务。我在微软EXCEL论坛上问了同样的问题,但还没有得到任何答复。所以我想知道EXCEL是否真的能做到这一点。在EXCEL中实现这一点的主要问题是源文件中的2.8M行:您可以使用VBA和ADO文本驱动程序在EXCEL中实现,但实际上并没有使用任何EXCEL功能。我不熟悉PowerPivotHi Tim,假设它只有2800行。我想知道它可以用EXCEL来完成,可能不是完全自动化的;只需点击几下就可以了。但我认为不需要编写VBA/ADO程序。有2800行数据透视表是一个很好的起点。