如果row包含值,则从A列值返回值,对于所有行

时间:2017-02-03 17:27:39

标签: excel vba excel-vba excel-formula

我已经看过一些类似的帖子,但没有一个对我的特定问题有一个非常有帮助的答案。我是一名程序化广告数据分析师,所以我试图将多对多关系联系起来。

我们运行"角色",这是一组应用。角色有很多应用程序,应用程序有很多角色。我有按人物组织的数据:每一行都是一个角色,该行中的每一列都包含一个包含该角色的应用程序。每个角色都有不同数量的应用。即

Row   Persona            App 1            App 2             App 3           
1   Casino Persona    "Slot Kings"    "Wild Casino"   "Real Gambling App"
2   RPG Persona      "Dragon Valor"      "KOTOR"
3   Sports Persona   "MLB: The App"   "Real Soccer"   "Hockey Fans 2016"
4   Gen-X Females    "Scrapbook App"  "Baby Monitor"     "PostMates" 

所以我知道哪些应用程序属于每个角色。我现在正在尝试确定哪个角色属于每个应用。我想创建另一个切换" apps"的工作表。和#34;角色。" e.g。

Row    App          Persona 1         Persona 2          Persona 3           
1   Slot Kings    "Casino Persona"  "Slot Persona"   
2   KOTOR         "RPG Persona"     "Star Wars Fans"   "SciFi Persona"
3   MLB: The App  "Sports Persona"  "Baseball Fans"   

我无法找出任何方法来做一个疯狂的嵌套语句,VBA或类似的疯狂数组公式。

1 个答案:

答案 0 :(得分:0)

我明白你要求的是什么。但是,尝试使用公式或VBA重新排列数据会花费大量时间和精力;并且也是非常不必要的。

您的数据布局适合查看,但不适合任何类型的数据分析。如果要执行分析,应始终以数据库格式存储数据。有关详细信息,请参阅此文章:

https://support.office.com/en-us/article/Guidelines-for-organizing-and-formatting-data-on-a-worksheet-90895CAD-6C85-4E02-90D3-8798660166E3

对于您的数据,您应该只有2列,一列用于Persona,一列用于App。然后在每一行中,您只列出一个Persona和App的可能组合。您放置数据的顺序并不重要。

正确设置数据后,您现在可以创建自动排列数据的数据透视表。它也可以轻松计算每个角色中的应用程序数量,反之亦然,然后还可以创建图表。查看PivotTables和PivotCharts以获取更多信息。

要创建左上角表,请将Persona放入Rows字段,然后将App放入Rows字段。 (关闭小计和总计以使表格更整洁,并将布局更改为Tabular以查看字段名称。)

要创建右上角的表格,请将App放入数据字段。

要创建底部表格,请按相反的顺序添加字段。

enter image description here

请注意,如果您有关于要记录的角色或应用的更多详细信息,则应将它们存储在单独的表中。现在进入设计关系数据库的领域。有关更多信息,请查找有关数据库设计的参考资料。