我在Google表格中有许多单元格 这些单元格中有些包含值(数字),有些带有,而有些没有HYPERLINKS 如果值> 0
,我需要计算此单元格区域的超链接数此函数工作正常,但不包含任何单元格值 Counting hyperlinks on Google Sheets formula
答案 0 :(得分:1)
import numpy as np
np.random.seed(123)
df = pd.DataFrame({'c1':np.random.randint(1,100,1000), 'c2':np.random.randint(1,100,1000),
'c3':np.random.choice([1,0], 1000)})
%%timeit
m = df['c1'].eq(1).groupby([df.c3, df.c3]).transform('sum').ge(2)
df.loc[m]
#5.21 ms ± 15.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit df.groupby(['c2','c3']).filter(lambda x: x['c1'].eq(1).sum() >= 2)
#124 ms ± 714 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
且值大于=HYPERLINK()
的像元数。
0
的数量。我可以像上面那样了解您的目标。如果我的理解是正确的,那么该修改如何?请认为这只是几个答案之一。
在共享的电子表格中,我确认您当前的脚本如下。
2
function countLinks(rangeNotation, range) {
var formulas = SpreadsheetApp.getActiveSheet().getRange(rangeNotation).getFormulas();
return formulas.reduce(function(acc, row) {
return acc + row.reduce(function(acc, formula) {
return acc + (/^=HYPERLINK/i.test(formula) ? 1 : 0);
}, 0);
}, 0);
}
。reduce()
未使用。以上几点反映到您当前的脚本中时,它如下所示。
range
例如,当您将其用作自定义函数时,请将以下自定义函数放在共享电子表格的“ AO3”单元格中。
function countLinks(rangeNotation) {
var sheet = SpreadsheetApp.getActiveSheet();
var formulas = sheet.getRange(rangeNotation).getFormulas()[0];
var values = sheet.getRange(rangeNotation).getValues()[0];
return formulas.reduce(function(acc, formula, i) {
return acc += (/^=HYPERLINK/i.test(formula) && values[i] > 0 ? 1 : 0);
}, 0);
}
将上述脚本用于共享电子表格时,将获得以下结果。