Google sheets date reformatting when inserting new row using ARRAYFORMULA - date

I have a Google sheet with a column of dates that look like this.
22/04/2020 09:01:24
22/04/2020 09:05:54
22/04/2020 09:17:06
22/04/2020 10:04:48
22/04/2020 21:05:26
These dates need to be formatted YYYY-MM-DDD in order to be imported correctly into another system. So I decided to add another column, find the date fragment and create a valid date. This function is.
=MID(A1,7,4)&"-"&MID(A1,4,2)&"-"&MID(A1,1,2)
This results in the correct date format e.g. 2020-04-16
Now, another process which adds rows to this spreadsheet, when this happens the formula is not copied to newly created cell. I read about ARRAYFORMULA so in the first row I added the following.
=ARRAYFORMULA({"Submitted at";IF(ROW(A2:A),MID(W2,7,4)&"-"&MID(W2,4,2)&"-"&MID(W2,1,2),"")})
Although this solved one problem of the formula not being copied, it now only shows the first date for every row e.g.
2020-04-16
2020-04-16
2020-04-16
2020-04-16
2020-04-16
2020-04-16
I think this might be something to do with relative cell references? I am a bit stuck at what to do next or even what the problem might be. I would appreciate some understanding of where I'm going wrong (or a simpler solution for reformatting dates)

change those W2s to W2:W
you also might try this simpler formula:
=ARRAYFORMULA({"Submitted at";IF(W2:W="",,TEXT(W2:W,"yyyy-mm-dd"))})

Related

Addingtimepoints in database ANYLOGIC

In my anylogic database I want to insert time points (insteads of dates, so 16:00:00 instead of 24/05/2022 16:00) but somehow I can not get it done, perhaps it is even not possible? I already tried TIME as type and time, but I've no clue how to add timepoints in the table, when I add for example 03:00:00 the table value stays empty (see figure)
Not possible afaik.
Use a String and convert your times between the String and java.util.LocalTime formats using LocalTime.parse(String) or similar.
PS: You should use java.util.LocalTime for pure times, not Date

Webi: How to use double slider input control with dates?

My boss asked me to add a double slider input control for the date information on a report on Webi.
We have several columns and two of them display a date (start and end date of procedure). So I need to have two double slider, one for each date.
I've been searching for a whole day now and I know that it is not directly possible to use double slider with dates, because double slider only works with values (measures) and dates don't have that.
But I managed to create two more variables on the business layer. I used the following SQL function:
CAST(currentDate as Bigint))
These variables are displaying the date as numbers (e.g. 1090101 for 01.01.2009 (format is "dd-MM-yyyy")).
And it is working great! But it displays the dates as number, which is not possible to use for work. No one will know which date is 1090101. I could perhaps let both columns (date as date and date as number) in the report, so people could check the date they want to filter with the input control and select the right number on the slider. This could be a workaround, but not a clean one, I think.
I tried to change the format of the date as number to a date format, but then I could not use the slider anymore (even if the variable is a number).
I looked for a way to change the formatting of the values displayed on the slider, but with no luck.
So I'm asking for your help. Does anyone know how I could make this work?
Is there really no solutions for such a useful way of filtering data? I mean, filtering data by an interval of dates is surely something people want to do quite often, I assume.
Thank you in advance for your time.
(Version Webi : SAP BusinessObjects BI Platform 4.2 Support Pack 8 Patch 6,
Version: 14.2.8.3671)
You could format your date value as year, month, day and then convert it to a number so the value you are filtering on makes a little more sense. Like this...
=ToNumber(FormatDate([Your Date];"yyyyMMdd"))
It will be better than just an arbitrary number, but certainly not perfect since you will have large chunks of your range for which there never will be any corresponding data (e.g. 20211232 through 20220100).
What is wrong with just a Minimum and Maximum input controls? They are more intuitive and simple to create. Sometimes what your user or boss asks for is a bad idea and/or just not possible.

Qlik Sense: Change date field format from Google Analytics API

