你好! 我有兩個項目日期列表,一個是維護日期,一個是生產日期。 我試圖找出每個生產日期,自上次維護日期以來已經過了多長時間。 顯然,維護日期的頻率遠低於生產日期,但維護日期有很多,因此有一個公式來計算這個增量會容易得多。 有人有什麼建議嗎?
是的! 我認為這會奏效! 我需要花點時間弄清楚如何把我的桌子放在那裡(我是 jmp 的菜鳥
) 但原理看起來是正確的。 謝謝!
這裡有 2 個沒有日期差異鍵的數據表。這是你想要的?
Names Default To Here( 1 );
// Create some sample date data tables
dtProd = New Table( "Production Data",
Add Rows( 15 ),
New Column( "Production Date",
Numeric,
"None",
Format( "ddMonyyyy", 12 ),
Input Format( "ddMonyyyy" ),
Set Values(
[3461875200, 3469737600, 3485462400, 3506630400, 3509049600, 3530217600, 3545942400, 3567110400, 3590697600,
3606422400, 3614284800, 3651177600, 3659040000, 3666902400, 3688070400]
)
)
);
dtMaint = New Table( "Maintenance Data",
Add Rows( 4 ),
New Column( "Maintain Date",
Numeric,
"Continuous",
Format( "ddMonyyyy", 12 ),
Input Format( "ddMonyyyy" ),
Set Values( [3444163200, 3528316800, 3603744000, 3689539200] )
)
);
// Create a new column in the Production Data table
dtProd << New Column( "Days since maintenance", Format( "Fixed Dec", 8,0 ) );
// Populate the new column by finding the most recent value of the Maintain Date
// that is less than the current Production Date, and then find the Difference
// in days
For( i = 1, i <= N Rows( dtProd ), i++,
selectionMatrix = dtMaint << get rows where( dtMaint:Maintain Date <= dtProd:Production Date[i] );
dtProd:Days since maintenance[i] = Date Difference(
Max( dtMaint:Maintain Date[selectionMatrix] ),dtProd:Production Date[i], "Day");
);
我無法真正附加數據,因為它是 IP... 但是這兩個數據集都在 JMP 表中。
嗨 kevin_c_anderso! 我的問題不一定是找到日期之間的差異,而是我有兩個彼此不相關的日期列表,對於一個列表,我需要自另一個列表最近/最近的事件以來經過的時間列表。 列表 A 的條目比列表 B 多,並且兩個列表中都沒有任何列可以用來加入它們。 我只想為列表 A 中的每個項目找出列表 B 中最近發生的事件是什麼,然後我可以計算它們之間經過的時間量。 那有意義嗎?
您的數據是否在 JMP 列表或 JMP 數據表中?你能把你的數據樣本附加到討論中嗎?
嗯,我似乎無法讓它工作...... 可能是因為這些列表是獨立生成的,彼此之間沒有任何關係(據 JMP 所知)。 我想讓我重新構建我的問題:我有 1 個列表,其中包含生產批次、生產日期/時間、生產設備。 在單獨的列表中,我有設施設備(與生產設備不同)、設施維護事件、設施維護日期/時間。 它們是兩個單獨的列表,我沒有任何加入方式(無法生成有效的密鑰),但我想為每個產品日期/時間找出最近的設施維護日期/時間(我猜是設施維護事件,儘管這些都只是“開/關”事件)。 那有意義嗎?
如果您有 2 個日期列表,一個稱為 Prod(生產日期),一個稱為 Maint(維護日期),您可以使用以下方法獲取最後的維護日期。然後使用 Date Difference() 函數,您可以找到天數差異
注意:維護列表/矩陣需要按升序排列。
names default to here(1);
maint={.............};
prod={..............................};
For(i=1,i<=N Rows(prod),i++,
LastMaintDate=loc sorted(matrix(maint),matrix(prod[i]));
DaysDifference = Date Difference(prod,LastMaintDate,"Day");
);
嗨,溫斯洛!
JMP 將日期時間跟踪為自 1904 年 1 月 1 日午夜以來的秒數。例如,現在是 3599388994。這使得跟踪時差變得異常容易……它只需要一些算術和一些格式。JMP 格式支持一堆(14 種?)不同的 ISO 日期格式,您甚至可以使用公式或腳本將任何不受支持的日期格式解析為 JMP 信息格式。
將兩個列表放在一起可能會遇到更多挑戰,這樣您才能正確執行所有算術運算。如果您需要任何幫助或有任何疑問,請回复。