首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于数据聚合的VBA或excel公式

用于数据聚合的VBA或excel公式
EN

Stack Overflow用户
提问于 2019-03-03 20:27:32
回答 1查看 138关注 0票数 1

我在excel中有一个表,其中有一个公司和各种人谁在公司工作,每个公司可能有5-7人与一家公司的名单。该表的结构为公司名称、person1、人员2……在单元格中

我需要一个在VBA或excel公式中的方法,其中基于此表,我希望有每个人的公司名称关联例如。person1 -在他名字下面的单元格中他正在工作的所有公司的列表。

我有基本的VBA知识,任何方法或解决方案都是高度赞赏。

我还不能嵌入图片。因此链接源表:1https://i.stack.imgur.com/gMyy8.png

所需输出:1https://i.stack.imgur.com/x8QxU.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-03 23:47:07

如果您可以像图片中的两列那样更改数据,您仍然可以使用数据透视表来获得每个人的公司列表。例如,像图片中那样进行过滤(很抱歉使用荷兰式的布局)。

否则,如果您至少知道所有人的名字,我建议在VBA中使用以下循环

代码语言:javascript
运行
复制
Dim ws as worksheet
Dim wst as worksheet
Dim i,j,k as long
Set ws = Thisworkbook.sheets("SheetNameData")
Set wst = Thisworkbook.sheets("SheetNameLists")
For i = 2 to ws.cells(rows.count,1).end(xlup).row 'Assuming you have headers, start at row 2
   For j = 2 to ws.cells(i,columns.count).end(xltoLeft).column 'Loop through all names in a companyrow
     k = application.worksheetfunction.match(ws.cells(i,j).value,wst.range("1:1"),0) 'find the right column in the output worksheet
     wst.cells(rows.count,k).end(xlup).Offset(1,0).value = ws.cells(i,1).value 'Place the companyname in the column of the right person
   Next j
Next i

对于此脚本,您需要已经有了第二个工作表,其中第一行由人名组成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54968795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档