【发布时间】:2011-11-21 01:09:15
【问题描述】:
我有一个谷歌电子表格,我想要一个只有月份和年份名称的日期,比如September 2011,我还希望月份和年份可以轻松更改。
有没有办法获得自定义日期格式来做到这一点?
我发现我可以这样做:
=TEXT(40295; "MMMM yy")
但是日期选择器不能再使用了,而且更改日期变得非常困难.. 有什么好的办法解决吗?
【问题讨论】:
标签: google-apps-script google-sheets
我有一个谷歌电子表格,我想要一个只有月份和年份名称的日期,比如September 2011,我还希望月份和年份可以轻松更改。
有没有办法获得自定义日期格式来做到这一点?
我发现我可以这样做:
=TEXT(40295; "MMMM yy")
但是日期选择器不能再使用了,而且更改日期变得非常困难.. 有什么好的办法解决吗?
【问题讨论】:
标签: google-apps-script google-sheets
您可以使用 Google Apps 脚本为单元格设置自定义格式。
打开脚本编辑器(菜单工具 > 脚本编辑器),粘贴,保存并运行 > onOpen。
function onOpen() {
SpreadsheetApp.getActive().addMenu(
'Format', [{name:'Custom', functionName:'customFormat'}]);
}
function customFormat() {
var format = Browser.inputBox('Write the format to be applied on the seleted cells');
if( format !== 'cancel' )
SpreadsheetApp.getActiveRange().setNumberFormat(format);
}
在您的电子表格的末尾应该会出现一个新菜单,您可以在其中选择自定义条目以输入所选单元格的自定义格式。
【讨论】:
Google 电子表格尚不允许您将自定义数字格式应用于单元格。
您当然可以在单元格中输入日期,然后在第二个单元格中引用该日期:
A1:4/27/2010, A2=TEXT(A1;"MMMM yy")
这将满足您的要求:它将以您想要的方式显示日期,并允许轻松更改日期。
但它具有使日期在工作表上出现两次的不良副作用。我经常通过打印或导出一个范围而不是整个工作表来解决这样的副作用。因此,在您的情况下,也许还有一个实用的解决方法。
【讨论】:
我以为 yy 只是给出了 2 位数的年份。
我使用了以下内容:
=text(E2,"MMMM YYYY")
E2 是我使用的特定单元格,但您可以使用任何单元格。
【讨论】:
您可以输入任何格式(日期或其他格式)作为自定义数字格式。
突出显示单元格范围并转到格式 > 数字 > 更多格式 > 自定义数字格式。然后输入
mmmm" "yyyy
给出“2011 年 9 月”
或任何其他格式
ddd" "mm"/"dd"/"yyyy
将给出“Mon 09/11/2011”
注意开头和结尾处缺少的引号。 它显示了它在您实验时的显示方式。 开头或结尾的引号给你无效的格式 为您节省两个字段(数据和 text() 格式化一个)
它不直观(格式或放置位置)。但比导入 xls 效果更好。
【讨论】:
我无意中找到了自定义日期格式的解决方法。我有一个使用 Excel 的自定义日期格式。上传 Excel 文件时,日期格式 (mm/dd/yyyy hh:mm am/pm) 保持该格式,即使该格式不受支持的 Google 表格格式。然后使用格式刷,我能够将该格式复制到 Google 表格中的其他单元格。我知道这不是一个理想的解决方案,但似乎有效。我还没有玩过我可以在 Excel 中创建多少其他自定义格式,转换为 Google 表格,然后使用格式刷与其他单元格一起使用。
【讨论】: