Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 年度总计公式_Google Sheets - Fatal编程技术网

Google sheets 年度总计公式

Google sheets 年度总计公式,google-sheets,Google Sheets,我有一个电子表格,我用它来记录攀登的进度(下面显示的片段)。我有一些公式和图表可以记录一段时间内特定等级的计数,但我很难用一个公式来记录(按年份)的总英尺数。我打算把这个放在另一张纸上 基本上我想要一个单细胞,它有点像。。。如果是1!A:A以“21”开头。如果是1!E:E,“*%”(这意味着我实际完成了爬升),然后将行总爬升长度(Sheet1!J:J*Sheet1!I:I)添加到当年的跑步总长度中 执行此操作的最佳方法是什么?您可以尝试使用应用程序脚本并创建脚本来管理任务 例如,您可能想看看下

我有一个电子表格,我用它来记录攀登的进度(下面显示的片段)。我有一些公式和图表可以记录一段时间内特定等级的计数,但我很难用一个公式来记录(按年份)的总英尺数。我打算把这个放在另一张纸上

基本上我想要一个单细胞,它有点像。。。如果是1!A:A以“21”开头。如果是1!E:E,“*%”(这意味着我实际完成了爬升),然后将行总爬升长度(Sheet1!J:J*Sheet1!I:I)添加到当年的跑步总长度中


执行此操作的最佳方法是什么?

您可以尝试使用应用程序脚本并创建脚本来管理任务

例如,您可能想看看下面的代码段:

代码 参考文献
  • )


    • 谢谢你。。。使用您的示例并添加一些内容(还需要解析int totals)

      函数calculateTotal(){
      设ss=SpreadsheetApp.getActive().getSheetByName('Sheet1');
      设s7=SpreadsheetApp.getActive().getSheetByName('Sheet7');
      让date=ss.getRange('A2:A').getDisplayValues();
      让type=ss.getRange('F2:F').getDisplayValues();
      让trys=ss.getRange('E2:E').getDisplayValues();
      设length=ss.getRange('I2:I').getDisplayValues();
      设laps=ss.getRange('J2:J').getDisplayValues();
      设btotal=0;
      设rtotal=0;
      
      对于(假设i=0;如果A列是真实日期,那么使用数据透视表。@ScottCraner我将对此进行分析。我在Google Sheets中,但我能够创建一个数据透视表,我只需要对如何使用数据透视表更聪明一点。如果Google Sheets为什么要使用Excel标记?请适当地标记它,了解Google Sheets的人可能会找到不同的数据透视表或打赌ter route.ShaneKVery。共享一份您的工作表。因此,基本上您希望添加今年的所有爬升?您是否也有去年的日期?如果没有,为什么不直接使用
      If
      SUM
      添加它们?@ShaneKVery,非常感谢您的输入。我正在设置一个触发器,以便在电子表格运行时运行如果可能的话可以修改。关于如何在同一个脚本中获取唯一的日期并转储每天的总数,有什么想法吗?
      function calculateTotal() {
        let ss = SpreadsheetApp.getActive().getSheetByName('Sheet1');
        let date = ss.getRange('A2:A').getDisplayValues();
        let tries = ss.getRange('E2:E').getDisplayValues();
        let lengths = ss.getRange('I2:I').getDisplayValues();
        let total = 0;
        for (let i =0; i<date.length; i++) {
          if (date[i][0].toString().startsWith('21') != false && tries[i][0].toString().includes('%') == false) {
             total = total+lengths[i][0];
          }
        }
        ss.getRange('M2').setValue(total);
      }
      
      
      function createTrigger() {
          ScriptApp.newTrigger("calculateTotal")
              .timeBased()
              .atHour(9)
              .everyDays(1)
              .create();
      }
      
      function calculateTotal() {
        
        let ss = SpreadsheetApp.getActive().getSheetByName('Sheet1');
        let s7 = SpreadsheetApp.getActive().getSheetByName('Sheet7');
        let date = ss.getRange('A2:A').getDisplayValues();
        let type = ss.getRange('F2:F').getDisplayValues();
        let tries = ss.getRange('E2:E').getDisplayValues();
        let lengths = ss.getRange('I2:I').getDisplayValues();
        let laps = ss.getRange('J2:J').getDisplayValues();
        
        let btotal = 0;
        let rtotal = 0;
        
        for (let i =0; i<date.length; i++) {
          if (date[i][0].toString().startsWith('21') != false && tries[i][0].toString().includes('%') == false) {
             // Totals for Bouldering 
             if (type[i][0] == "B") {
               btotal = btotal + parseInt(lengths[i][0]*laps[i][0]);
             }
             // Totals for Top Rope or Sport
             else {
               rtotal = rtotal + parseInt(lengths[i][0]*laps[i][0])
             }
          }
        }
        
        console.log("Roped total = " + rtotal)
        console.log("Bouldering total = " + btotal)
      
        s7.getRange('B2').setValue(rtotal);
        s7.getRange('B3').setValue(btotal);
      }