以日期类型为条件的 IFS 公式
IFS formula with date types as conditions
我的 table 中有两种不同的日期类型:第一种很简单 YYYY-MM-DD
,第二种包含周数和年份。
如何构建一个 IFS
公式,其中这两种日期类型是条件?喜欢:
=IFS(A1="YYYY-MM-DD", "A", A1="WWYYYY", "B")
我没有看到 Google 表格数据格式 WWYYYY
然后我假设你有文本值。如果是,那么您可以尝试 REGEXMATCH
=IFS(REGEXMATCH(J8,"\d{4}-\d{2}-\d{2}"), "A",REGEXMATCH(J8,"\d{6}"), "B")
但对我来说,我不会将日期保存为文本。需要脚本
/**
*
* @customformula
*/
function PATTERN_EXTRACTOR(pattern, a1Notations) {
var patt = new RegExp(pattern, 'gi');
var range = SpreadsheetApp.getActiveSheet().getRange(a1Notations);
return range.getDisplayValues().map(function(row) {
return row.map(function(cell) {
return cell.replace(patt,'X');
});
});
}
获取模式
=PATTERN_EXTRACTOR("\d",CELL("address",I8))
解决条件
=IFS(I10="XXXX-XX-XX", "A",I10="XXXXXX", "B")
您可以简单地使用以下公式:
=IFS(LEN(A1)=10,"A",len(A1)=6,"B")
这也行得通:
=ARRAYFORMULA(IF(IFERROR(DATEVALUE(A1:A5)), "A",
IF(ISNUMBER(A1:A5), "B", )))
我的 table 中有两种不同的日期类型:第一种很简单 YYYY-MM-DD
,第二种包含周数和年份。
如何构建一个 IFS
公式,其中这两种日期类型是条件?喜欢:
=IFS(A1="YYYY-MM-DD", "A", A1="WWYYYY", "B")
我没有看到 Google 表格数据格式 WWYYYY
然后我假设你有文本值。如果是,那么您可以尝试 REGEXMATCH
=IFS(REGEXMATCH(J8,"\d{4}-\d{2}-\d{2}"), "A",REGEXMATCH(J8,"\d{6}"), "B")
但对我来说,我不会将日期保存为文本。需要脚本
/**
*
* @customformula
*/
function PATTERN_EXTRACTOR(pattern, a1Notations) {
var patt = new RegExp(pattern, 'gi');
var range = SpreadsheetApp.getActiveSheet().getRange(a1Notations);
return range.getDisplayValues().map(function(row) {
return row.map(function(cell) {
return cell.replace(patt,'X');
});
});
}
获取模式
=PATTERN_EXTRACTOR("\d",CELL("address",I8))
解决条件
=IFS(I10="XXXX-XX-XX", "A",I10="XXXXXX", "B")
您可以简单地使用以下公式:
=IFS(LEN(A1)=10,"A",len(A1)=6,"B")
这也行得通:
=ARRAYFORMULA(IF(IFERROR(DATEVALUE(A1:A5)), "A",
IF(ISNUMBER(A1:A5), "B", )))