こんにちは、
1 列目に測定値、2 列目にステータスがあるにもかかわらず、Minitab で表示される内容を再現できません。結果の写真を共有していただけますか?
ホール-前 13,9445
ホール - 13,9612以降
ホール-前 14,031
ホール - 14,0403 以降
ホール- 14,2363以前
ホール - 14,0423 以降
ホール-前 14,0605
ホール - 13,9773以降
ホール-前 14,2448
ホール - 14,0903以降
ホール - 14,3006以前
ホール - 13,9198以降
穴-前 14,0294
ホール - 13,9568以降
ホール-前 13,9381
ホール - 13,9731以降
穴- 14,1617以前
ホール - 14,0621の後
ホール-前 13,8853
ホール - 14,0253 以降
ホール-前 14,0038
ホール - 14,0468 以降
ホール-前 13,6758
ホール - 14,0333 以降
ホール-前 13,6735
ホール - 14,1074以降
ホール- 14,1156以前
ホール - 14,0396以降
ホール- 14,2386以前
ホール - 13,9335以降
穴- 14,1268以前
ホール - 13,9734以降
ホール-前 13,8388
ホール - 14,0022以降
ホール-前 14,0422
ホール - 13,9869以降
ホール-前 13,9771
ホール - 13,9939以降
ホール-前 13,9529
ホール - 14,0271 以降
ホール-前 14,0051
ホール - 14,0045以降
ホール-前 13,9315
ホール - 13,972後
ホール-前 13,9159
ホール - 13,9924以降
ホール-前 14,0973
ホール - 13,9723以降
ホール- 14,1115以前
ホール - 13,9787 以降
ホール-前 14,0744
ホール - 13,9936以降
ホール-前 14,332
ホール - 13,9986以降
ホール-前 13,7861
ホール - 14,041 以降
穴 - 14,1448 以前
ホール - 13,902後
ホール-前 14,0634
ホール - 13,9935以降
Minitab レポートフォームを複製したい場合は、非常に粗雑なハードコード版があります。これを汎用形式にし、JMP アドインとして追加するのは簡単です。しかし、それは皆さんの努力に任せます。

