当我输入单元格时自动获取日期和时间,但在谷歌表格的单独列中
Posted
技术标签:
【中文标题】当我输入单元格时自动获取日期和时间,但在谷歌表格的单独列中【英文标题】:Automatically obtain date and time when I type in a cell but in separate columns at google sheets 【发布时间】:2021-08-21 09:23:34 【问题描述】:我是新来的,提前道歉。我的问题是:我有一个包含多个单元格和两张工作表的谷歌电子表格。我想要做的是,当我在第 2 列的任何单元格中键入一个值时,时间和日期将自动出现在相邻的单元格中。我得到了这个代码,它只对我工作表 1:
function onEdit()
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "HOJA 1-HF-SSB" ) //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 2 ) //checks the column
var nextCell = r.offset(0, 1);
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(new Date()).setNumberFormat("dd-MM-yyyy HH:mm");
然后我设法对其进行了简化并使其适用于文档的两页:
function onEdit(e)
var sheets = ["HOJA 1-HF-SSB", "HOJA 2-FM-DMR"];
if (sheets.indexOf(e.source.getActiveSheet()
.getName()) === -1 || e.range.columnStart !== 2) return;
e.range.offset(0, 1)
.setValue(new Date()).setNumberFormat("dd-MM-yyyy HH:mm");
我的问题是:有没有办法将日期和时间放在单独的列中?也就是我填第2栏的时候,日期写在第3栏,时间写在第4栏?
我的最终目的,除了把日期和时间分开,就是以后确定(我不知道怎么做),并突出显示第2列中记录的哪些值在同一日期重复,将它们与第 3 列中的自动日期,与时间无关。谢谢,对不起,我是个新手!
【问题讨论】:
【参考方案1】:尝试(仅适用于第 2 列)
function onEdit(e)
var sheets = ["HOJA 1-HF-SSB", "HOJA 2-FM-DMR"];
if (sheets.indexOf(e.source.getActiveSheet().getName()) === -1 || e.range.getColumn() !== 2) return;
var dateObj = new Date();
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();
var newdate = year + "/" + month + "/" + day;
e.range.offset(0, 1).setValue(newdate).setNumberFormat("dd-MM-yyyy");
e.range.offset(0, 2).setValue(new Date()).setNumberFormat("HH:mm");
https://docs.google.com/spreadsheets/d/1NYxNfoPM6l_PJTPBDxEth2n-T_H0o03FG6C0OMDuJOo/copy
【讨论】:
好的,对我有用!现在我在不同的列中有日期和时间(日期为 3,时间为 4),是否可以突出显示第 2 列中的重复值,但只能在同一日期(不是时间)?对不起,如果我的解释难以理解。我只需要突出显示在同一天写入的第 2 列中的值(由第 3 列中的日期确定)。谢谢和抱歉!另一种选择是,例如,当 B10 和 C10 在任何上一行的值和日期重合时,在另一列中写入“DUPPED”......我不知道什么是更好的选择,更容易。 选择 B 列,然后使用此公式应用条件格式=COUNTIF($C:$C,$C1)>1
说“无效”。选择整个 B 列并应用 =COUNTIF($C:$C,$C1)>1。你能解释一下这个公式吗?我正在尝试这样做:当相同的文本和相同的日期匹配时,突出显示重复项。换句话说:我需要突出显示 B 列中在同一列中相互重复并且同时与 C 列中的同一日期重合的那些值...
我不知道你的地区是什么!我给你举个例子,我还会在 B 列添加相等的搜索,对不起,这是一个错误。
在西班牙语语言环境中,公式为 =(COUNTIF($C:$C;$C1)>1)*(COUNTIF($B:$B;$B1)>1) > 0
我已在答案中添加了电子表格的副本。以上是关于当我输入单元格时自动获取日期和时间,但在谷歌表格的单独列中的主要内容,如果未能解决你的问题,请参考以下文章
使用javascript,当我单击表格单元格时如何获取它的背景颜色?