Excel平均问题

Excel平均问题,excel,average,Excel,Average,因此,我必须在工作表上表现出色。每张图纸如下所示: 名称值 鲍勃1234 莎莉2343 乔564564 基本上我有300个名字和它们的值。我有第二张表,它的名称相同,但值不同。我想知道获得多张工作表中每个人姓名的平均值的最简单方法。我现在只有两张床单,但我希望将来能做得更多 鲍勃在每张纸的同一行吗?没有鲍勃的地方有床单吗?鲍勃会出现多次吗 无论如何,这可能更适合存储在数据库中。Excel仍然可以从数据库中获取内容并显示为spreasheet,但在数据库中按您的意愿进行平均要容易得多 但是,如果必

因此,我必须在工作表上表现出色。每张图纸如下所示:

名称值

鲍勃1234

莎莉2343

乔564564


基本上我有300个名字和它们的值。我有第二张表,它的名称相同,但值不同。我想知道获得多张工作表中每个人姓名的平均值的最简单方法。我现在只有两张床单,但我希望将来能做得更多

鲍勃在每张纸的同一行吗?没有鲍勃的地方有床单吗?鲍勃会出现多次吗

无论如何,这可能更适合存储在数据库中。Excel仍然可以从数据库中获取内容并显示为spreasheet,但在数据库中按您的意愿进行平均要容易得多


但是,如果必须使用Excel,则需要使用搜索函数在每个工作表中查找
Bob
,然后获取其关联值。这可能有助于搜索/查找零件,但您仍然需要为每个工作表执行此操作。

如果所有工作表中的位置相同,则这相当简单:

=AVERAGE( Sheet1!A1, Sheet2!A1, Sheet3!A1 )


但是,如果位置不同,则必须使用查找类别中的公式。

在Excel中没有简单的方法。您必须编写VBA代码。您需要定义计算所需的所有工作表,遍历所有名称并将它们放入一个数组中

//[名称、数量、张数] [“鲍勃”,1234,1],“萨利”,2343,1],…]

对于每个工作表中的每个名称,您需要检查它是否包含在数组中

如果是这种情况,则增加数字和计数,否则添加一个带有[Name,number,1]的新元素

最后,遍历数组并将名称和编号/计数输出到新工作表


你需要一些基本的编程技能。

假设你有3张相同名称、相同位置的工作表。插入第四页,在其中复制这些名称。在结果列中,键入
=AVERAGE(Sheet1:Sheet3!A2)
,然后向下复制该公式。
完成。
如果您计划以后添加更多的工作表,请保留一张始终为空的特殊工作表,并使公式:
=平均值(Sheet1:Special!A2)


然后,您可以在“特殊”之前插入新的工作表,并且需要编辑您的平均值。

使用数组公式。在第一个单元格中输入以下内容,将“Bob”替换为“Bob”条目的单元格引用,然后按CTRL+SHIFT+Enter键:

= SUM((name_col2='Bob')*(value_col2))/sum((name_col2='Bob')*1)

是的,每张纸上的名字顺序相同。所有的纸都有相同的名字。在一张工作表上,任何操作都不会超过一次。如果我选择数据库路线,你有什么建议?所有表格的位置都是一样的。好的,那么公式是否需要为A1的平均值编写,或者我是否要用实际的工作表名称替换“工作表1”?@illbill使用您的示例代码,要得到Bob的平均值,您需要做=平均值(工作表名称1:LastSheet名称!B2)+1如果位置(名称顺序)不同,则只需对名称进行排序即可,省去一些麻烦!你有两张工作表还是两本工作手册?“在Excel中没有简单的方法。”真的吗?你知道这是事实吗-欢迎你证明我错了。但是在你发表这样的评论之前一定要这样做-。-。尽管你的帽子锁着,我也不需要。其他人已经这样做了。正如您所看到的,上述所有解决方案在同一行中都需要相同的名称,而我的解决方案则不需要。OP说“每个工作表上的名称顺序相同”--但这甚至不是Excel中可以做到的要求。这与工作表的名称无关。只有他们点的菜。尝试将“Sheet2”重命名为“炸鸡”。仍然有效。“特殊”没有什么特别之处。第二页中的名称和值列分别是什么。经过进一步考虑,我误解了老年退休金计划的问题——如果名字在第二张纸上和不同的地方多次出现,这就行了。
= SUM((name_col2='Bob')*(value_col2))/sum((name_col2='Bob')*1)