我有一个1000行的电子表格。每行有六个不同权重的列类别(30%、20%、20%、10%、15%、5%),得分为1,2,3,4,5或N/A,然后是一个评分,编制了总分,因此第一行为5*3、2*2、1*1、1*.15、5*.05,共计2.4。如果一列有N/A,我想重新分配值。因此,如果第一列(价值30% )具有N/A,我希望新的其余5个值值为26%、26%、16%、21%、11% (是的,我希望每个列都添加6%,而不是根据当前权重重新分配30% )。如何使用VBA代码完成此操作?如果两列都有N/A,那么我将把这两列的总重量分配给其他四列,以此类推。有60个组合,我不介意只使用60个if -然后-else语句。如何定义字段并确保所有1000行的公式都是动态的?我正在努力编写公式/定义元素,以使其具有动态性。谢谢!
Option Explicit
Function New_Score()
End Function
Sub TestSum()
If Range("AD2").Value = "N/A" And Range("AF2").Value = 2 Then
Range("AJ2").Value = (Range("AF2").Value * 0.3) + (Range("AH2").Value * 0.2)
End If
If ActiveCell.Offset(0, -2).Value = "N/A" And ActiveCell.Offset(0, -1).Value = 5 Then
ActiveCell.Value = (ActiveCell.Offset(0, -3).Value * 0.3) + (ActiveCell.Offset(0, -1).Value * 0.2)
End If
End Sub
这是相同的尝试两次-首先对范围参考,然后与偏移参考。很好,但如果我拖动细胞就不行了。我如何动态地引用它?谢谢!
发布于 2022-06-16 01:07:40
正如braX所提到的,请分享您的代码和它的问题。
此外,还应该可以用附加支撑柱的单元函数来解决计算问题,例如:
values
。
您也可以将其放入目标列中的一个公式中,而不是多个附加列。
编辑:此计算为每行
https://stackoverflow.com/questions/72639211
复制相似问题