Currency in CSV is formatted as Date in Excel - node.js

I am saving currencies (decimal values) in my CSV file that the customer wants to open in Excel. However, Excel formats those currency values to dates, if the range allows to (day <= 31, ...).
I found many hacks, that kind of get around it, but none that meets all of the following 3 requirements:
Should work with American and German settings (comma vs. decimal point)
Sums over those columns should be possible
Amounts smaller than 31.12€ should be possible
Things I have tried:
use "=""04.06"
use '04.06
use 04.06\t
Thanks for your help.
I am using NodeJS to automatically generate the csv files on click of a button.
Here is a sample CSV File (I don't know how to upload it here as file):
Passenger Number;Name;Birth Date;Int. Fares;Int. Taxes;Dom. Fares;Dom. Taxes
ARB1234;Max/Meister;12.04.2001;4.03;2.06;3;110

The most stable solution for this problem is to Import the file. If you Open the file, Excel makes a bunch of assumptions that may be incorrect (as you have noted). If you Import the file, you can intervene and declare, for example, the delimiter (semi-colon in this case); the date format (I used MDY but DMY could be used instead) and which column you want formatted as a date; and even the decimal and digit separators.
The manner in which to call the Import varies in different versions of Excel. I show below the method for 2016. From Text/CSV may open Get & Transform with an opportunity to select the file. Or, if you prefer the Legacy wizards, those can be made accessible under the Get Data tab.
The legacy method opens the Text Import Wizard. The more recent method allows you to set up a refreshable data connection to the file, and may be preferable for your end-user, as he will not have to fill in the options each time.

Related

AnyLogic: False number format when exporting data to excel

I collect various data in time plots. If I copy the timeplot data and then paste it into Excel, the number format is often wrong. For example, I often get a date like Aug 94 instead of the actual number from the TimePlot. Unfortunately, I can't easily format this date into a number either, since the formatted number does not match the actual number from the timeplot. If I format the date in the same format as the number above and below, then I get the number 34547. However, this number does not correspond to the actual number of the TimePlot. Anyone know how I can prevent this problem?
You can only solve this on the Excel side, AnyLogic provides the raw data for you. Excel then interprets stuff. You can test it by pasting the chart raw data into a txt or csv file.
So either fix your Excel settings or paste into a csv, then into an xlsx.
Or better still: Do not manually paste at all. Instead, write your model results into the AnyLogic database and export to Excel from there: this takes away a lot of the pain for you. Check the example models to learn how to do that.
This is not AnyLogic question, rather an Excel & computer formatting problem. One way of resolving this is changing computer's date and time settings.
Another way is to save your output at txt file in AnyLogic. Replace all . with ,. Then open empty Excel, select Text format for the columns. Copy-paste from the txt file.
In Excel there are a few options
when you paste use paste as text only option
But this does not always work as Excel will still try to format the stuff for you
Use the Paste Special option and then choose text
Also possible this will not work, based on your Excel settings.
Paste using the text import wizard
(This works for me without fail)
On step 2 choose tab delimited
On step 3 choose Column format as text for every column (you need to select them in the little diagram below)
You will then see the data exactly as it came from AnyLogic. See the example below where I purposefully imported some text which has something that Excel will think is a date. You will now be able to see what in your data made Excel thing your data needed to be formatted the way it is and then you can fix it. (post a new question if you struggle with this conversion)
But as noted by other answers first prize is to write all the important data to external files. But I know that even I sometimes want to export data from a chart and review it in Excel. Option 3 works for me everytime

Converting text to data Apr 06, 2020 in excel

I need help in converting this text value exported in text format from software management tool "Apr 06, 2020" to data format.
I have tried various methods like text to columns then picked all of the possible data formats but nothing works. Can you please help or suggest any solution?
Your problem is a mismatch between your Windows Regional Settings (which Excel relies on in order to parse your date), and the date format in the exported file (which appears to be US-English).
You have several choices:
If the file exported from your management tool is a text or csv file, you can probably use Power Query to import the file. Select Transform then right click on the Date column and select Change type => Using Locale => and select Date and English-US.
You could change your regional settings to English(united states) while you do the import, then change them back.
If none of the dates get converted, you could try this formula:
=DATE(RIGHT(A1,4),MATCH(LEFT(A1,3),{"Jan";"Feb";"Mar";"Apr";"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"},0), MID(A1,5,2))
Note that in the formula, you may need to change the commas to semicolons, or whatever your country uses to separate formula arguments
You can use below formula, Where A1 is date cell
=DATEVALUE(MID(A1,5,2)&"-"&LEFT(A1,3)&"-"&RIGHT(A1,4))

Excel Numeric Format Data

I have this data that I exports from some ERP in Citrix to the same Excel in Citrix,
Some example when i paste:
Doc.Curr.
-4,248,057.00
-25,998,733.00
25,998,733.00
-192,534.00
-118,509.00
192,534.00
But when i export this to a Excel in MacOS doesnt recognize like a number format, only like data without format, how can i solve this?
Many systems that export to Excel produce text instead of number. This has to do with the way that the system report was built in the exporting system. For example, the system report uses spaces to separate report columns. Excel parses the data according to the spacing but will not convert the text to numbers. In such a case you need to do that yourself
There are several ways to convert text to numbers, including
copy a cell with a zero, use paste special to paste over the text that should be numbers, using the option to "Add"
use text to columns on one column of numbers
If you need to do that on a regular basis, you may want to look into Power Query (Get and Transform) to load the data and perform any cleanup in there. It will be faster in the long run.

Libre Office 4.1.3.2: Import dates from text file, recognize right format

I am struggling with the different cell formatting types in Libre Office - I am aware of the manually adjustable Date formatting, but cant get Libre Office to recognise an input text string like:
" Wednesday, December 11, 2013   13:27"
where everything between the quotes is the cell content. Obviously I want the software to recognize, that this is a date and thus make a graph out of a large table, but using a manual formatter like:
" NNNN, MMMM D, YYYY HH:MM"
does not result in what I want, ie. the cell accepts my manual format but still cant cope with the content. What am I doing wrong? - any tips how I can nevertheless produce a graph with x-values with dates in this format? I dont want to awk around and manually convert these strings each time I have such a table...
Thanks a lot!
Be aware that during the import process you have a chance to set the date format during this import routine in Librecalc. Find this and use it.
I found that the fix must come while opening a CSV file to avoid being down the rabbit hole of errors and frustrations.
The preview of data on open is interactive. Who knew? :o
Do this:
Open
Select columns with dates in the preview
Change setting from Standard to Date in the dropdown

Excel changes date formats

I run a process to produce a rather large CSV file of data. Sometimes I find it helpful to open the CSV in excel, make changes manually, and then re-save. However, if there are dates in the CSV, excel automatically reformats them. Is there a way to prevent excel from doing this? It would be helpful if I could turn off all text formatting altogether.
If you prepend an apostrophe ' to the beginning of any date string during the export process, Excel will read the value literally (i.e. as plain text) rather than trying to convert it to a date.
This particular solution is handled during the export process. I'm not sure how you would change Excel to treat the file differently at runtime.
Excel does some nasty tricks when outputting XML. One of its tricks is to drop left most column delimiters if 16 or so consecutive rows have no values for these columns. This means that if you're splitting the lines up based on commmas then these rows will have a different number of columns to the rest.
It will also drop any initial 0's so things like numeric Ids can become messed up.
Another risk you run is chopping the file off short since Excel can only support a maximum number of rows. (Prior to Excel 2007 this was around 65536)
If you need to do anything to a CSV file other than read it use a text editor.
When you import the CSV file into Excel, be sure to pre-format the date column as text. There's a frequently overlooked option in the parsing that allows you to control the format column by column. This also works well for preventing the leading zeros in New England ZIP codes from getting dropped in your contact lists.
If you used the excel file version which is 2010 or later (not sure lower version), you can set up to use current operation-system date format or not in Excel/CSV file.
Right Click cell with date value (e.g. '9/12/2013') in CSV file and pop up the menu
Click 'Format Cells' and open a pop up screen
Go to 'Number' tab and you can see 'Date' was selected in 'Category' (left side) and 'Type' on the right side
Observed that there are two types of Date format (one is with () and another is not with ()). Read the comment there and you can find that you can use the date format which is not with date. It means that your changes to the CSV file will not be applied with your current operation-system date format. So, I think date format won't be changed in CSV file in this case.

Resources