从一行的多列到单个单元的多个计算和

时间:2018-02-27 22:00:37

标签: excel google-sheets spreadsheet

我有一个排行榜风格的电子表格,用于完成某人所完成的每项任务:
- 他们在其中一列(E,F,G,H,I,J,K,L列)中得到一个点,
- 该点乘以列值(第2行 - E2,F2,G2,H2,I2,J2,K2,L2值),
- 以及所有这些的总和等于用户得分

适用于第5行用户:
= SUM(E5 * E2 + F5 * F2 + G5 * G2 + H5 * H2 + I5 * I2 + J5 * J2 + K5 * K2 + L5 * L2)

适用于第6行用户:
= SUM(E6 * E2 + F6 * F2 + G6 * G2 + H6 * H2 + I6 * I2 + J6 * J2 + K6 * K2 + L6 * L2)

更好的方法是什么,因为我需要添加新列(值得点的东西)和新用户 - 我认为必须有更好的方法来手动编写每一个。现在有超过60个用户,超过15个点机会并且还在增长。

例:
| User | Total Score | task1 | task2 | task3 | task4 | task5 | task6 | | Point Value | | 2 | 3 | 5 | 1 | 0.5 | 9 | | User5 | 12 | 1 | 0 | 2 | 0 | 0 | 0 | | User6 | 6.5 | 0 | 0 | 1 | 0 | 3 | 0 |

2 个答案:

答案 0 :(得分:2)

使用SUMPRODUCT()

=SUMPRODUCT($E$2:$L$2,$E5:$L5)

答案 1 :(得分:1)

擦除B:B列(总点数列):

B3:

<?php require_once __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=****/client_secret.json');

$user_to_impersonate = 'user@****.com';
$user_scopes = array(
    Google_Service_Calendar::CALENDAR
);
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setSubject($user_to_impersonate);
$client->setScopes($user_scopes);
$client->setAccessType('offline');

$calendar = new Google_Service_Calendar($client);
$calendarId = 'primary';
$optParams = array(
    'maxResults' => 10,
    'orderBy' => 'startTime',
    'singleEvents' => TRUE,
    'timeMin' => date('c'),
);
$results = $calendar->events->listEvents($calendarId, $optParams);
...


?>