cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

Excel file to list flow: date issue

I have an excel table that I want to feed into a Sharepoint list.

 

I am succesful uploading all string data onto sharepoint, but I'm having errors with the dates (Status:400). I believe flow does not know what to do when excel returns an integer DATEVALUE instead of a date like DD/MM/YYYY.

 

The only workaround I've found so far is to format the date column as text instead of date in excel. This isn't really the solution I'm after, as some of the dates are automatically calculated in excel. Is there another way to get around this issue? 

 

Capture.PNG

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Hi @RobinV86 ,

 

You could use the Expression to restore Date.

For example, Excel table has a field named Du Date, and the type is Date. In Flow, we can use the following method to convert it as Date.

76.PNG

Expression reference:

addDays('1899-12-31',int(item()['Due Date']),'yyyy-MM-dd')

Please take a try.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

20 REPLIES 20
Highlighted
Helper I
Helper I

I've found a sloppy workaround which is to add a column in excel which basically converts the date into a viable format

 

=TEXT([@[Start Date]], "MM/DD/YYYY")

 

I'd rather do this in flow though...

Highlighted

Hi @RobinV86 ,

 

You could use the Expression to restore Date.

For example, Excel table has a field named Du Date, and the type is Date. In Flow, we can use the following method to convert it as Date.

76.PNG

Expression reference:

addDays('1899-12-31',int(item()['Due Date']),'yyyy-MM-dd')

Please take a try.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Highlighted

This looks very promising. 

 

Where in the flow would this step be taken? This is what my flow looks like right now:

 

Capture.PNG

Highlighted

Hi @RobinV86 ,

 

Configure Expression in External Start Date field, but the second parameter needs to be determined based on Dynamic content you currently populate.

 

Please see how this field is displayed in Body of List rows present in a table action, and then replace Due Date in Expression I provided.

 

Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted

Got it to work. The Compose action is the first item in the "apply to each"  section now. Thanks so much; this forum is really great. Awesome!

Highlighted

Could there be a time zone issue at play here too? All the dates are literally 1 day later as they are being pulled through.

Highlighted

Hi @RobinV86 ,

 

My mistake, please change"1899-12-31" to "1899-12-30".

 

Please try again.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted

Is there a way to modify the code so it doesn't throw an error when the excel field is empty (i.e. a date is not yet entered)? 

 

Thanks again this is so helpful. I'm completely new at flow and under some pressure to deliver a project. 

Highlighted

Hi @RobinV86 ,

 

You can consider using if() function to exclude null values.

If the value of this field is null, then null is filled in the item; if it is not empty, the previous expression is used.

Like:

if(empty(item()['Due Date']),null,addDays('1899-12-30',int(item()['Due Date']),'yyyy-MM-dd'))

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted

Thank you.

You just saved the nearest wall from having a forehead shaped hole in it.

Highlighted

Thanks to your solution, I could solve my time serial value problem.

I also want to get Time from date.

I want to make Flow which update to SharepointList from data I get in Excel(Bussiness).

In Excel(Business) I have time with format as below.

Highlighted

@v-bacao-msft 
Solved my challenge too! Thanks!

Kudos from the future 🙂

 

Highlighted

@v-bacao-msft @RobinV86 and rest of the community. 

 

Hi there, I have read this thread and I think I am having similar issues with the Start Date Time and Due Date Time but instead when trying to create a Planner Task from Excel using Flow. The work flow works fine if I leave the Start Date Time and Due Date Time fields blank. However as soon as I use dynamic content for these I get the following error message:

 

"error": {
"code": "",
"message": "The request is invalid:\r\nCannot convert the literal '43775' to the expected type 'Edm.DateTimeOffset'.",
"innerError": {
"request-id": "58ef83ce-873e-4c68-bfcd-f3d088392db2",
"date": "2020-01-24T14:17:23"
 
As suggest in this thread I have tried adding the following expression:
addDays('1899-12-30',int(item()['Task Due Date']),'yyyy-MM-dd')
in the Due Date Time field - not sure if this is correct in my situation but it did not work, and instead got the following error message.
 
InvalidTemplate. Unable to process template language expressions in action 'Create_a_task' inputs at line '1' and column '2106': 'The template language expression 'addDays('1899-12-30',int(item()['Task Due Date']),'yyyy-MM-dd')' cannot be evaluated because property 'Task Due Date' doesn't exist, available properties are '@odata.etag, ItemInternalId, Workorder Number, Workorder Description, First , Surname, Email Address, Task Group, Task, Task Instruction, Task Status, Expected Task Start Date, Date Task Actually Started, Task Due Date , Days Task Remaining/Overdue, Date Workorder to be Completed by, Days Workorder Remaining/Overdue'. Please see https://aka.ms/logicexpressions for usage details.'.
 
I think the above expression probably doesn't achieve the format that the planner date fields requires. For example it requires the date in the following format: 2018-04-13T00:42:19.284Z - note I have taken this example from the Start/Due Date Time fields when they are blank (it gives you a guide).  This indicates the date from excel needs to be in this format to make it work. I am not sure how or if it is possible to get the date in that format from excel without typing it out each time? If there is a way can you help? 
FYI - I did try and type this out on a single row in the table in excel and that worked but obviously I wouldn't want to do that for each row in the table. 
  
Please can you take a look at the screen shots of my example Excel data, flow and the error screen. Any help would be much appreciated. Thank you in advance.  

 

Excel Screen Grab.PNGFlow.PNG

 

Flow error.PNG

 

 

 

 

 

 

 

 

Highlighted

Hi @v-bacao-msft @RobinV86 , I am really sorry, but I don't understand this part.

 

"Please see how this field is displayed in Body of List rows present in a table action, and then replace Due Date in Expression I provided."

 

May I know where can I find the Body? Is it still available in the latest version of Flow? I can only see it inside the error window, but it's non-editable.  My first time building Flow and encountered errors quite a few times. Your soonest response is highly appreciated and thank you so much.

 

Regards,

Nawi

Highlighted

hello! can you post a screenshot of how you set up the COMPOSE action?

Highlighted

I'm getting this 5 digits before the date. Would you know why?

Highlighted

 

 

The dates have the integer value and the correct format altogether, would you know why it appears like this?Date.png

Highlighted
Frequent Visitor

Hi All,
@v-bacao-msft shared works great but I found the start date in the addDays() function should be Dec 30 1899 in order to return the date from excel in [List rows present in table].

*Update [

This can work directly in the [Execute Stored Procedure] - I also added equals() function to check for NULL

 

if(equals(items('Apply_to_each_2')?['Termination Date'], ''), '', addDays('1899-12-30', int(items('Apply_to_each_2')?['Termination Date']), 'MM-dd-yyyy'))

 

]

Let me explain, because I have been stumped for a while now trying to figure out why the Power Automate converts the date to a five digit number, but from this thread it is clear now. That 5 digit number is how many days from the beginning if time in Excel concepts 12/30/1899. So what @v-bacao-msft is sharing is to use addDate() function to bring back the date using the number that is generated in the [List rows present in table] object.

So I tried adding the addDate() directly to the [Execute Stored Procedure] object but it bawked at me something about int conversion. So using this method works beautifully and then reference the [Compose] Output instead of the Excel date output. I have 4 dates I need to reference so I renamed the [Compose] objects to the data field name for easy reference
msedge_pB2jNl4d81.png

Highlighted

Hi, i didnt understand where was the Compose action placed, can you provide a screenshot to see how it works? Thanks.

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published applications.

Top Solution Authors
Top Kudoed Authors
Users online (13,446)