![如何根据新表单提交的数据自动计算公式?](https://linux22.com/image/1572188/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E6%96%B0%E8%A1%A8%E5%8D%95%E6%8F%90%E4%BA%A4%E7%9A%84%E6%95%B0%E6%8D%AE%E8%87%AA%E5%8A%A8%E8%AE%A1%E7%AE%97%E5%85%AC%E5%BC%8F%EF%BC%9F.png)
我正在尝试计算通过表单提供的条目中提交的日期数。我已经想出了实现该操作的公式。问题是每次提交新的表单条目时都会创建一个新行,除了每次手动拖动公式以包含新到达的条目之外,我没有其他办法。
有什么方法可以自动完成此操作吗?我读到过,您可以使用包含整个电子表格范围的数组公式来执行此操作,但我无法使其工作,因为每个单元格都必须计算其自己行上的日期(并且此范围在每个单元格中都会发生变化)
这是样本表 https://docs.google.com/spreadsheets/d/1WkaIq5cNpyqvqJ6UdUQHd4jsaPlDDl9rocKZRses3DA/edit?usp=sharing
我的问题:每次提交表单条目时,如何自动执行步骤 1?有没有办法只使用公式来做到这一点(如果有,怎么做)?
附言:我也尝试过将表单回复复制到不同的工作表中并从那里进行计算,但每次创建新行时,公式都会调整为指向新行下方的行。例如,如果公式指向 B6 并且新行在第 6 行创建,则公式会突然指向 B7。
答案1
我找到了两种使其发挥作用的方法:
第一的:
=arrayformula(MMULT(N(E1:J42<>""), transpose(column(E1:J1)^0)))
第二个版本(更为复杂的版本)
=arrayformula(if(B3:B<>"";NOT(ISBLANK(E3:E))+NOT(ISBLANK(F3:F))+NOT(ISBLANK(G3:G))+NOT(ISBLANK(H3:H))+NOT(ISBLANK(I3:I))+NOT(ISBLANK(J3:J));))
从这个答案中获得了一些启发:
答案2
尝试输入 H3:
=if(A3=ʺʺ,ʺʺ,counta(B3:G3))
然后一直向下拖动...如果有效(或无效...),请分享。(: