0

对于100公司,我已经收集了好102几天的数据。我需要计算一些平均值,因此我尝试编写一个 php 脚本来102为我编写必要的公式,如下所示:

=AVERAGE('panel-mv3'!BP2+'panel-mv3'!BP104+'panel-mv3'!BP206 ... +'panel-mv3'!BP8876)
=AVERAGE('panel-mv3'!BP3+'panel-mv3'!BP105+'panel-mv3'!BP207 ... +'panel-mv3'!BP8877)
=AVERAGE('panel-mv3'!BP4+'panel-mv3'!BP106+'panel-mv3'!BP208 ... +'panel-mv3'!BP8878)
...
=AVERAGE('panel-mv3'!BP103+'panel-mv3'!BP205+'panel-mv3'!BP307 ... +'panel-mv3'!BP8977)

如您所见,横向公式需要添加102到每个BP单元格 ( 2, 104, 206, 308, 410, etc)。所以点 ( ...) 表示公式需要用+'panel-mv3'!BP308+'panel-mv3'!BP410etc 扩展,直到 +'panel-mv3'!BP8876. 在每个连续的公式中,行值移动一个:BP3, 105, 207, etc...

我一直在尝试使用下面的代码来完成此操作,但是由于我感到困惑,因此我还没有完成

for ($i = 1; $i < 103; $i++) { // 102 dates
  echo "=AVERAGE(";
  for ($j = 1; $j < 101; $j++) { // 100 companies
    echo "'panel-mv3'!BP" . ($i + $j) . "+";
    echo "'panel-mv3'!BP" . ($i + $j) + ($j * 102) . "+";
    echo "'panel-mv3'!BP" . ($i + 1) + (($i * 2) * 102) . ")";
  }
}
4

1 回答 1

2
<?php

for ($i = 2; $i < 104; $i++) { // 102 dates
  echo "=AVERAGE(";
  for ($j = 0; $j <= 99; $j++) { // 100 companies
    echo "'panel-mv3'!BP" . ($i + $j*102);
    if($j!=99) echo "+";
  }
  echo ")\n";
}

这是正在运行的小提琴http://codepad.org/Z4lEQ74d但它因超时而死(因为它是一个免费帐户)

于 2012-09-11T21:41:15.577 回答