我正在尝试计算人们参与和可用的小时数百分比。人们并不总是被选中参加,但如果可以的话,不应该受到惩罚。
B栏是参与百分比。
第2行是主行,其中包含可用的总小时数,其各自的日期位于第1行。
如果某人可用但未选中,则会在其行和日期中放置小写字母X.理想情况下,我希望" x"采用相同列的主行单元格的值,但保留x的外观,因此可以很容易地计算范围。
我现在唯一可以看到这样做的方法是创建一个包含If / then的单独列(隐藏)?比如:如果我7美元=" x",那么(总和(L7 + I2),我甚至不知道如何做到这一点,更不用说多个细胞了。
我认为这将是一个俗气的解决方法,除非有时候小时数总是3小时,有时候他们是2小时。
= SUM(F7 /([2-(3 *(COUNTIFS(F7:7," X")))))
图片中的第3行到第7行,B列需要100%。
答案 0 :(得分:0)
您可以使用此用户定义的功能。将此代码复制到脚本编辑器并保存。然后在F2中输入= total(行($ F2))并将其复制到所有行。它将行号发送到函数:
function total(ln) {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getActiveSheet()
var lc=s.getLastColumn()//get the last column with data
var rng=s.getRange(2, 7, 1, lc-6).getValues()// get row 2 values
var rng1=s.getRange(ln, 7, 1, lc-6).getValues()// get values of current row
var count=0 //set count to 0
for(var i=0;i<rng[0].length;i++){
if(rng1[0][i]=="x"){// if value is x
var cnst=rng[0][i]//get row 2 value
count=count+cnst}//add to count
else{count=count+rng1[0][i]}}//if not x, added cell value to count
return count // return the total
}
随着新列的添加,该功能将会扩展。