使用公式

时间:2018-12-05 07:45:40

标签: excel

  sr  date       date-text  mm  dd  yyyy    concat(dd,mm,yyyy)
  1   12/31/2018 12/31/2018 12  31  2018    31/12/2018
  2   3/31/2019  3/31/2019  3/  1/  2019    1//3//2019

如上所示,我在col'date'中有一些日期格式为m / d / yyyy。我需要将其转换为dd / mm / yyyy。我尝试使用DATEVALUE函数,但由于我的计算机日期格式为dd / mm / yyyy,因此出现了值错误。不幸的是,我无法更改我的PC日期格式。 因此,我尝试使用LEFT,MID和RIGHT函数拆分日期。

date-text = TEXT([@[date]],"mmm/ddd/yyyy") - to fix date format to mm/dd/yyyy
mm =LEFT([@[date-text]],2)
dd =MID([@[date-text]],4,2)
yyyy=RIGHT([@[date-text]],4)
concat(dd,mm,yyyy) = =CONCAT([@dd],"/",[@mm],"/",[@yyyy]) to get mm/dd/yyyy for mat.

此方法适用于第1行,但对于第2行,我输入了错误的日期“ 1 // 3 // 2019”。请让我知道如何解决此问题

2 个答案:

答案 0 :(得分:1)

尝试以下公式

@Test
public void saveTest() {
    Employee expectedEmployee = buildEmployee(1, "Parker");

    //call save and flush for immediate flush.
    employeeRepository.saveAndFlush(expectedEmployee);

    //now you will need to clear the persistence context to actually
    //trigger a load from the database as employee with id 1 is already
    //in the persistence context. 

    //without the below you will not see a db select
    entityManager.clear();

    Employee actualEmployee = employeeRepository.findById(1);
    assertEquals(expectedEmployee, actualEmployee);
}

enter image description here

答案 1 :(得分:0)

只需一个公式即可获得所需的结果:

=DATE(VALUE(RIGHT(A2;4));VALUE(MID(A2;1;FIND("/";A2;1)-1));VALUE(MID(A2;FIND("/";A2;1)+1;FIND("/";A2;FIND("/";A2;1)+1)-FIND("/";A2;1)-1)))

我非常了解您的情况。我来自葡萄牙,在这里,我们使用与您相同的日期格式(dd/mm/yyyy)。请注意您粘贴的值作为“日期”。例如,如果您放置3/31/2019,Excel将不会将其识别为日期并将其粘贴为文本(这就是为什么您不需要date-text列的原因)。但是,如果您粘贴1/12/2019,则当真实日期为01/12/2019时,Excel将自动编写12/01/2019,并且该公式将不起作用。