これは JSL のみを使用して、以前に提供した出力からオブジェクトを取得し、Minitab フォームに再フォーマットします。大量のクリーンアップと汎用化が必要です。
これがコードの最初のパスです
Names Default To Here( 1 );
dt = Current Data Table();
dis = dt << Distribution( invisible,
SendToByGroup( {:Before After == "Hole - Before"} ),
Continuous Distribution( Column( :Measurement ), Process Capability( Use Column Property Specs ) ),
By( :Before After ),
Group Options( Layout( "Horizontal List" ) ),
SendToByGroup(
{:Before After == "Hole - Before"},
SendToReport(
Dispatch( {"Measurement", "Process Capability", "Measurement Capability", "Nonconformance"},
"Observed PPM", NumberColBox,
{Visibility( "Visible" )}
)
)
),
SendToByGroup(
{:Before After == "Hole - After"},
SendToReport(
Dispatch( {"Measurement", "Process Capability", "Measurement Capability", "Histogram"},
"Process Capability Analysis Histogram", FrameBox,
{DispatchSeg( CustomStreamSeg( 1 ), {Font} )}
),
Dispatch( {"Measurement", "Process Capability", "Measurement Capability", "Nonconformance"},
"Observed PPM", NumberColBox,
{Visibility( "Visible" )}
)
)
)
);
// Build the report
// Set the Histograms to the same axis
theMin = Min(
Report( Dis[1] )["Histogram", AxisBox( 1 )] << get min,
Report( Dis[2] )["Histogram", AxisBox( 1 )] << get min
);
theMax = Max(
Report( Dis[1] )["Histogram", AxisBox( 1 )] << get max,
Report( Dis[2] )["Histogram", AxisBox( 1 )] << get max
);
Report( Dis[1] )["Histogram", AxisBox( 1 )] << Min( theMin );
Report( Dis[1] )["Histogram", AxisBox( 1 )] << Max( theMax );
Report( Dis[2] )["Histogram", AxisBox( 1 )] << Min( theMin );
Report( Dis[2] )["Histogram", AxisBox( 1 )] << Max( theMax );
Summarize( dt, baGroups = by( :Before After ) );
nw = New Window( "Report",
Outline Box( "Before/After Capability Comparison for " || baGroups[1] || " vs. " || baGroups[2],
V List Box(
H List Box(
Text Box( "Before: " || baGroups[1] ),
Spacer Box( size( 200, 0 ) ),
Text Box( "Process Performance Report" )
),
Text Box( "After: " || baGroups[2] )
),
Spacer Box( size( 0, 5 ) ),
Lineup Box( N Col( 2 ),
Outline Box( "Capability Histogram",
lub1 = Lineup Box( N Col( 1 ),
H List Box( Spacer Box( size( 60, 0 ) ), Text Box( "Are the data inside the limits?" ) )
)
),
V List Box(
obPC = Outline Box( "Process Characterization" ),
Spacer Box( size( 0, 15 ) ),
obCS = Outline Box( "Capability Statistics" )
)
)
)
);
lub1 << Append( Report( Dis[1] )["Histogram", framebox( 1 )] );
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Text Box( " Before" )
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Report( Dis[1] )["Histogram", framebox( 2 )]
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Text Box( " After" )
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Report( Dis[2] )["Histogram", framebox( 2 )]
)
);
lub1 << Append(
Border Box( top( 0 ), bottom( 0 ), Left( 0 ), Right( 0 ), sides( 15 ),
Report( Dis[1] )["Histogram", axisbox( 1 )]
)
);
// Build Process Characterization table
beforePCList = Report( Dis[1] )["Process Summary", Number Col Box( 1 )] << get;
Remove From( beforePCList, 1, 2 );
Remove From( beforePCList, 5, 1 );
Insert Into( beforePCList, 1, 2 );
afterPCList = Report( Dis[2] )["Process Summary", Number Col Box( 1 )] << get;
Remove From( afterPCList, 1, 2 );
Remove From( afterPCList, 5, 1 );
Insert Into( afterPCList, 1, 2 );
changeList = {., .};
Insert Into( changeList, beforePCList[3] - afterPCList[3] );
Insert Into( changeList, beforePCList[4] - afterPCList[4] );
Insert Into( changeList, beforePCList[5] - afterPCList[5] );
obPC << append(
Table Box(
String Col Box( "", {"Total N", "Subgroup size", "Mean", "STDev(within)", "StDev(overall)"} ),
Number Col Box( "Before", beforePCList ),
Number Col Box( "After", afterPCList ),
Number Col Box( "Change", changeList )
)
);
beforeCSList = {.};
Insert Into( beforeCSList, (Report( Dis[1] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( beforeCSList, (Report( Dis[1] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( beforeCSList, . );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 1 )] << get)[3] );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 3 )] << get)[3] );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 4 )] << get)[3] );
Insert Into( beforeCSList, beforeCSList[6] * 1000000 );
Insert Into( beforeCSList, . );
Insert Into( beforeCSList, (Report( Dis[1] )["Within Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( beforeCSList, (Report( Dis[1] )["Within Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( beforeCSList, . );
Insert Into( beforeCSList, (Report( Dis[1] )["Nonconformance", Number Col Box( 2 )] << get)[3] );
Insert Into( beforeCSList, Round( beforeCSList[13] * 1000000, 0 ) );
afterCSList = {.};
Insert Into( afterCSList, (Report( Dis[2] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Overall Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( afterCSLIST, . );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 1 )] << get)[3] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 3 )] << get)[3] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 4 )] << get)[3] );
Insert Into( afterCSLIST, afterCSLIST[6] * 1000000 );
Insert Into( afterCSLIST, . );
Insert Into( afterCSLIST, (Report( Dis[2] )["Within Sigma Capability", Number Col Box( 1 )] << get)[4] );
Insert Into( afterCSLIST, (Report( Dis[2] )["Within Sigma Capability", Number Col Box( 1 )] << get)[1] );
Insert Into( afterCSLIST, . );
Insert Into( afterCSLIST, (Report( Dis[2] )["Nonconformance", Number Col Box( 2 )] << get)[3] );
Insert Into( afterCSLIST, Round( afterCSLIST[13] * 1000000, 0 ) );
change = Matrix( beforeCSList ) - Matrix( afterCSList );
obcs << append(
Table Box(
String Col Box( "",
{"Actual (overall)", " Pp", " Ppk", " Z Bench", " % Out of spec (obs)",
" % Out of spec (exp)", " PPM (DPMO) (obs)", " PPM (DPMO) (exp)", "Potential (within)",
" Cp", " Cpk", " Z Bench", " % Out of spec (exp)", " PM (DPMO) (exp)"}
),
Number Col Box( "Before", beforeCSList ),
Number Col Box( "After", afterCSList ),
Number Col Box( "Change", change )
)
);
dis << close window;