根据列和行总计计算值矩阵

时间:2016-02-29 22:35:37

标签: vba excel-vba excel

我的数据分为组总计(行)和月总计(列)。我需要计算总数并计算每个组中每个月的值。从我的屏幕截图中,我可以找到该公式的季度总计的每月单元格值 # project/spiders/sample_spider.py class SampleSpider(Spider): [...] def parse(self, response): try: item = SampleItem() item['sample_1'] = response.xpath('sample').extract() item['product_count_2'] = response.xpath('sample').extract()[0] yield item except IndexError: logger.debug('Retrying %(url)s', {'url': response.url}) yield Request(response.url, self.parse, dont_filter=True) ;这将确保所有行总计正确但不能满足所有列的要求。

对于屏幕截图,我手动添加了值以显示所需的结果

组计算:(1月+ 2月+ 3月)= Q1组总数

月计算:(Group1 ... Group6)+库存=每月总计

在“当前结果”屏幕截图中,各组的值总计正确,但结果按月错误。例如'Jan'总计为159。

当前结果

currentresult

我正在寻找公式或vba中的帮助,这样可以使月度值总计达到组和月总数。

期望的结果

CalcBlock

1 个答案:

答案 0 :(得分:1)

听起来您正在寻找从其行和列的总数中重新创建矩阵。

首先,您需要从列总计中删除库存总计,因为这些数字不需要计算。

Prepared Matrix

然后,您可以使用公式=ROUND(RowTotal*ColumnTotal/OverallTotal,0)非常接近答案。在这种情况下,单元格B2中的公式为=ROUND((B$8*$E2)/$E$8,0)

Initial Formula

但是,由于涉及到舍入,您会注意到这些值并不完美相加。对于这么小的矩阵,最好的办法是手动修复问题值。为此,请添加公式以检查哪些列和行未正确合计。您的检查公式应从所需的行和列总计中减去每行和每列的总数。这表明单元格B3是问题,因为B列和第3行都未对齐。

Problems Discovered

您可以将单元格B3更改为48,这将确保所有列和行总计正确。如果你有一个更大的矩阵要解决,你可以编写一些VBA代码来自动检查每一列和每行。