我的数据分为组总计(行)和月总计(列)。我需要计算总数并计算每个组中每个月的值。从我的屏幕截图中,我可以找到该公式的季度总计的每月单元格值
# 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。
当前结果
我正在寻找公式或vba中的帮助,这样可以使月度值总计达到组和月总数。
期望的结果
答案 0 :(得分:1)
听起来您正在寻找从其行和列的总数中重新创建矩阵。
首先,您需要从列总计中删除库存总计,因为这些数字不需要计算。
然后,您可以使用公式=ROUND(RowTotal*ColumnTotal/OverallTotal,0)
非常接近答案。在这种情况下,单元格B2中的公式为=ROUND((B$8*$E2)/$E$8,0)
但是,由于涉及到舍入,您会注意到这些值并不完美相加。对于这么小的矩阵,最好的办法是手动修复问题值。为此,请添加公式以检查哪些列和行未正确合计。您的检查公式应从所需的行和列总计中减去每行和每列的总数。这表明单元格B3是问题,因为B列和第3行都未对齐。
您可以将单元格B3更改为48,这将确保所有列和行总计正确。如果你有一个更大的矩阵要解决,你可以编写一些VBA代码来自动检查每一列和每行。