如何使Google sheets根据以下条件自动添加当前行的序号“此特定行上的新条目”?
即使数据不是以行连续的方式输入(例如,第1行的第1个条目(如单元格B1)、第2行的第2个条目(在B2中)、第3行的第3个条目(B3),但第9行的第4个条目(B9)、第11行的第5个条目(B11)、第6行的第6个条目(B7))如何使其工作?
不向中间空行添加序号(例如,当B5/row5、B6/row6、B8/row8、B10/row10等为空时,不向A5/row5、A6/row6、A8/row8、A10/row10等添加序号)?
以下是预期结果:
工作表:根据数据输入时间戳将序号转换为非连续行
到目前为止,我已经提出了这个下拉公式(在A2中预先设置,并下拉到A12):
=IF(B2<>"",MAX($A$2:$A)+1,"") [in A2]
=IF(B3<>"",MAX($A$2:$A)+1,"") [in A3]
=IF(B4<>"",MAX($A$2:$A)+1,"") [in A4]
=IF(B5<>"",MAX($A$2:$A)+1,"") [in A5]
=IF(B6<>"",MAX($A$2:$A)+1,"") [in A6]
=IF(B7<>"",MAX($A$2:$A)+1,"") [in A7]
=IF(B8<>"",MAX($A$2:$A)+1,"") [in A8]
=IF(B9<>"",MAX($A$2:$A)+1,"") [in A9]
=IF(B10<>"",MAX($A$2:$A)+1,"") [in A10]
=IF(B11<>"",MAX($A$2:$A)+1,"") [in A11]
=IF(B12<>"",MAX($A$2:$A)+1,"") [in A12]
但是当我在B2、B3、B4、B7、B9和B12中一个接一个地输入数据时,我得到的结果是,它用新的最大值更新所有以前的单元格,这样就不会实现连续。
以下是显示实时结果的gif:
https://i.imgur.com/1I1Dk8f.gifv
如何锁定先前的结果,以便序数计数可以在连续发生时继续到下一个条目?
我咨询过那些与我所寻找的内容接近的帖子:
如何用公式的结果替换公式?
使用此脚本:
function freezeOutput(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SummarySheet");
var range = sheet.getRange("A1:A10");
range.copyTo(range, {contentsOnly:true});
}
匹配条件后停止Excel更新公式
使用这个公式:
=IF(NOW() < C1,2*A1,A2)
或者,此VBA代码:
Function EvaluateIf(expression As String, condition As Boolean) As Variant
Application.Volatile
Dim myText As String
Dim myVal As Variant
If condition Then
myVal = Application.Evaluate(expression)
Else
myText = Application.Caller.Text
If IsNumeric(myText) Then
myVal = Val(myText)
Else
myVal = myText
End If
End If
EvaluateIf = myVal
End Function
Function FreezeAfter(expression As String, deadline As Date) As Variant
Application.Volatile
Dim myText As String
Dim myVal As Variant
If Now > deadline Then
myText = Application.Caller.Text
If IsNumeric(myText) Then
myVal = Val(myText)
Else
myVal = myText
End If
Else
myVal = Application.Evaluate(expression)
End If
FreezeAfter = myVal
End Function
如何以编程方式复制单元格值?
使用此脚本:
function getRangeValues() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A2:B4");
var values = range.getValues();
return values;
};
在此处使用工作表:以编程方式复制单元格值(72539)
最后:
添加数据时将当前日期添加到工作表中,以使日期不会更改(静态)-谷歌工作表
使用此脚本:
/**
* Creates a Date Stamp if a column is edited.
* https://yagisanatode.com/2018/02/21/add-the-current-date-to-a-sheet-when-data-is-added-so-that-the-date-does-not-changestatic-google-sheets/
*/
//CORE VARIABLES
// The column you want to check if something is entered.
var COLUMNTOCHECK = 6;
// Where you want the date time stamp offset from the input location. [row, column]
var DATETIMELOCATION = [0,-5];
// Sheet you are working on
var SHEETNAME = 'Sheet3'
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
//checks that we're on the correct sheet.
if( sheet.getSheetName() == SHEETNAME ) {
var selectedCell = ss.getActiveCell();
//checks the column to ensure it is on the one we want to cause the date to appear.
if( selectedCell.getColumn() == COLUMNTOCHECK) {
var dateTimeCell = selectedCell.offset(DATETIMELOCATION[0],DATETIMELOCATION[8]);
dateTimeCell.setValue(new Date());
}
}
}
但我不知道该怎么做。
预期结果应该是在B列中输入相应单元格的数据后,将序号添加到A列中的相应单元格中。
我们怎么做?
function onEdit(e) {
var rg = e.range,
row = rg.rowStart,
col = rg.columnStart,
sht = rg.getSheet();
//exit code
if (col !== 2 || sht.getName() !== 'Sheet1' || row === 1) return;
//Calculate max value and add 1
rg.offset(0, -1, 1, 1).setValue(//setvalue in colA
rg
.offset(2 - row, -1, sht.getLastRow() - 1, 1) //get all of colA
.getValues()
.reduce(function(acc, curr) {//get max of colA
return Math.max(acc, Number(curr[0]));
}, 0) + 1
);
}
我正在读取一个csv文件到。这个csv文件由四列和一些行组成,但没有标题行,我想添加它。我一直在尝试以下方法: 但当我应用代码时,我得到以下错误: 这个错误到底意味着什么?在python中,向我的csv文件/df添加标题行的干净方法是什么?
我有一个如下的数据帧: 我想将其转换为如下内容: B中重复的值是列名称,其值在C列中。我希望它们是数据帧的列 事实上,数据集是通过展平一棵树创建的,其中有更多的列,每个列都是一个内部节点。第一列是根,C是叶 以下是我的一些尝试: 然而,它不起作用。
问题内容: 我正在使用zsh,并且尝试向变量添加新的条目(),但我不知道如何。 最让我困惑的是,我的文件中没有对变量的单一引用,而是返回: 因此,在某处设置了变量。 问题答案: 这里: 编辑 :这确实有效,但是下面的ony答案更好,因为它利用了ZSH为像这样的变量提供结构化接口的优势。这种方法是的标准方法,但据我所知,当ZSH提供更好的替代方法时,没有理由使用它。
假设我有一个10x10的数据帧,我想在开头添加一行,只包含一个值(即新行只有一列)。此外,我希望此行位于列名之上,因此我需要将列名转换为数据框中的实际条目。如果不添加NAs,我将如何执行此操作? 下面是我所拥有的一个示例(nrow=3,列标题和nol=5的数据帧): 这就是我想要的(一个数据帧/某种对象,nrow=5,nol=5,但第一行为NULL值): 感谢您的帮助。
问题内容: 使用标准的Python数组,我可以执行以下操作: 但是,我不能在numpy中做同样的事情。例如: 我也研究了,但是在空数组上使用时,得到: 那么,如何将新行追加到numpy中的空数组? 问题答案: “启动”所需阵列的方法是: 这是一个空数组,但具有适当的维数。 然后确保沿轴0附加: 但是,@ jonrsharpe是正确的。实际上,如果要循环添加,则像第一个示例中那样将其添加到列表中会更
问题内容: 我知道NaN代表Not a Number。但是,我很难理解Oracle何时以及为何将其添加到行中。 是当它遇到小于0的值(如负数)时,还是在其为垃圾值时? 问题答案: 从文件: Oracle数据库数字数据类型存储正,负定点和浮点数,零,无穷大以及作为操作未定义结果的值-“非数字”或。 据我所知,您只能在binary_float或binary_double列中获得NaN 。这些数据类型有