Формула IFS с типами даты в качестве условий - PullRequest
0 голосов
/ 01 октября 2019

У меня в таблице два разных типа дат: первый простой YYYY-MM-DD, второй содержит номер недели и год.

Как можно построить формулу IFS, где этидва типа даты являются условиями? Нравится:

=IFS(A1="YYYY-MM-DD", "A", A1="WWYYYY", "B")

Ответы [ 3 ]

3 голосов
/ 01 октября 2019

Вы можете просто использовать следующую формулу:

=IFS(LEN(A1)=10,"A",len(A1)=6,"B")
2 голосов
/ 01 октября 2019

это тоже может сработать:

=ARRAYFORMULA(IF(IFERROR(DATEVALUE(A1:A5)), "A", 
              IF(ISNUMBER(A1:A5),           "B", )))

0

2 голосов
/ 01 октября 2019

Я не видел формат данных Google Sheets WWYYYY, тогда я предположил, что у вас есть текстовые значения. Если это правда, тогда вы можете попробовать REGEXMATCH

=IFS(REGEXMATCH(J8,"\d{4}-\d{2}-\d{2}"), "A",REGEXMATCH(J8,"\d{6}"), "B") 

enter image description here

Но для себя я не буду сохранять даты в виде текста. Требуется скрипт

/**
*
* @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))

enter image description here

Разрешение условий

=IFS(I10="XXXX-XX-XX", "A",I10="XXXXXX", "B")

enter image description here

...