Importformat der Excel-Datumsspalte erzwingenHallo JMP-Community,
Ich suche Hilfe beim Erzwingen eines Datumsformatimports mithilfe des Excel-Importassistenten über JSL. Ich versuche, Daten zu importieren, die sich nur in zwei Spalten in einer Excel-Datei befinden, ein Datum, ein Datum, es sieht wie folgt aus:

Das Problem, das ich habe, ist der Übergang vom Datum 12.02.2019 zum 13.02.2019 (links rot markiert). Aus irgendeinem Grund liest JMP die Datumswerte vom Anfang bis zum letzten Wert vom 12.02.2019 im Format dd.mm.yyyy, wechselt dann aber am 13.02.2019 zum Lesen von Daten im Format mm.dd.yyyy. Wenn ich in die Excel-Datei gehe und die Formatierung der Zellen überprüfe, sind sie identisch. Ich kann nicht verstehen, warum JMP plötzlich umschaltet. Wenn dieser Wechsel vorgenommen wird, bleiben die Datumszellen in der JMP-Tabelle leer.
Wenn ich die Daten in zwei verschiedene Blöcke importiere, die vom Anfang bis zum letzten Format TT.MM.JJJJ und einen zweiten für die anderen, liest es jedes Datum korrekt, allerdings sind die Spalteninformationen für die beiden verschiedenen Daten unterschiedlich formatiert und miteinander nicht kompatibel sind. Wenn ich versuche, die beiden Teilmengen zu verketten, ändert sich lediglich der Tag/Monat der Tabelle, mit der ich verkette.
Ich habe auch versucht, mehrere Umschaltoptionen in den JMP-Einstellungen zu ändern, um System- oder JMP-Einstellungen zu erzwingen, aber alle waren erfolglos.
Wenn ich das Datum als Zeichen importieren kann, kann ich die Dinge entsprechend ändern und es dann wieder in einen kontinuierlichen Datentyp umwandeln, und alles sollte in Ordnung sein. Das einzige Problem ist, dass ich nicht sicher bin, wie ich das erzwingen soll oder ob das der beste Weg ist.
Wie bei den meisten Automatisierungsversuchen bevorzuge ich es DRINGEND, nicht jede Excel-Tabelle oder Datei zu bearbeiten. Ich möchte, dass JMP dies über ein JSL-Skript erledigt.
Der JSL-Code, den ich zum Importieren verwende, ist:
Open(
"file_location\file.xlsx",
Worksheets( "Sheet 1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 15 ),
Data Ends on Row( 0 ),
Data Ends on Column( 16 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
)
Hängt es mit der Option „Limit Column Detect(0)“ zusammen? Ich kann keine Dokumentation dazu und was es bewirkt, finden.
Dieses Problem ähnelt einem von geposteten @ghartel bereits im Mai 2017 ( https://community.jmp.com/t5/Discussions/Excel-Import-Date-Format/td-p/16619 ), die, zumindest soweit ich das beurteilen kann, keine direkte Lösung für ihr spezifisches Problem gefunden haben.
Jede Hilfe wird sehr geschätzt!
Danke,
DS
Betreff: Importformat der Excel-Datumsspalte erzwingenIch verwende Excel 365 Build 1908, also eine ziemlich neue Version.Welche JMP-Version verwenden Sie?
Brian
Betreff: Importformat der Excel-Datumsspalte erzwingenIch habe eine Reihe verschiedener Dinge ausprobiert, damit dies funktioniert, einschließlich der von Ihnen gesendeten Daten, und der Import wird mit den Ziffern, ABER ohne die tatsächlichen Werte angezeigt ...
Excel-Wert: 26.11.2019 9:41:04. 191 PN
In JMP importiert: 26.11.2019 9:41:04. 000 PN
Gibt es eine Einstellung für den Import, die dies möglicherweise ändert, die ich noch nicht aktiviert habe, oder ähnliches?
Beim Herumspielen ist mir ein Fehler in Excel aufgefallen, und ich bin gespannt, ob bei Ihnen das Gleiche passiert. Wenn in Excel das Format TT/MM/JJJJ hh:mm:ss.000 angegeben ist, werden die Werte .191 in der Zelle angezeigt, aber nicht in der Bearbeitungsleiste oben. Wenn ich in die Formelleiste klicke, werden die Ziffern nicht mehr in der Formel ODER der Zelle angezeigt. Wenn ich dann außerhalb der Bearbeitungsleiste klicke, ändern sich alle Ziffern zu .000 ..... Ich bin gespannt, ob dies möglicherweise eine Rolle dabei spielt, wie die Daten aus Excel erfasst werden.
Ich weiß nicht, ob das vielleicht nur ein Excel-Fehler ist oder ob es vielleicht an der Version liegt, die ich habe (Excel 2013).Welche Excel-Version verwenden Sie, wenn das Skript für Sie funktioniert?
Betreff: Importformat der Excel-Datumsspalte erzwingenSie können versuchen, die Option „Spaltenerkennung begrenzen“ zusammen mit Ihrer benutzerdefinierten Formatierung zu verwenden.Damit dies funktioniert, benötigen Sie wahrscheinlich JMP 15.Folgendes hat bei mir funktioniert:
Open(
"C:\Users\sasbxc\Desktop\test.xlsx",
Worksheets( "Sheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 1 ),
Column Separator String( "-" ),
Column Numeric Format(
Index( 0 ),
Column Name( Col1 ),
Format( "d/m/y h:m:s", 26, 3 )
)
)
)
Brian
Betreff: Importformat der Excel-Datumsspalte erzwingenOk, großartig! Danke!
Welches Skriptformat sollte ich verwenden, um das beim Importieren als Zeichenfolge zu lesen?
Betreff: Importformat der Excel-Datumsspalte erzwingenIch habe in der Vergangenheit erlebt, dass solche Probleme gelöst wurden, indem die Spalte als Zeichenfolge eingelesen und dann per Postprozess in einen Datumswert umgewandelt wurde.
Betreff: Importformat der Excel-Datumsspalte erzwingenVielen Dank für die schnelle Antwort!
Das Problem liegt tatsächlich beim Import (glaube ich), daher hat es bei mir nicht funktioniert, das als Postprozess auszuführen.
Die Excel-Daten in der ersten Spalte sehen also so aus:
26.11.2019 21:41:04.190 Uhr
Wenn ich es in JMP importiere mit open(filepath, worksheets()….) Die Daten sind wie folgt formatiert:
26.11.2019 21:41:04 Uhr
Wenn ich das Format nach dem Import ändere, ist das Ergebnis Folgendes:
26.11.2019 21:41:04.000 Uhr
Es sieht also so aus, als ob die letzten drei Ziffern beim Import weggelassen wurden. Gibt es eine Möglichkeit, dieses Format beim Import in die JMP-Tabelle zu erzwingen?
Betreff: Importformat der Excel-Datumsspalte erzwingenVorausgesetzt, dass die heruntergeladenen Daten die Millisekunden enthalten, muss nach dem Import der Datentabelle lediglich das Format geändert werden.Eine weitere Annahme für dieses Beispiel ist, dass die Spalte mit dem Datums- und Uhrzeitwert „DateTime“ heißt. Die folgende JSL kann angewendet werden, um die Datenanzeige zu ändern.
:DateTime << set format( "d/m/y h:m:s", 27, 3 );
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo Brian,
Ich versuche, Excel-Daten zu importieren und habe Schwierigkeiten, sie in das gewünschte Format zu bringen. Mir ist aufgefallen, dass Sie gesagt haben, dass der JMP 15 über zusätzliche Importformatierungsfunktionen verfügt. Da ich JMP15 verwende, hatte ich gehofft, dass Sie mir dabei helfen könnten.
An die Zeitdaten in Excel (1. Spalte) sind Millisekunden angehängt, daher muss ich den Import erzwingen, um dies zu erkennen. Beim Import gibt JMP lediglich das Format („d/m/yh:m:s“,27,0) an. Ich brauche es als Format ("d/m/yh:m:s",27,3). Wenn dies mein Code ist, wohin geht dann die Formatierung für diese Dezimalzahl auf 3?
Open(
"file_location\file.xlsx",
Worksheets( "Sheet 1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo @gzmorgan0 ,
Endlich bin ich zurück und konnte Ihr JSL-Skript testen, das VB zum Speichern als TXT verwendet. Es funktioniert und ich kann die Informationen nach Bedarf importieren. Mein einziges Problem ist, dass es nur für die letzte Registerkarte in der Excel-Datei funktioniert.
Meine Excel-Datei enthält mehrere Registerkarten, die ich importieren muss, alle mit dem Datumsproblem. Sobald ich in JMP bin, verkette ich alle Daten zur Analyse in einer einzigen Datentabelle. Ich habe auch gerade herausgefunden, dass ich die JSL ändern muss, um mehrere dieser Excel-Dateien zu öffnen und dann alle Daten zusammenzuführen. Ein zusätzliches Maß an Komplexität.
Leider kenne ich mich mit VB nicht gut genug aus, um etwas zu schreiben, das mehrere Tabs unterstützt. Ich habe jedoch einen Kollegen, der das tut, und sie arbeiten daran.
Ich habe versucht, meine Einstellungen in JMP zu ändern, um zu sehen, ob das Problem dadurch behoben wird, aber das ist nicht der Fall. Es scheint definitiv einen Fehler zu geben, der dazu führt, dass, obwohl ich das Datumsformat meines Betriebssystems auf Deutschland (dmy) eingestellt habe, immer noch das Installationsbetriebssystem (Englisch) verwendet und das Datum als mdy gelesen wird, sodass alle Tage größer als 12 einfach ignoriert werden.
Das JSL-Skript ist sehr hilfreich, vielen Dank für die Veröffentlichung. Wir müssen nur den VB-Teil ändern, um mit mehreren Registerkarten zurechtzukommen, das ist alles.
Betreff: Importformat der Excel-Datumsspalte erzwingenDanke @gzmorgan0 , insbesondere für die Beispiel-Importdatei. Ich werde es nächste Woche testen und sehen können, ob es funktioniert, kann aber nicht bald dazu kommen.
Freuen Sie sich auf die neue „Force“-Option in JMP 15.
Danke!,
DS
Betreff: Importformat der Excel-Datumsspalte erzwingen@ghartel , Beachten Sie, dass @briancorcoran erwähnt, dass es in JMP 15 möglicherweise mehr Optionen gibt.
Im Anhang ist ein Skript enthalten, das eine Excel-Tabelle als tabulatorgetrennte Textdatei speichert und die Textdatei dann in JMP einliest.
Möglicherweise möchten Sie versuchen, die Textdatei mit Ihren Systemstandards (in Australien und Deutschland) zu lesen, um zu sehen, ob die JMP-Importtextstandards das Datum als Text lesen. Wenn nicht, müssen Sie alle Ihre Spalten benennen und den Datentyp angeben.
Da dieses Skript VBScript verwendet, funktioniert es wahrscheinlich nicht für einen Mac.
Das Skript wird nur für den Fall bereitgestellt, dass dies hilfreich sein könnte.
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo JMPer,
Australien verwendet auch das „falsche“ Datumsformat
Daher werden Tage als Monate interpretiert und >12 werden aufgrund einer Formatverletzung zu fehlenden Werten. Dies kann in der zweiten Zeile passieren.Das ist sehr frustrierend, denn wenn man Pech hat, kann es am ersten Tag > 12 in der Datei passieren, dass man es nicht bemerkt und am Ende ein fehlender Wert entsteht ohne Warnung als JMP entscheidet, dass ein falsches Datumsformat gelesen wurde.
Es gibt zwei Dinge, die dafür sorgen könnten, dass es funktioniert.Deaktivieren Sie zunächst in den JMP-Einstellungen unter „Windows-spezifisch“ das Kontrollkästchen „JMP-Sprache anstelle von Systemgebietsschemaeinstellungen verwenden...“.Ich kann in JMP keine Stelle finden, an der Sie ein Standarddatumsformat festlegen können. Daher bin ich mir nicht sicher, worauf sich dieses Flag bezieht.Der zweite Schritt besteht darin, die Windows-Gebietsschemaeinstellung zu ändern, wie im vorherigen Poster gezeigt, ABER JMP gefällt die Einstellung TT/MM/JJJJ nicht – sie muss TT/MM/JJ lauten – ich weiß nicht warum, aber dann funktioniert es zumindest Für mich.Ich weiß nicht, ob es sich lediglich um ein Windows-Problem handelt, dh ob dieses Problem bei Macs nicht auftritt.Ich führe JMP auf einem Windows 7-Rechner und einem Windows 10-Rechner aus – JMP PRO 14.3 64 Bit –, aber ich hatte dieses Problem, da Excel-Importe eine Sache in JMP waren.
Einige schlugen vor, die Spalte als Text einzulesen. Ich sehe keine Optionen, um JMP zu zwingen, bestimmte Spalten als Text einzulesen. Ist das möglich?
Eine weitere Problemumgehung besteht darin, Ihre Daten im CSV-Format abzurufen, da JMP aus irgendeinem Grund im Gegensatz zu Excel eine sehr genaue Kontrolle über Eingaben ermöglicht.Die dritte Möglichkeit besteht darin, Excel-Dateien über die Datenbankschnittstelle einzulesen.Dafür sind jedoch entsprechende ODBC-Einstellungen auf Ihrem PC erforderlich und es ist auch etwas mühsam.
Hinweis für JMP: Es wäre sehr gut, wenn JMP Warn- oder Fehlermeldungen senden würde, wenn der Import eines Felds aufgrund eines falschen Formats fehlschlägt.Ich habe Kunden, die * oder < zu numerischen Feldern hinzufügen, die Excel gerne in Zeichenfelder umwandelt und JMP still und leise in fehlende Werte umwandelt.JSL eignet sich hervorragend zum Automatisieren von Aufgaben, aber so etwas macht es sehr schwierig, Ihre Programme fehlersicher zu machen.
Prost
Günter
Betreff: Importformat der Excel-Datumsspalte erzwingen@SDF1 , ich habe zwei Vorschläge:
- JSL kann über Run Program() andere Programme wie VBSript ausführen.Ihre JSL könnte so geschrieben werden: Öffnen Sie die Datei über Excel und formatieren Sie die Spalte als Text (falls erforderlich). Speichern Sie die Datei als tabulatorgetrennten Text. Schließen Sie Excel und lesen Sie dann die Textdatei ein. Dort haben Sie die Möglichkeit, die Spalte als Text zu lesen und dann zu konvertieren.
- Als Datenbank können Excel-Dateien verwendet werden. Ich habe ein wenig nachgelesen und festgestellt, dass das Problem, das Ihre deutschen Kollegen sehen, möglicherweise auf einen Excel-Konverter für den Datentyp zurückzuführen ist.Unten finden Sie JSL zur Verwendung von Open Database(). Dies erfordert ein wenig Vorbereitungsarbeit. Ihre deutschen Kollegen müssten einen DSN für Excel definieren und denselben Namen verwenden.Wenn nun jeder 64-Bit-JMP und 64-Bit-MW-Office hat, ist das ziemlich einfach. Wenn sie über 32-Bit-MS Office verfügen, kann ich ihnen die Schritte zur Einrichtung zusenden.Der Code IMEX=1 teilt Excel mit, dass Excel sie in Text konvertieren soll, wenn es eine Spalte sieht, die wie ein gemischter Datentyp aussieht.
dt2 = Open Database( "DSN=Excel Files;
DBQ=c:/temp/ExcelDateBlog.xlsx;IMEX=1",
"SELECT * FROM [Sheet1$]",
"Result from XLS"
);
Ich denke, dass die Arbeit mit einer Textdatei bis JMP 15 einfacher sein würde, wenn der Excel-Assistent die Angabe der Spaltenformate ermöglicht. Lassen Sie mich wissen, wenn Sie Hilfe/Beispiel für Option Nr. 1 benötigen.
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo @briancorcoran ,
Entschuldigung, ich vergesse immer wieder, meine Systemdaten am Anfang eines neuen Beitrags anzugeben.
W7 Enterprise, 64-Bit
JMP Pro 14.1.0 (und JMP 14.0.0)
Ich verwende ein englisches (US) Betriebssystem und versuche, Automatisierungscode für meine deutschen Kollegen zu schreiben, die ebenfalls W7 Enterprise ausführen, aber für das Betriebssystem eine deutsche Sprache verwenden. Bei anderen Projekten wie diesem hatte ich keine Probleme mit falsch verstandenen Daten. Allerdings muss ich zwei verschiedene Codeversionen schreiben, eine für meine US-Kollegen und eine für meine deutschen Kollegen, weil die normalen US-Betriebssysteme die Daten als Text einlesen. Und wie @gzmorgan0 Wie bereits erwähnt, ist die Handhabung und Konvertierung, wenn es als Text eingelesen wird, kein Problem. Wenn meine deutschen Kollegen jedoch versuchen, die JSL-Skripte auszuführen, die für die Ausführung auf US-Computern geschrieben wurden, funktioniert das nicht richtig, sodass ich den Code ändern muss, damit er auf einem deutschsprachigen Betriebssystem ordnungsgemäß ausgeführt wird.
Um Code für die Ausführung auf deutschen Computern zu schreiben, ändere ich meine regionalen/lokalen Einstellungen in meinem Betriebssystem auf „Deutsch (Deutschland)“. Leider scheint JMP die Datumseinstellungen nicht korrekt aus der Excel-Datei zu importieren, die ich habe.
Betreff: Importformat der Excel-Datumsspalte erzwingenDanke Georgia. Ich habe dies zur Untersuchung eines möglichen Fehlers weitergeleitet.
Brian
Betreff: Importformat der Excel-Datumsspalte erzwingen@SDF1 , Tut mir leid, dass es bei Ihnen nicht funktioniert hat.
Da JMP nicht aus Deutschland stammt, interpretierte es das Format TT.MM.JJJJ als Text.
Sie könnten einen dieser Vorschläge ausprobieren:
- Machen Sie diese Datumsspalte zu einer Textspalte.
- Speichern Sie die Daten als Textdatei, wobei Sie mit der Importvorschau oder einem Skript das Format festlegen und ein Zeichenformat erzwingen können.
Ich glaube, es liegt ein interner Fehler vor. Siehe meinen letzten Beitrag an Brian.
Betreff: Importformat der Excel-Datumsspalte erzwingen@briancorcoran , hast du gesehen, wie ich mich darauf verlassen kann? @SDF1 ?
- Ich habe die Excel-Tabelle als Text/Zeichen eingelesen
- Dann wurde die Kolumnennachricht gesendet
dt:Date << Data Type (Numeric,
"Continuous",
Format( "m/d/y", 12 ),
Input Format( "ddmmyyyy" ));
- Das gleiche Verhalten beschrieben von @SDF1 kam es auch vor.Ich habe die ersten Daten dann am 13.02.2019 gelesen und später waren die Werte leer. Das hat nichts mit der Excel-Tabelle zu tun: JMP hat die Datumsspalte als Text gelesen.
- Wenn ich jedoch die Spalte „Nachricht unten“ verwendet habe, in der es keine zwei Konvertierungen gibt, das Eingabeformat und das Format identisch sind, werden die Daten korrekt konvertiert.
dt:Date << Data Type (Numeric,
"Continuous",
Format( "ddmmyyyy", 12 ),
Input Format( "ddmmyyyy" ));
- Verwenden Sie dann die Data Type()-Nachricht der vorherigen Spalte und das gewählte Format ist in Ordnung.
Wie in meiner Antwort angegeben, war dies ein sehr unerwartetes Verhalten und scheint für mich ein Fehler zu sein. Ich verwende JMP Pro 14.3
Betreff: Importformat der Excel-Datumsspalte erzwingenWelche JMP-Version verwenden Sie?
Brian
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo Brian ( @briancorcoran ),
Ja, tatsächlich ist die Spalte auf „Datum“ mit einem dmy-Format im deutschen Stil eingestellt. Bitte lesen Sie einen früheren Beitrag in diesem Thread, in dem ich einen Screenshot des Excel-Spalteneigenschaftenfensters und der Einstellung beifüge. Sogar meine Systemeinstellung ist so, siehe unten.
Danke!,
DS

Betreff: Importformat der Excel-Datumsspalte erzwingenHallo DS,
JMP sollte Formate berücksichtigen, die speziell auf eine Spalte in Excel angewendet werden.Haben Sie in Excel das Dialogfeld „Zellen formatieren“ verwendet, um den Spaltentyp explizit auf „Datum“ und dann auf ein europäisches Format wie das deutsche dmy festzulegen?In diesem Fall sollte JMP die Daten korrekt eingeben.
Brian
Betreff: Importformat der Excel-Datumsspalte erzwingenAktualisieren:
Ich habe mich ein wenig intensiver mit der Excel-Datei beschäftigt, und das Einzige, was allen Tabs gemeinsam ist und diesen Fehler verursacht, wenn ich versuche, die Daten zu importieren, ist, dass die Datumsspalte heruntergelesen wird und vom Datum 12.02.2019 (12. Februar 2019) ausgeht ) bis 13.02.2019 (13.02.2019).
Hier ist meine Theorie: Ich glaube, JMP verwechselt das Format für die Daten vor dem 12. und danach. Mein ursprünglicher Datumsbereich ist vom 02.01.2019 bis 28.02.2019: 02.01.2019 bis 28.02.2019.
Während JMP die Datumsspalte herunterliest, scheint es das Datum 02.01.2019 tatsächlich als 01. Februar 2019 zu interpretieren. Wenn es also den 12.02.2019 erreicht, liest es tatsächlich das Datum als 02. Dezember 2019 ein. Wenn der 13.02.2019 (13. Februar 2019) erreicht ist, weiß er daher nicht, wie er das Datum einlesen soll, da es keinen 13. Monat gibt. Die Spalteneigenschaften in JMP zeigen es immer als „kontinuierlicher“ Modellierungstyp, „dmy“-Format und „dmy“-Eingabeformat an. Dies geschieht, es sei denn, ich teile den Import in zwei Abschnitte auf.
Wenn ich den Import in zwei verschiedene Teile aufteile, einen vom 02.01.2019 bis 12.02.2019 und dann vom 13.02.2019 bis 28.02.2019, importiert JMP die Daten entsprechend und weist das Spaltenformat entsprechend zu. Ich kann die beiden dann zu einer korrekten Datentabelle verketten. Ich weiß nicht, warum es in meinem ursprünglichen Beitrag nicht funktioniert hat, aber es kann so funktionieren.
Ich kann auch bestätigen, dass es keine Abhängigkeit davon gibt, welche Einstellungen ich in JMP vorgenommen habe, damit die Daten korrekt importiert werden.
Dies ist der Automatisierung nicht so förderlich, da die Originaldatei möglicherweise den Speicherort (Zeile) dieser Datumsänderung vom 12. zum 13. ändert. Ich denke jedoch, dass ich dafür sorgen muss, dass es über die Split-Route funktioniert. Wenn es sich um einen Fehler in JMP handelt, wäre es großartig, wenn dieser behoben werden könnte.
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo @gzmorgan0 ,
Vielen Dank für Ihre Gedanken und Beiträge. Leider funktioniert auch dieser Ansatz nicht. Das Problem liegt daran, dass JMP das Datumsformat falsch liest, bevor es überhaupt importiert wird. Wenn ich das Skript ausführe oder versuche, es über die Benutzeroberfläche des Assistenten auszuführen, klassifiziert JMP die Datumsangaben fälschlicherweise als dmy- oder mdy-Format, wenn es das andere ist.
Selbst eine Änderung Ihres Codes für verschiedene Variationen des Datumsformats löst das Problem nicht. Es importiert einfach nicht das gemischte Format und behandelt nur die eine oder andere Art als kontinuierlich, die anderen ignoriert es einfach. Der JSL-Code importiert es auch nicht als nominalen Datentyp – es wird direkt als kontinuierlich eingegeben.
Danke!,
DS
Betreff: Importformat der Excel-Datumsspalte erzwingenHallo @briancorcoran ,
Danke für die Eingabe. Ich habe Ihren Vorschlag ausprobiert, aber leider hat er nicht funktioniert. Selbst im Vorschaufenster, wenn „Spaltenerkennung eingeschränkt“ und alle Zeilen angezeigt werden, hat JMP ein Problem mit dem Lesen des Formats. Die ersten 205 Zeilen werden einwandfrei gelesen, aus irgendeinem Grund wechselt es in Zeile 206 das Format.
Was keinen Sinn ergibt, ist, dass sich die Formatierung in Excel nicht von einer Zeile zur nächsten ändert. Wenn ja, kann ich verstehen, warum JMP sie möglicherweise anders liest. Alle Zellen sind in Excel als „Datum“ tt.mm.jjjj formatiert. Das Gleiche passiert auf der nächsten Registerkarte, die ich importiere, jedoch in den Zeilen 52 bis 53. Ich könnte verstehen, wenn es bei der ursprünglichen Excel-Dateigenerierung ein Problem gab, bei dem dieselben Zeilen in allen Tabellen einen Fehler hatten, der die Daten unterschiedlich speicherte, sich aber nicht einmal von Tab zu Tab an derselben Stelle befanden, wenn JMP die Daten einliest.
Die einzige Formatierungssache von Excel-Seite, die ich sehe, könnte sein, dass die Option „Typ“ in der Kategorie „Datum“ mit einem * beginnt, siehe beigefügtes Bild unten. Dies sollte jedoch entsprechend den Betriebssystemeinstellungen aktualisiert werden. Alle Daten in der Spalte sind auf diese Weise formatiert. Wenn JMP also bei einem ein Problem hat, sollte es bei allen ein Problem haben.
Ich werde versuchen @gzmorgan0 's Vorschlag zum Importieren und sehen Sie, ob das funktioniert.
Es wäre schön, wenn JMP beim Import bestimmte Formatierungstypen erzwingen würde, insbesondere wenn es darum geht, einen JSL-Code zur Automatisierung des Prozesses zu erstellen.

Betreff: Importformat der Excel-Datumsspalte erzwingenAus Leistungsgründen untersucht die Excel-Vorschau die ersten 100 Zeilen, um den Datentyp für die Vorschau zu bestimmen.Während des eigentlichen Importvorgangs prüft JMP alle Zeilen.Wenn es nach Zeile 100 Daten sieht, die zu einer anderen Schlussfolgerung führen, kann es zu einem anderen Ergebnis kommen.Wenn Sie möchten, dass die Vorschau alle Zeilen anzeigt, um das zu erzeugen, was Sie beim Import sehen, können Sie in der Aktualisierung des Vorschaufensters der Benutzeroberfläche die Option „Alle Zeilen anzeigen“ auswählen.Wenn Sie möchten, dass der Import beim Lesen der Daten nur die ersten 100 Zeilen berücksichtigt, um das Verhalten der Vorschau zu erzeugen, können Sie im zweiten Bereich des Importdialogs zu „Erweiterte Optionen“ gehen und „Erkennung des Spaltentyps beschränken“ auswählen. .
JMP 15 führt die Möglichkeit ein, die numerischen Formatierungstypen einzelner Spalten so zu erzwingen, wie der Benutzer sie auswählt.
Brian Corcoran
JMP-Entwicklung
Betreff: Importformat der Excel-Datumsspalte erzwingenHmmmm, @SDF1 , vielleicht haben Sie einen Fehler gefunden.
Der Ansatz, den ich verfolge, besteht darin, die Daten einzulesen, sie als Zeichenfolge zu belassen und sie dann zu konvertieren. Wenn ich jedoch versuche, nur die letzte Data Type()-Nachricht zu verwenden, sehe ich dasselbe Verhalten, das Sie beschrieben haben. Wenn ich die gleiche Informations- und Formatanweisung behalte, tritt das Problem nicht auf.Nach der Konvertierung stellen Sie es auf das von Ihnen gewählte Format ein
Names default to here(1);
dt = Open(
"C:\temp\ExcelDateBlog.xlsx",
Worksheets( "Sheet1" ),
Use for all sheets( 0 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
wait(0); //change to 2 seconds to see that the data is read in as text
dt:Date << Data Type (Numeric,
"Continuous",
Format( "ddmmyyyy", 12 ),
Input Format( "ddmmyyyy" ));
dt:Date << Data Type (Numeric,
"Continuous",
Format( "m/d/y", 12 ),
Input Format( "ddmmyyyy" ));
Hoppe, das hilft.