I've pulled in data in Qlik Sense (cloud) from the Google Analytics connector. I'm trying to convert the standard date [ga_dateHourMinute] field to a more eligible date format.
The current format is YearMonthDayhHourMinute, for instance: 201810250004, I would like to convert this to the standard date format 2018-10-25 00:04:00. How do I do this? Answers concerning methods in the data load script or master formula's or variables are all welcome.
Click to see screenshot: left = current date format and right = desired date format
This is one approach:
DateAlter:
LOAD * INLINE [
Date
201810250004
];
DateAlter2:
LOAD
Date(Date#([Date], 'YYYYMMDDhhmm') ,'YYYY-MM-DD hh:mm') AS [MyDateField]
Resident
DateAlter;
If you haven't played around with the data manager, it will allow you to edit fields and handle dates in a fairly easy manner:
Qlik Sense Data Manager
I ended up creating a text fields that combined the different digits from the one field into a new order, then pushed the data format into a date/time. Quite a bit of work, but fairly solid.

Tableau Volume calculation based on Start Date and End Date

Using Tableau, I need to create a visualisation that shows me the total volume of started and ended work items per day.
Typical sql data consists of columns for each:
Reference (Unique Work Item Reference)
Start Date (Date Work Item Started)
End Date (Date Work Item Finished)
For example, if on the 6th of April 2018, 55 work items were started and 5 items were finished. Each represented date should show in its own line over time.
The issue I'm getting at the moment, when I have start date as a continuous column, it calculates the number of work items started for the end date and not the number of items finished for the end date.
Any help guidance would be greatly appreciated.
Tableau Public Link
This is a simple problem if you correct the shape of your data. You can achieve this by using the pivot functionality in Tableau or Custom SQL(If your data source does not support pivot).
Pivot the date columns
2. Rename the pivoted fields
Now build the view as below.(null values are due to tasks that are not yet closed, you can just filter it out)
I assume that the data is of this form Data structure
With this format, you could achieve something like this Gantt Chart
If you notice, I have created a calculated field called "Duration" which is in size shelf.
the calculated field reads
If [Status]="Finished" then
[End Date]-[Start Date] ELSE
TODAY()-[Start Date]
end
Hope this helps! Let me know if this is not clear enough
Even if the Status column is not there in the data source, it can be added using the following code
if ISNULL([End Date]) then
"WIP" else "Finished" end
Also, is this how you want to see the information?
Click here
Could you please have a look at it and let me know your thoughts?
https://us-east-1.online.tableau.com/t/tableaumanoraj/views/VolumeExample/Dashboard1?iframeSizedToWindow=true&:embed=y&:showAppBanner=false&:display_count=no&:showVizHome=no

DATE FORMATTING - COGNOS

I am using cognos version 10 and I need my dates to display in this format 'yyyy-mm' but it is showing dates like '2014-04' as '2014-4' so it is reading the dates out of order by producing '2014-11' first because it starts with a one. I need to add a zero to those double digit integers that way the months(specifically) will display in order.
here's an the code I've created in attempt:
_year( start_date ) ||'-'|| _month( start_date )
IF(_month(start_date) > 10)
THEN('0' +_month(start_date))
Short answer: Use yyyy-MM.
Your question lacks a lot of detail, so my response is based on considerable guess-work.
Are you asking about formatting, or do you want to transform the values? Formatting can be done without code. The code for your data item should be start_date.
Is this for a List column body? Where do you enter your format (yyyy-mm)? Are you using the Data format property?
In the Data format dialog, if you can't find another setting that will do what you want, you can enter a pattern into the Pattern property. If you look at the tips at the bottom of the Data format dialog, you'll notice that using yyyy-mm would give you a four digit year, a hyphen, and a two-digit minute. Perhaps you should try yyyy-MM. It works for me.
As for sorting: Even if you used yyyy-M for the pattern, 2014-04-22 (displayed as 2014-4), should sort before 2014-11-01 (displayed as 2014-11). The only reason the sort would be wrong is if it is using some other data besides the dates.