我有一張表,其中包含過去 5 天的平均值,當存在??值時,我需要從第一個值中減去第二個值。行如下所示:
14.7 #N/A 15.3 #N/A #N/A
#N/A 0.2 #N/A 0.3 #N/A
5.7 5.8 #N/A 5.7 5.5
4.4 4.4 #N/A #N/A #N/A
7.7 #N/A 7 #N/A 7.7
#N/A #N/A #N/A #N/A 2.2
#N/A #N/A #N/A #N/A 0
3 #N/A 2.4 #N/A 1.9
#N/A #N/A #N/A #N/A 2
9.6 7.8 #N/A 7.5 #N/A
10.3 #N/A 10.3 #N/A 9.2
#N/A #N/A #N/A #N/A 2.8
9.1 #N/A 8.7 #N/A 8.7
#N/A #N/A #N/A #N/A 9.1
#N/A #N/A #N/A #N/A 6.4
#N/A #N/A #N/A 6.1 2.3
#N/A #N/A #N/A #N/A 0.5
這個數字可以是負數,它只需要從它找到的第一個值中減去它找到的第二個值。
例如,第 1 行將從第 1 列中減去第 3 列。
或者第 2 行將從第 2 列中減去第 4 列
此公式獲取最新的(如果存在):
=IFS((QUERY(sheetwithvalues!A2:B, "Select B where A contains " & """" & A2 & """" &
""))>0,(QUERY(sheetwithvalues!A2:B, "Select B where A contains " & """" & A2 & """" &
"")),(QUERY(sheetwithvalues!A2:C, "Select C where A contains " & """" & A2 & """" &
""))>0,(QUERY(sheetwithvalues!A2:C, "Select C where A contains " & """" & A2 & """" &
"")),(QUERY(sheetwithvalues!A2:D, "Select D where A contains " & """" & A2 & """" &
""))>0,(QUERY(sheetwithvalues!A2:D, "Select D where A contains " & """" & A2 & """" &
"")),(QUERY(sheetwithvalues!A2:E, "Select E where A contains " & """" & A2 & """" &
""))>0,(QUERY(sheetwithvalues!A2:E, "Select E where A contains " & """" & A2 & """" &
"")),(QUERY(sheetwithvalues!A2:F, "Select F where A contains " & """" & A2 & """" &
""))>0,(QUERY(sheetwithvalues!A2:F, "Select F where A contains " & """" & A2 & """" &
"")))
但我不知道如何使用這樣的東西來獲取它找到的第二個值并從第一個中減去它。這可能在谷歌表格中嗎?
如果可行,我也愿意接受一個谷歌腳本,該腳本在復制的作業表上運行一種 drop N/A。我似乎還不能跳出框框思考足夠遠的地方來想出一個想法。
如果有人甚至有一個想法,我可以嘗試讓它發揮作用。提前致謝。
uj5u.com熱心網友回復:
我相信你的目標如下。
這個數字可以是負數,它只需要從它找到的第一個值中減去它找到的第二個值。例如,第 1 行將從第 1 列中減去第 3 列。
或者第 2 行將從第 2 列中減去第 4 列
關于第 3 行和第 6 行,
第三行將從第 1 列中減去第 2 列
如果可能,第 6 行將是 N/A。
而且,您想使用 Google Apps 腳本來實作這一點。
在上面的邏輯中,下面的示例腳本怎么樣?
示例腳本:
請將以下腳本復制并粘貼到電子表格的腳本編輯器中并保存腳本。
function SAMPLE(values) {
const c = 10000; // This is for subtraction.
return values.map(r => [r.reduce((o, e) => {
if (e != "#N/A" && o.res == "#N/A") {
if (o.temp == 0) {
o.temp = e;
} else {
o.res = (o.temp * c - e * c) / c;
}
}
return o;
}, { res: "#N/A", temp: 0 }).res
]);
}
當您使用此腳本時,請將自定義函式放入
=SAMPLE(A1:E17)一個單元格中,如以下示例結果。
參考:
編輯:我注意到當差異為 0 時,上面的公式也會回傳 #N/A。請嘗試以下操作:
=arrayformula(if(len(substitute( transpose(query(transpose(if(isna(A1:E17),,"z")),,9^9))," ",))=1,na(), query(iferror(1/split( transpose(query(transpose(ifna(A1:E17)),,9^9))," ")^-1,na()), "select Col1-Col2 label Col1-Col2 ''")))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431131.html標籤:javascript 谷歌表格 谷歌表格公式
