Google sheets 基于列选择筛选数据

Google sheets 基于列选择筛选数据,google-sheets,Google Sheets,在谷歌工作,我正在做成绩册。在成绩册中有不同的作业类型,它们具有不同的权重,可以从下拉列表中选择。我想 平均类赋值(将有3个值) 适当称重(0.1表示基线,0.7表示临界,0.2表示加速) 将所有值相加为1个等级百分比 将其显示在相应学生的成绩报告表上 我希望这是动态的,因此,如果我更改作业类型(或任何其他值),成绩将相应更改 我的MWE可以找到 AverageIf函数将满足您的需要。所以代码如下: =averageif(B$3:G$3,"Baseline",B4:G4) 坐在第四行学生旁边(

在谷歌工作,我正在做成绩册。在成绩册中有不同的作业类型,它们具有不同的权重,可以从下拉列表中选择。我想

  • 平均类赋值(将有3个值)
  • 适当称重(0.1表示基线,0.7表示临界,0.2表示加速)
  • 将所有值相加为1个等级百分比
  • 将其显示在相应学生的成绩报告表上
  • 我希望这是动态的,因此,如果我更改作业类型(或任何其他值),成绩将相应更改


    我的MWE可以找到

    AverageIf函数将满足您的需要。所以代码如下:

    =averageif(B$3:G$3,"Baseline",B4:G4)
    
    坐在第四行学生旁边(这是可拖动的,所以行将更新),对照第三行作业类型的值进行检查(3由美元符号固定,所以可拖动)将实现目标1

    一旦对每个平均值执行此操作,就可以将另一列定义为
    =0.1*基线平均值+0.7*临界值+0.2*加速

    [不完全是这样,我是伪编码]为了实现您的其他3个目标,我想。

    请参阅我认为对您的MWE来说是一个最低限度的工作解决方案,我必须稍微调整一下,以便从另一张表中获取信息。但它像一个魅力。谢谢我试图添加另一个条件,它似乎适用于嵌套的if语句,但我想这更复杂,而且不起作用
    =averageif(B$3:G$3,“基线”,B4:G4,iferror(1/0,0.1))
    基本上,我试图让代码不计算不存在的加权值。因此,您需要考虑如何计算——是否需要重新加权?但为了避免那个难看的DIV/0错误,您可以将事情封装在if中,如下所示:=if(COUNTIF($B3:$G3,“基线”)=0,“,averageif($B3:$G3,“基线”,$B4:$G4)),我用它来处理这个问题<代码>iferror(平均值IFS(B4:G4,B$3:G$3,“基线”)*2.5,0)如果存在
    #DIV/0错误它插入了一个0。