ࡱ>  }rCompObjpi351A; n``nRnRf o:<oGI5CompObj3pi73FRL n``ivRivRfZ  !"#$%&'()*,-./0123456789:;<=>?@BCDEFGHIJKLMNOPQRSTUVXYZ[\]^_`abcdefghijklnopqrstuvwxyz{|}~ I@\p training wingervices Centre Ba= ThisWorkbook=xKX/W!<X@"1Arial1Arial1Arial1Arial""#,##0;\-""#,##0""#,##0;[Red]\-""#,##0""#,##0.00;\-""#,##0.00#""#,##0.00;[Red]\-""#,##0.005*0_-""* #,##0_-;\-""* #,##0_-;_-""* "-"_-;_-@_-,)'_-* #,##0_-;\-* #,##0_-;_-* "-"_-;_-@_-=,8_-""* #,##0.00_-;\-""* #,##0.00_-;_-""* "-"??_-;_-@_-4+/_-* #,##0.00_-;\-* #,##0.00_-;_-* "-"??_-;_-@_-#,##0\ "";\-#,##0\ ""!#,##0\ "";[Red]\-#,##0\ """#,##0.00\ "";\-#,##0.00\ ""'"#,##0.00\ "";[Red]\-#,##0.00\ "";6_-* #,##0\ ""_-;\-* #,##0\ ""_-;_-* "-"\ ""_-;_-@_-83_-* #,##0\ __-;\-* #,##0\ __-;_-* "-"\ __-;_-@_-C>_-* #,##0.00\ ""_-;\-* #,##0.00\ ""_-;_-* "-"??\ ""_-;_-@_-@;_-* #,##0.00\ __-;\-* #,##0.00\ __-;_-* "-"??\ __-;_-@_-                + ) , *  `ISheet1]Sheet2q Sheet3,8 I@   dMbP?_*+%"??U>@7 Sheet1 I@   dMbP?_*+%"??U>@7 Sheet2 I@ )  dMbP?_*+%"??U>@7 Sheet3 T[1#y).Yv Fy).YvxME Sheet1++ySheet2AySheet3WyThisWorkbook m(SLSS<N0{00020820-0000-0000-C000-000000000046}@(%H0x % %P@ xAttribute VB_Name = "She@et1" Bast0{00020820- C$0046} |Global!SpacFalse dCreatablPre declaIdTru BExposeTemplateDeriv$BustomLizD2 T[1 #y).Yv Fy).YvxME (SLSS<N0{00020820-0000-0000-C000-000000000046}@(%H0x % %P@ xAttribute VB_Name = "She@et2" Bast0{00020820- C$0046} |Global!SpacFalse dCreatablPre declaIdTru BExposeTemplateDeriv$BustomLizD2 T[1 #y).Yv Fy).YvxME (SLSS<N0{00020820-0000-0000-C000-000000000046}@(%H0x % %P@ xAttribute VB_Name = "She@et3" Bast0{00020820- C$0046} |Global!SpacFalse dCreatablPre declaIdTru BExposeTemplateDeriv$BustomLizD2 T[1 #y).YvFy).YvxME (SLSS<N0{00020819-0000-0000-C000-000000000046}@(%H0x % %P@ x  * !"#$%&'()+,-./0123456789:;<=>?@ABDPFGHIJKLMNOCQRSTUVWXYZ[\^_`rbcdefghijklmnopq]stuvwxyz{|~Attribute VB_Name = "ThisWorkbook" Bas0{00020P819-0C$0046} |GlobalSpacFalse dCreatablPredeclaIdTru BExposeTemplateDerivBustomi&zD2 (V/c 1'Yv'YvL'Yv'YvxMEmodMain VdlgUnStack$E2dlgXYPlot"aNstats_functions ,Y   * P NX  ,   F "X *` "  "  * 8 X V` B  *  $   >@P D   0 @ :P  <p   $  $$0<$X@#4$:$*tP >>$<$:#H2$  V 0*$H!!H1xME@# 8$@ F$x F$ 2#  @ P " X `  b  B$"   , 0@ ` p  ` "     "   0 8 H " P X x   "      "       " (  0 @ " H P p x  "      "      "  ( H P ` " h (p    "     " .   ( " 0 8 X ` p " x (    "  (    "  ,  P X h " p ,x    "     "  ,   ( 8 " @  H X " `  h x "    "  "  "     "     "  ,   P ` "h p x 0    "  .   0 Module modMainel$ SSC statistical extensions to ExcelG Copyright 2002: Statistical Services Centre, The University of Reading& Written by Howard Grubb, Colin Grayer declare all variables]P ]x ? ==================== Start and Stop routines =================0# Run each time the add-in is openedWorksheet Menu Bar$(."Chart Menu Bar$(.$o p# Run each time the add-in is closedWorksheet Menu BarA@,Chart Menu BarA@,oO====================== Menu handling routines =================================$ Add the SSC menu and its menu items]](]@]X]p .A@,!in case it exists7 Look for correct place to insert the SSCStat menu item'6'8 2 . :%<!> 2!@&Window > Remember position of Window menu - position SSCStat before it 8'6k 8 '8 2 64Insert before penultimate item if "Window" not found 8 '6kX Dl 6FH . :%<!>%B.0 J 0(@ Set up the submenu structure General 0&General DN$L.2 2&Define Data AreaDataAreaDialogShow$L.4 2&Overview of SSC-Stat GeneralHelpP$L.4 2&Tutorial (PDF) TutorialPDF$L.4 2Help on &Data Entry DataEntryHelp$L.4 T$R!V\ X$~7 Only include pointer to booklets if they are installed 2&Good Practice GuidesGoodPracticeHelp$L.4k 2&Statistical Services CentreAboutSSC$L.4 2&About SSC-Stat AboutSSCStatP$L.4 2 &Registration Registration$L.4 Data EntryP Set MenuItem = AddMenuItem(SSCMenu, "&Data Entry", ItemType:=msoControlPopup) Data Management 0 &Manipulation DN$L.2 2&UnStackUnStackDialogShow$L.4 2UnStack(&Two-Way)UnStackTwoWayDialogShow$L.4 2&StackStackDialogShow$L.4 2&LookupLookupDialogShow$L.4 2&HelpDataManagementHelpP$L.4 Graphics 0&Visualisation DN$L.2 2X-Y &Scatter PlotXYStackDialogShow$L.4 2&Category-Value PlotColumnPlotDialogShow$L.4 2&BoxplotBoxPlotDialogShow$L.4 2&Normal Probability PlotQQPlotDialogShow$L.4 2&Density EstimateDenestDialogShowP$L.4 2&Help GraphicsHelpP$L.4 Statistics 0 &Analysis DN$L.2 2&Descriptive StatisticsDescriptiveDialogShow$L.4 2&Summary StatisticsSummariseDialogShow$L.4 2 &One-Sample tOneTtestDialogShowP$L.4 2 &Two-Sample tTwoTtestDialogShow$L.4 2One-Sample &ProportionOneProportionDialogShow$L.4 2Two-Sample P&roportionTwoProportionDialogShow$L.4 2&HelpStatisticsHelpP$L.4 0.(i Remove menu if it exists Ignore errors J . :%<%>B@Zo@   b Add an item to a menu] Nl \!>%B.d ^ d(@ `G ` d(fj P d(P d.LixY====================== Action routines ==================================================dA@jo8 Show the UnStack dialogA@n pB@rox Show the UnStack dialogA@n vB@roh Show the Stack dialogA@n zB@ro  Show the Stack dialogA@n ~B@ro8A@jox Show the XYStack dialogA@n B@rop Show the XYStack dialogA@n B@ro( Show the Boxplot dialogA@n B@ro8 Show the QQplot dialogA@n B@rox! Show the Density estimate dialogA@n B@roH,A@jo(' Show the Descriptive Statistics dialogA@n B@ro 8 Show the Summarise dialogA@n B@ro x" Show the Two-sample T-test dialogA@n B@ro8 " Show the Two-sample T-test dialogA@n B@ro & Show the One-sample Proportion dialogA@n B@ro 8& Show the Two-sample Proportion dialogA@n B@ro8 xA@jo & Show the Two-sample Proportion dialogA@n B@ro A@jo 8A@jo xA@oh  T$R!V\ Ao0 A@jo 8 A@ B@ro x & Show the Two-sample Proportion dialog B@ro  ]  * If unregistered, display the about screen B@r'k o  $This facility is not yet implementedA@o Attribute VB_Name = "modMain" ' Module HDPSSC statistical extensions to@ ExcelRCopyright 2002: SjServices Centre, The University of ReadingLWrith by Howard Grubb, Colin ayer 0 Optplicit ' declare all variables*Dim WorksheetMenu As Object Char H =ort andop routinq=PubO Sub Auto_Open() XRun eacPh titadd-sis oedSet b= BuildSԁi("q qBar"48 B E7ub0Close"1cA 1RemoveD, , )'j6vh@kgk>rivaFunctA \ByVB£\Str)ɗazAdd w@> FmAitsitem@ BzA AI   ubXInseprtPonAIntegiD ja L1)XU case @pex' Look for corrm placei"Ag!= 0j1"F EgfIn Apon.Comm,`s(3 ol`IfcbDa*.Ca&Window"!nvemember pe)c-'8bbe 7$( .jaoIfCAj + NB%'  ul@A[aO if "nort 6unv#F= j - 2"W%W=1)f1.1d( _,Type:=msoCo5Popup,d B(:= emporary: =TrueSC?aC:D "?' Only include@>iTrLbT4p^y q N~tD|# #ood PraPgR@GuidesGpe8x8)??"&ŝlAbp@PXU$ $$ѐӏ ema0R(9B^ C'C2 q 2> 65?Rq;`H:ManaganA9 x@ipul% |olOUn0ckQA;L%(&Two-Way2;D 2f uI"5QDWTO+#GraphicӄO&&VisualisnqgX-Y &Scar Plota lXY6m X&C`gory-Юueumna///"Boxp߄ OS u3qNormProbabilQQQDuEmA0estOrG?Y?Y"&%(U%'荀' #tem(SSCMenu, "&Analysis", IType:=msoControlPopup) Set SubR@ = Add(Descriptive Statistic"2Dialog Show"-_Su`mmary [ise8YOne-Sample t"Ttest), BeginGroup:=True-_Two 2 2,)[&Proportion`7,P& @?Help,NjDS[FBuildijD End Funct@C Privatub Remove (ByVal ExcelA As@ring%Cb' m if it exsDOn Error sume Next 'Ignore e ApplicAon.Con@dBars()KsCaon).Delete75:KyE4ObjectXxNaf, _wb vOb%C&Aۂ+ /"7 aButto>n` E Faplse)A9b'a# an 8em pto ab:bDim MB&a"[(=F6.(H.D:A#0B If *<> "" Then.On- @A`f '=tines Wuba X@ DataE`^y~(&GetA 100Aaz^dUnck'$' ! the D d@HChe ckReg"dl:g.Wa yknstack ~F"o"tP LookupN CubP[ ManageVcr p 2 'X~Y   $? X`YPlotg ?c+Column__( (Boxp og$7pd <QQ?/$6QQb DeF8=sity im~?;#GraphOICI3((߮Ю h(h/ts wF OO-sT-A U,O$K$Ue_o EߏogOCGC|P}+S55455ᰂArea   _qQ/ - G@Iral bbGoodP$racelp=2 UTu8tor`A,No`tYetIqsedEvub TutorialPDF() Call apiLaunchFile(AddIns(SSCStatName).Path & "\" 2 En d SubPublic About4uGetHelp 10309=regCheckRegistrationNumberKdlgp.Show] .a'  the Two-sample @Propor3 dog+6 #:rivate?]gl! ed As BooleanIf (Not {) A$) The'!R' unLered,2splay;ah scre R*= TrueBy}IfDE =0YetITment ed@MsgBox "This facility n@=yet i "  N :h    "  2  6 tX 8pJJ  "  X  2`   ('  " &  &  H @X)  @   ( " 0 *8  &h   "  ,   "  ,  ,8 h x  "  ,  ,    "t(1Jy).Yvy).Yvdy).Yvy).YvxME@SPSSS<0+ Get the ids of the selected column factors $ '2 2@ 2  @A>k Set unstack options G 6 B '6j G 6 D '6j  6 F '6  6 H '6kk/ Unstack according to the specified parameters.3 Save the values of certain controls for next time.               A@P Get rid of this dialog A@ro@8  < @ 4 . ! 66 L N .!N AJ ٷAttribute VB_Name = "dlgUnStack"D Bas0{14A2721B-BEB4-11D7-B659-0004768@BFDFA}J1 E4J dGlobalSpaco False Cr@eatablPredeclaDIdTru BE`xpose0TemplateDerivCus tomizD' Form s ' Copyright @2002: tistical Services Centre, The Un=rsity of Reading%Written by Howard Grubb, Martyn@ Byng,8lin ayerOption | licit Const DefaultSheet ŁU Dim NoOfVars As InhtegPGI Sub User>_activ@() '9t up d@n @fa box with curr>B Up eColumnA%@s cmnD@A#@Resct outpu8s if prote"@<@Aforc@#Initi@aliseO Range refA, optGNewBEBookore ceHrta@conols to their@ evious valuers ut, @^tFr ZSav}chkA9, F?%FVorBC, _B4 Sort)By CIgn MissJ(C " $lstCiaa$, By xEndCME;(ByVal %<MS;ngH' 'ets @7=fEcCs, a @'/@gBin 1ap1@priaT/comboAO2S ns fromA9 newlSPCall`ies~(e%gL?PutZhoL`a &'B:By, y5:=c@@6-H _Ch]s' E*has j` Od/memberord selclSet:SOBunrtnu itemsB9disOK is nonw= N1 ed(( 0btnOK.En"(f> 0CIfǚ> 1n)CB^AIC@~uc$h@uw.[u6cIffy7By6CH f_7Re_7!< ^G_Cdk%Make sHqTOisiz Ycheckeh%HfraJ.V4= (d A<23%J Ex6-pN B]T .betchPC' t= bp^R@BjEla`bel v txtWorkVH lbl/R&_ U, ` asz  1   =  okO3:  c  2 $7'2& in4, m[cannot b~^s(?5t5crk Row(0 To 0) 'a rowDV{AC2i`KПd `VжP$ = H2(/?=ϕ |+, BA9,8 oIs0thljppecifi`n gay6d. 0 '1P[ ex+ ory messaе.al`dly8pW}.008b&gpfr' .iEnd If' Uaccording to the specifi@ed parters.Cal lS(Vars, colfa@c, RowX, DestinapyData.Value,:=, _-mIgnoreMissG:=, F KMaxZ:=257 -I*.)B"QaveBBv,s oertain;ntrols for nex@t timeCGutSCoDWJBƪC.-@,Å C?JFOK@Ra ngf@NewBookSheet, lstz0iabl@ ByEIG@ridGthis dialogUnloa0d MeBv Sub  N ,h    "  "   '0+@ (P (` ",p,(,,(, B(,p  t 6  ) @ 8 H Xh p "x   "  "  N "()P` x " * )  " 6  " )  "  ,(  ,X    "  ,  ,  ( 8 " @ *H  Px    "    "  &  @ P "X "`  ,&& 09H`&x&7  .  R{ 6p    "D. @ 0 8 !!!M?1$y).Yvy).Yvny).Yvy).YvxMESPSSS<<0<<<< <$<(<,<0<4<8<<<@bv2hd @` @P @@ h0 :R, @( @$ @ @ ( PtPr0  @ @ @ @  p @ @ @ @ `x @(  @l (@\ P@L p&t '<#N/A " "@0fX( @ H%X( @ p2 24 x @ 0 @ @ @ @x @h @X T @D X@ @0 @  @ 8E HEH@( X ,, @ H P X ` h p x             (  8  H  X  h Lx 8     %8  X h  p x  H     . @ P  h       "Ng0X&Nd0(  80 H%h   "H  >  Lc(  Nx   X Form dlgXYPlotG Copyright 2002: Statistical Services Centre, The University of Reading& Written by Howard Grubb, Colin Grayer`]Colour Gradation t] ]] ](o Initialise the lists A A@ ` \B@^ \A@ bA@ fData Points only hAd f Lines only jAd  fLines and Data Points lAd f Curves only nAd fCurves and Data Points pAd< Call AddChartTypeToList(cboChartType, "Bubble", xlBubble) f R hAd f(r    A@ t    f b \  v xA@ z!|9 Workbook is shared - must create chart on a new workbook ( ( (ko  ~ dC@^ 5 +Xq8o0H Check that the number of selected items in the lstYvar box is non-zero, If so enable the OK button b$ 'V V  (o \!r'T1...n selectedd@ \$ 'Tk(o @ v! (o $ '2o& Existing Range option has been chosen% Make book name box and label visible ( (oP% New Worksheet option has been chosen% Make book name box and label visible ( (o@$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@jo Cancel button has been clicked A@ro OK button has been clicked]@]x]]] T8 VX& Get the ids of the selected variables \ A> b A>x v 2 2  A>kp f!d Data Points' Find the output range $   : XYPlot$.. .G|j       . ! f!d R  xA t    f b \  v xA@P A@ro@ %+9 Plot series on a graph from stacked data (for filtering)]`]]]]]]](]@]X]p]]] Dim ByColour As Boolean]] ]@ ]&t '<x ]#N/A  Find the output range .. 'T 'V '2 2 F Factor(s) specified. Get their names and set ByColour appropriately.1 NB ByColour doesn't make sense without a factor.  2 G ,'j  $$' d'k B Do not use factor to unstack, but carry the factor values across.  $+d( Unstack using the factor, but no carry. 2  2 $ +  kX V' T  An X column is specified.$$' Unstack the Xdata by factor %  %$0. %  %$0.kh  %.         !N $J '2 set up string of Y column names, comma separated.  V  G ,'j  $$'  Choose default chart type f!rG f(rj Hide the data !!( Produce the chart f!r$X        A G Replace temporary small number with #N/A to get rid of spurious points !.   B@o         !N $J ';Attribute VB_Name = "dlgXYPlot" " Bas0{14A27223-BEB4-11D7-B659-0004768B FDFA}J1EEJ dGlobaBlSpacoFalse Cre atablPr@edeclaI"dTru BEx0pose0TempBlateDerivCustomizD ' Form  ' Copyright 2002: Statistical Services Centre, @The UnArsity of Reading%Written by Howard Grubb,2linayerOption zlicit Const strByColou rJ"DGrad @%ong Dim NoOfFactors As Integ(XVaTYRChartTypeL>(0 To 6b)J P_a Sub chkT@rend_C0k()A0End User^_+ ivC '-itialitVts 0CallBs(cmnDAPutFumn ?o.box lstBy, G:=Ú@ Xvar.AddItem DummyAc V0VTB((cbo, "A5 Points only", xlXYScaIrc_ p@Sp"Lin UNoMarkers_ %AC a:KB CurvSmooth?BT( Z `'A**BwleBC_/Gy:).aIn(dex~0HIncOutputRange refa, opC"NewSheetBookG eretrols SavG a +._" )@@k_,aoaepIf Act Workb.MultiAEd@ngAne ' ` is s ,- m ce@h a new| w %#.Valu!& .EnЀ+RAIf B$2, I]By TextYSngÿsCodeH]," With 6RqEVK7+Count - 1)P+d1#X_` -!aA 20yheck that@e n umbervsePlecti \sF 0ubcstY _!non-zero,&so FeOK `to%t+s@ NST(-3?btnOK(> 03 1r  `K@ 0#}= 01'1...n 5EҙI C +  By By.Visib?#6hMA Ʌ= o By< 'QE3TPhas be ch!r' Make %ok na%elabel vtxtIшLJbl/& G, `QsQ_`  V  T %l $   X ^P  in4, sinaacannot`td_meXO?0tCHelp'bGetQ Me.q`]IDCa lBut@L<N -qeUnloadpٻRO,S1ȽJ(Zs?k#l,ea Din>T 0Re1 vQDS a' 0rcid@fEW pgi!i9iInudqV, o!s6, նYvars) ReDim Factor(@0 To 0If chkBy And NoOfAs <> h|en~\JCall ItemsInBox(l`stBy,y%E iIfVMarkers = (InStr(cboChartType.Text, "Data Points")m!C' FiQthe output@ rangeSet Desti@nation3OR(optNewBook, !Shee9tx@tWorksName, _'o1ref-ZXYPlot"U CIsthing T Exit Sub2NXYBySeries(, XV, ,n,Copy.Valu .ByCol`our:=YFs4trE)K1&Ld bQYq[0_?^^hD Choo Zdefault@ tPListIndex- 0"B' Hide^a?2-urtReg.Entir!G.HiHdden = True @' Produce the chart\Call MakeCH(TypeLi@st(cbo ."Index), XColumns, Y_ XName%-FactorBy:our:=  , CMarkers:=,endline:h=Tr )~'@ Replauemporary smtnumber with #N/A to get rid of spurious point s&SXDestinatio! .CurAtReg DS?BN?, NA End Sub functions for alternative forms of regression including:* PowerTrans - Box Cox power transformation+ ZSlope - regression through the origin# RIntercept - intercept of res line RSlope - slope of res line/ Written by Howard Grubb, October/November 1998< Department of Applied Statistics, The University of Reading http://www.rdg.ac.uk/~snsgrubb$ this is default (arrays start at 0)]7 Nrow = x.Rows.Count ' need to consider input as array Ncol = x.Columns.Count   A $Gzj   output is same size as input ) straightforward (natural) log (of array)   8   8$ :%  8 + 8 d/ a power - note no checking for range of lambda   8   8$     8 + 8 k 'i1 Compute slope of line y=bx (i.e. through origin)  :%  :%'  :%  :%'0 each bit works separately and returns an array," hence need array operations below   :% :%'" above is array version of Num/Deni9 Compute intercept (a) of (3 point) resistant line y=a+bx  $'$' want first element of array4By default arrays start at 0 (use Option Base 1 o/w)i5 Compute slope (b) of (3 point) resistant line y=a+bx  $'$' want second element of array??i(@ why can't we use Application.Offset(x,start,0,finish-start,1)??    @]H    $   +  'D PartArray = Application.Offset(x, start, 0, start + finish - 1, 1)i`4 find the median of part of an array x(start:finish)    ]     $    +   :%'i08( Compute (3 point) resistant line y=a+bxD use RSlope and RIntercept to extract slope and intercept components] ]X  :%'  + " how many in first and last groups $  +  how many in middle group$ +  how many in end group+   where to start first group$ $  +  where to start second group$ $  +  where to start third group   $  $  $   $ +  $  $  $   $ +    :%'   :%' + why start at 0?? + '; note that returned value is an array of two (3??) elementsi`A fit a resistant line y=a+bx and return the fitted value at new_x  $'* this function returns parameters as array$$  'i? Converts a range or array parameter into a 2-dimensional array < C ?"1xME(<<< <p `@ I `sGi`p`8`E`  `H I hI  ` I I  `H I h$I rt a `` I er ii = xiA( ` 8` I of aiiH5M ` ena `x I I @ T@  Ping 8e bop   cho `@ I `optiI I MI invi `i !(i  Cid@ 0`0%x   N p Z 0 2  *X & 6 B &0 X,` B   > 0:H>2 0 @8P<   ( B 0 88 p  6 (  (0X B ` @h0 :0 B 8 <@4 B  F(H Ph  J B  : @ ` h     B  . J &X &  F @ 0H 0x B B 8 :P :    & 8 JH  B  H B  8X " ` Fh   H"(0X*h .   48 8p   Module Stats_Functionss\G Copyright 2002: Statistical Services Centre, The University of Reading Written by Howard GrubbT This module contains a few$ A Parameter is either a range or an array (possibly 1-dimensional)In case we have an array !'Convert range to array '" In case of a 1-dimensional array 'dP( Parameter is not an array - return null'k|" $`  - Copy from 1-D array into temporary 2-D array1(NB Redim Preserve won't change no of dimensions) $ +$  $' o<Attribute VB_Name = "stats_functions" ' Module JShFh 6Copyright@ 2002:Histical Services Centre, The University of ReadingKWritten by Howard GrubbThis mcontains a few  for alternatfmsgregress incl ut:_PowerTra&- BPox Cp t (m%onZSlope - )throuPgh tooiRInDcepxt -:zE Pline)R)s/, October/Novem 1998)Departm}Applie ds' http://www.rdg.ac.uk/~snsgAc' Op Base 0 '@>@gdefault (arrays rt at 0)qPubPlic Ő G_(@x, ByV@Lambda As( Do e `Dim iTg er, jJNrDow col ( AF  = x.Rows.Count/neGto siderkpu-@1CAAColumn Call Make2DA c3, N 0 If IsNull(x)n ExitBRe9hRes@P((o,ut$@Xssize as)@Z(N=Z'_r.a@(ural) log N(M4# Fgiက1 To%! ]j@ x i@\12- 1) bNcg.Ln((x(i) Next jb2iaElIa p- non2pheck|rge[l"E=  ^ D*N/ vnd@= =$ Ee_a(y, x@%'`m>e Ƃ y=bx (i.e.n+Num/MMI)2pose(y)gc l= x' each b Ywork~Aately a return "M,AihenceV bn rbEs belowA,dKQ@,+Inae(DenL' a:b` e "on{F/1Ƿ2i&(a) (3`Vՠ)sa5a+bxf$AL `h=Q(0)awfirst eleB(By ŭB1 (u`i1 o/w D}Ph/3((bn&&'oC' se%Xd??Priv`&doW`g dbFinishaPhy can't we /Offset\Bl,0,f2-\1)a PA[xw(D-v+Pk115K 0W qUAUPTP {GSPE ?5 Y i# 0,z+ S\1Pn"Median/#  `dPKe ^m3qa$B x( :# q#O"O Fm Ohrt(F (~i2i9( 0ol*}?7^Dt2^D'*3UuractbGJcompons%, n l(3\ns`EmxmybK(2!n”Ѝl(r7((nQs/ 3AMhmxanyP'M l*a@Nglp2 nl n)2 * bBmidd`B4=in Vehs 1!Vhere 2' 27+w[tKisQ b`Fthird V*3 i'6ispADy+HysPdH.Skw2(m@m aUr͋v#m=WST= R 43 s`thvpalue"Dtwo (3??)Ee%?:?:1:Fitcbp0ew_|a1zOoNtf nA s @ s QQgs$ + 3Sub Make2DArray(Data As Variant, Nrow@Intege"r@col@) ' Converts a range or a parameter into>2-dimensionalHDIf Is) Then fPLs ei,thV qnt(possibly 1 mIOn ErrResum@e Next 'In case we have a(A= .Value~'~t~= UBound, 1FGoTo ǁ+Fofd[N /2/EHlseB' noto - return null D;NEnd IfBExit Sub -:BReDim temp(1 4/?; @ BA@oHXFirst ~B@^ retSecond ~B@^ray Third ~B@^ F ~(roR Variable list has just changed, so check whether the OK button should be enabled. $ '   (oP  B! &( B! .( B! J(o` 2 4( 2 *( *! *(rA@Nko 6 8( 6 ,( ,! ,(rA@RkXoP] ]8 *!r'V ,!r VG T ,(rj .!r VG T .(rj V'ToP]] ,!r'V *!r VG T *(rj .!r VG T .(rj V'To`]] .!r'V ,!r VG T ,(rj *!r VG T *(rj V'To0& Existing Range option has been chosen% Make book name box and label visible ( (oXp% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@jo0 Cancel button just been clicked A@rop OK button has been clicked]]]]0 Find the output range   : Stack$.^ ^G|j& Get the ids of the selected variables <  <A> &$ '`* Get the ids of any selected carry factors `d & dA> Set up order of columns *!r+b ,!r+b .!r+b* Call the Stack routine to do the business  < d ^  2 4 6 8 : < > @ bbAf     0      & 2 4 6 8 * , . : < > @ BA@P A@roMAttribute VB_Name = "dlgStack"  Bas|0{14A2721F-BEB4-11D7-B659-0004768BFDFA}J1ECJ dGlobal!SpacoFalse CreatablPre declaIdTru BExpose0TemplateDerivCustoHmizD ' Form  ' Copyright 2002: tistical Services Centre, The UnBrsity of Reading%Written by Martyn Byng,1lin GrayerOption z licit Dim NoOfVars As InhtegC P@=@? Sub User1_activ@()A '@+@t up t(l@0 boxes B Call@itrs(cmnD@lAm@PutColumn oL lst@$iTBZ Car ry, F&or:=yBFillOrderBo`x cbo!, 0, 1Row, 2@Initia@@eOutputRange ref0, opBNe@wSheetBXookereCoolsA ckSavchk0_ :HV,YO Rck txt4, ee$C- J.0e)oMatch"Omi%@ `Trai[\k! EndWUiY)B(BA^Combo`, gVaVdexa]@.AddItem "First``/SecondThir]In =d(7_ChKp?' e "phas j@5d, so`eck wheuruOK t should be enand.c)ƃ= NumberSelected((zbtnOK.EcE@(f> 0C 8_Cka ;.Visi}%.@5a` IlbÁ NfclSe &bkIftʖ`n  J,GadIf _ C;/s? k( j 1 1y).Yvy).Yvly).Yvy).YvxMEPSPSSS 4/ta >/OvOOBEOP&'P` Pwbe\chZb 'keok nAaalabel vmPdWorkb0LUPl/د p, ` as  a     okOpے=    2 3in4ДinPnewcan(notѓrmed_men o%7TTHelFp'bGetQ Me.qextIDSub btnCancel_Click() '  button just been cedUnload Me End PrivateOK ' OKhasUZDim i As Integer, k1 jun 3OutRange,NoOfCar0riesIrder(0 To 2)  ' Firthe output r5 Set ==@(optNew@Book, Sheet, tx@tWorksName, ref, "Stac$k"If-Is Nothing ThExit7SGFRid s of selected variables ReZVars<(1>IAN@Call ItemsInBox(lst B, B  Y= NumbernS `yĘ 'B +any +cky facto~r ,kH!-B,9@rr!!pup oMcolumnOÆ) = cboBData.ListInXdexC 1I FB. GRow OD%]o rine to doubuss)B -B (d9,, _@chkCopy!,  SReVCl Match 8Omi\Tr8ail@W@A*:=b&AutSaveControls ! i@jflm VA E +EE(H'?2!hk(ng#"db: B*  D  B  L8 X    :HPX.S`  '    @ X Th $  B'Pp x  "  *  B  B "8  ` " "   $  (0 4X " 0    ,0 6`   %7  0 0 8 &_H p B x d(lx41xME <0< <<<$<<<<<(<,<0<4<8<<<(+j`@@## il `inIp @`tb`v``x^ j`00I| X strinI~ Helim+ `@##6)( age%%`t`pe en+`@` Y) %%`tg sp @`@  di vg iiter`jthe ` +P`@i n thii`nj`d+`,@i %`p+P`L i  pH%+ ` iHPP@ h %xx ssc-stat.hlp`t`pPP@ `tH`p`th`t`l`p  `l PP@ `t`p`l`t`l`p`lPP@ `t`p`l`t`p `l  8P@ `t`p`l` (` `p `l 8 8(( x8 T 8 `lt@ ` 0@pd  D `lt @pd p 4  $ @ @ p 8 @ p `lt  @pd  8  `lt @pd   xH @d  ` @P @L (@H/ `lt @pd @(8 @( `lt@pd   8 L  @ @ ` H xX`lt@8@pd  L @< xX, @ @ @ @ @0p  xhP x P`x (`@l `pt\ @L @H``8 @( @ @ `tXh @ @@ @ HH (X@Hl `t @pX H @8 ( @   @ @ /  P 0  N :h  <6'4  Q  B  J X 0`    :    2  X !h H  "5 > 0H .>x  4        0  @ P X " ` 2h  :  , ( 0 B8 P X  ` p : & 2   8@ x 6Z  B   <( *h  6!    B   : 8 @!HX` hp x B   T  H Module modUtilityG Copyright 2002: Statistical Services Centre, The University of Reading3 Written by Howard Grubb, Martyn Byng, Colin Grayer PH============================================================== Miscellaneous procedures  rF Returns the trimmed string starting at pos and delimited by DelimiterQ Changes Pos to point to the position after the delimiter, or 0 if end of message]]] n4 Already at the end of the text. Return null string.(rj'jzk n l l n$$zb Ignore leading spaces n 'nj8 l n$'l(rj StartPos = Pos l p'vg v has: Delimiter not found - return the remainder of the message l'xN Pos points to end of message so that subsequent call returns an empty string.% M'nd0 Return the delimited message v 'x< Pos points after the delimiter ready to get the next field. n v p  'nk l x$'jih   T$R!V\ ~ | :Bo; Returns a range containing all data contained in a column, starting at the given cell. Dim EndOfData As Range Dim NewEndOfData As Range Dim NewEndValue As String On Error Resume Next Set NewEndOfData = Start(1) Do" Set EndOfData = NewEndOfData. Set NewEndOfData = EndOfData.End(xlDown) If Err.Number = 0 Then) NewEndValue = NewEndOfData.Value Else NewEndValue = "" End If% Loop Until NewEndOfData.Value = ""0 Set AllDataInColumn = Range(Start, EndOfData)]] !55!  'q(* For i = MaxRow To Start.Row + 1 Step -1* If Start(i).Value = "" Then Exit For Next i$ $$0$.i ]  !! $!Gyj $ $$0.iC Returns the format needed to display number to specified sig figs.]( $Gzj0e.g. if it is an error 'Make it positive   4 SigFigs out of reasonable range, use default format'  e, Number is an integer, so display as integer0'    eA All sig figs are to left of decimal point, so display as integer0'    e8 Number is very small, display in scientific format with) specified no of sig figs in the mantissa0.0  #$\E+00'dP- Calculate how many decimal places to include0.0'      Gyj #' ki@, Give standard error message if error occurs !/Tried to write outside the worksheet boundariesA@dError !:  !A@ko ] ]8 Pos = 1 Do3 Field = NextField(ThisString, Pos, Oldstring) If Field = "" Then Exit Do+ ReplaceString = ReplaceString & Field If Pos <> 0 Then2 ReplaceString = ReplaceString & NewString End If Loop_X  'n nGxj  n $   n  $' 'iP5 Returns range referred to by the given defined name.# Returns Null if it does not exist.]X  %!' $0.z( .i4 Checks whether the supplied range address is valid.]0 $0.'z'iPM Converts a number in local decimal format to standard decimal format (23.45) X$'i $$ Gyj/Modified by CJG 17/2/03Attribute VB_Name = "modUtility" ' ModuHle T XCopyright 2002: Statistical Services Centre, The Univers of ReadingKWritten by Howard Grubb, Martyn Byng, Colinayer7Option Expl@icit Priva)=9wMiscellaneous procedures/PubA FuncINextField(ByVMess@age Asr{, _ ByRef PosInteger~69Del@imiterv`bTab)?gReturns tfmmed s9ng]@) at p and :ddiChangzA+to pint @iyBDafA"3or 0 if e;mCIFCDi2mrtBEnd`L@@]P CIW= @nAAd' Alr@y?A,'tv.AN nullL.7~]"yExitF / IfDo Whiс3<= .(nQHMid,A, 1)Space(1)C ' Ignore l s@!A"=+ 1 Loop#T= ~'|c1bD0= InStrgDwd.F0!j. not fou@- rTbTremaindY@Ea1E_>''poT^oN so @^subseq*u@ ls an emptyo>*0!lseimbh$-4N#iadyngeˠo`zn@U fS? +BM5 SZLeft<.9< ASub GetHel$p(̔CoxttId`Y1XA Fe= SSCR b%Ca sApon."Add0Ins().Path & "\" Aͤ AllDataInumn(bdaRᢢ"bB&'I r c [­d@ e Ual ,st`gn a3=a !1OfagNewk.uXkOPwrr[Resu@!~S' J!DDoP7= yJ 6.(xlDownpJ + Err.NumboFp [.BE<l@pґ p2T @.1aq#"#$,aU(qMaxRowALo!di)"Wi-A@veSheet.Used(= .E!+bs.CWt@ Fpi YToz1ep -eQp_"1x(i)H`Aqoa$ i B/n!emoveTDra ngBks(x&,# (# )) IVy9(My `=b !&5N2'Is@+os)' i0]BCJG 17/2/03b <> ""װqR_s1J/%_o } BPܰSigF o`rmat(t9Variant/RaNf needpQdispplay`>specsigogsQV*N0Is eric4  'e.g.A+i3P = AbsF'Make vふs < 1 Or > 8RbAout0sonab0Ad, usepfaulC`) PtMIf f $Eas d/ R0;> 10 ^ (Ec0R  al!dm",6>A  -9] 0cPl, P{slci(c wXg *no &.m1iP 4.0!S2, "#")1E+0HБculhow many decimal places to include SigFormat = "0.0"l`For i(Fs - 2 To -9 Step -1PIf Number > 10 ^8Then Exit H* r & "#@Next i9E nd If  Function Public Sub FlagError()' Give stand ard e message ifoccursW/f".h=h04 gMsgBox "Triedwrite outside the worksheet bDou>iesmEls$Z " ,& <: DescripzAGH ReString(ByBVThis As@s, _E7@COldsB1NewM)B Dim PosAInteger Field '@+ jDoC = (?,, 3@ ""B~CU@& !A(<> 0D]LF~LoopG=@BIn- #=D= Left'`1)V:& Mid+n(sF- "V~\FindNamedRange\gELb 'cturns rA refyby"xg@n@finn .LNull`donot existDYpAddr`W,O`Go`No #e= A veJSa.as().RAsT>S aR!$ c. 4 :Noth1 i 1Efb1Boolea `' Checks wher/suppl#4a(is validl,r+;b+Ingar$gTru' C(jFa'D΅XK'#B 'onverts a nin locp^f}p(23.45#"r0DCDbl( )He8  0@HPX`hpx (0h/8@HPX`hp* x  8     0H`x 8p/P  X %x  F   ("R0 X h  6p& .. v1xME@ <0 `"8`$X4 8 X p%@68 @Lh X @Lh ` N @Lh @NX @H  @68 0@Lh @Lh @NX @(H 0 @68 @H( @NX @(H @68 [ @H( @Lh @NX @(H @68 @H( @Lh @NX @(H @68 @H( @Lh @NX @(H @68 @H( @Lh @NX @(H @68 @H( @Lh @NX @(H @ @68 @H( @Lh @@NX @(H @68 @H( @(( @  @NX @H @68 @(( @  @Lh @NX @H @68 @(( @). i0 (i HIL$ p IN4  ID  I6T  Id I t 0I  @ P (@Lh (@NX @H @68 @(( @ h @Lh (@NX @H @68 @(( @  @Lh (@NX @H @68 @(( @  @Lh @NX @H @68 @(( @  @Lh @NX @H @@68 p@(( X@  @Lh @NX @H @68 (@(( @ 8 @Lh (@NX @H @68 @(( @  @Lh @NX @H P@68 @(( @ p  @Lh @NX @H @68 @(( @  (@Lh (@NX @H @68 @(( @  @Lh (@NX @H @68 @(( @ @ @Lh @NX `xH@x 0@0 H @0`xH@x 0@0 H @0`xH@x 0@0 H @0`xH@x 0@0 H @0`xH@x 0@0 H @0(0@H (@68 @(( @  @Lh (@NX @H @68 @(( @  @Lh (@NX @H @68 @(( @ 0  @x80 +X@(( @ (  @NX (@H @68 @(( @  @Lh @NX X@H @68 @(( @  DFH*,.  @ ( p468 <:` @0H: 0 @ [p @ @ @ @ ^`x(@`0@00`H`)@  d(0  H dX  (p k O @ k`  p  !p!( @ (!}8! P!}@`!x (x!!t !!p ! " "@VXZ"(` @\ 0"@"X p""(H @@8 ""4 ""0 @"", # #( 8#H#$ ##@ # @ ## ##$ /$`X$ h$@ P& @ $$/ $$$`$$ %!% 0%!@% X%%h% %(% %(% %/% %/&6& 0&; P& @&;&B& @ @x @h @X H 'r)D '~()~`x(@x0@00H!h" &H"&`x(@x0@00H!h" &H"&`x(@x0@00H!h" &H"&*@ P)`)< x))8 )))4 ))0 )* *, 8*H*( `*p*$ **  **p'* + + + * 0  N :h   BlL&0*  $!0 @P!X ,p ,    ! < 1H 0`   @,P'  $ " 4 0 8,_P   @    2  X h  p   F .     8(  H P X  `  p 6 d HH( :( ( ' J' *^4***8('  0 @ )H 2h  6     F P X (3p Hd   2  0 @ H "P ,x   .      : N@ @  F 6   "XBu  " *(Xp*lx(O   4@( @ 4H  " 6' , *&0H  P 2X   4 RY` h >x >DO@H`h p x &   HH) :) )) L & &8(  + *)(   0 8)P (h 0  , 9 :  @P  X Nh 0       ( 0 >@:  JPFh  : B * PEp D!E!:!  $0 XD`xD( ! 9!&V  ( 8 <H  !9! ! $ (*8h:p  /@/:   Q @&y(P 2X &!&y  6!*($&yX!  6!*$&y! (08 P:p    F 4 + `X+ R+ .0 ` 8 T(, 8,,8, , B ! ! (!8!@! H! X! <p- ,8X- , T- R.  `! h!C@- h. ,. . &..m/ ..`. ! /  -.0/ ! / !!  ! R! F" <P" B" "  " D" # (# 0##@# X#  `# &h#9# # # 7# # (#$ $ ,0$7`$$$ $ &$#$7$%%% % ((%;P%h%8' x% % &%9% % % P% 0&@& >H&=`&p&  x& %&  .&&& && & / Module modUnstackG Copyright 2002: Statistical Services Centre, The University of Reading3 Written by Howard Grubb, Martyn Byng, Colin GrayerPH]H]`]x]]]]]]] ]8]P]h]]]](]@]`]]]]]]](]@]`]x]]]]]]]0]H]`]x]]]]]](]@]X]p]]]]]]&82 Get the number of factors and number of variables <' '2 ' Handle unstack options 6$( 6 B' 6 B' 6 D'  6 F' 6 H' 6 *' 6 ,' 6 .'  6 0'  6 2' 6 4' 6 6' 6 8'k` switch calculation off < :(:? Select the output range so that subsequent selections work OK. .A>n de 0  X! Set up row factor column headers $$  .,n  '0 Unstacked columns follow the row factor columns  .%. 8  Unsta      "#$%&'5)*+,-./01234!6789:;<=>?@A DEF`HIJKLMNOPQRSTUVWXYZ[\]^_Cabcdefghijklmnopqrstuvwxyz{|}~ck one column at a time 8$<$@' 8$<$' $0. !''  !B % Handle multiple areas in this column !!' !  '  Loop over rows Z  Z$. 6 Ignore hidden rows (i.e. they have been filtered out) !D!GFj ) Cater for possible error value e.g. #N/A !'"  Optionally ignore empty cells L "GFj . Get the factor value combination for this row'  2 Z  $$@$0#!'  NGFjMissing' $e: force the factor number to be prefixed by the factor name' k  , Separate multiple factor values with commas ,'k(  '  @ Look at existing output columns to see whether this combination ( of factor values has already been found'   $H $$H 'y@k8  / This combination has not been encountered yet.] Increment the factor level counter, and add the new combination to the array holding factors  '  + '  %., Set up the column header for the new column 2/ No factors, so simply use the data column name  (d ? Make header in form Dataname:Factor1=Value1,Factor2=Value2,...'n  2  G !, (j ! $$=  n,$j ( d+ Only put the factor value(s) in the header  (kP  Prefix the data column name : ! (kk' New column is empty, so start at row 2 +k 4 If there are no row factors, then put the data intoG the first empty cell in the column corresponding to the current factor $'   %.  +d@ There are some row factors. Insert new value in next free row,0 and handle concatenation of rows after sorting. Get the row factor values.  *J Z  $$@$0#% +  Get the next available row  '$ Insert the row factors into the row    $$0!   .%(d= $   .%(Lk . Point to position of the variable in this row   %.kP . Remember the highest numbered row used so far   G 'j  Insert the data cell value% Directly copy the data into the cell " ( $( " "$ $ (k@ e, Set value to 1 to indicate that it occurred (d - Copy the reference to the data into the cellJ %' $( * =IF(ISNUMBER( ), , $) (Ld( "7 Blank data cell. Use an IF function, to avoid problems7 with references to a blank cell being treated as zero. -=IF( ="", , ) (LdH =  (Lk( k k F Z End of loop over rows  E Point to next set of output columns in case there are more variables  %. 8 . !N .!N '    ! Sort the rows by the row factors 7  7$0.   % Sort by row factors in reverse order  %P. R VT B@ k8  G Concatenate rows with the same row factor combination, where possible. "7  7$0.   P'Start at row 2'  b7 Check if this row has the same row factors as previous 8 '  87  87 Gyj' 8 C Same row factors. Try to concatenate this row with previous ones. 8    87!L' 3 Cell has something in it, so is a duplicate value.; Take appropriate action according to the duplicate option. $ Look for a free cell in this column Z 8$  Z 87!> Copy the value into the free cell and clear the original cell  Z 87(L  8;yk Z Z 8+ 8$  G 8$'j e 87!' Z 8  Z7!'  $ ! Names match   $$X' 8$ Z7!Gyjkh Z Z  6 No suitable column found - create new one if possible Z! Insert new column name  Z; Z'  @pkk Copy the value into column k Z  87!L 8$ Z7(Lk   8; 8$'  8; 8$'up e 8$ 87!9 No value so far for this combination, so insert this one  87 8$ 87(d@, A value already exists for this combination !Overwrite it with current value  87 8$ 87( e!/ Overwrite current value if new value is larger 8$ 87!  87  87 8$ 87(k e!0 Overwrite current value if new value is smaller 8$ 87!  87  87 8$ 87(kpkhk` 8$  Clear the current cell  8;k 8$'kk 8d Row factors do not match.@ Delete any redundant columns of previous row factor combination( i = LastRowUsed + 1 End If2 Blank out the first row factor of redundant rows.; Make this row the first of the new row factor combination. 8    8+ 8 'kP  '8'  t cell ndkqk  L Sort the columns into ascending order. This has to be done after adjusting @ for duplicates since the number of columns and rows may change.  7  7$0.   7  7$0.  '8  %!d' :'n' n  n $'k  Insert column name into 1st key   ,'8k  n $$Z' b" Insert a factor into the sort key ='n n & A factor name is given - strip it off  n $$Z'k ,'n n  Another factor follows this one  n $'$  n $$Z'd8 '$'k " Insert factor value into sort key $ 8  , 8 '8  Insert column name into 3rd key   ,kx  %R %\ %^ `T B@ B@Zk7B@H5!B@bq Turn on calculation d :(:' Return the number of columns generated 'Jz`&XA@iH@ 8 Gxj' Can only sort on max 3 factors(( !GError'"j<Modified by CJG 17/2/03  "Error8Modified by CJG 17/2/03(  kH)C Cannot cope with so many factors - ignore any further combinationsF((B The following If statement checks that the max no of combinations3 will not exceed the number of Excel columns (256).tRegNo Added by CJG 18/3/03@dk !N  y!No point in creating more columns(B The following If statement checks that the max no of combinations3 will not exceed the number of Excel columns (256). Added by CJG 18/3/03me3@2 NoOfColumns = OutputColumns.Column - .Column'0 %+17;AG""+] k+' Too many factor levels found. : "Some factor levels will be ignoredA@`+ 'x,- If LastRowUsed < i - 1 ThenY Range(.Cells(LastRowUsed + 1, 1), .Cells(i - 1, NoOfColumns)).DeleteL NoOfOutputRows = NoOfOutputRows - (i - LastRowUsed - 1) 8y willdN They will be deleted later, but Excel's Delete is very slow so should be done 8   in 8. 8   8;1 at the end rather than in this loop. CJG 4/4/03 Delete redundant cells.in 73 8; 5 Blank out any redundant rows at the end. CJG 4/4/03 N Now concatenate non-redundant rows so that the redundant rows are at the end. K This enables them to be deleted all at once, which is much more efficient.k ) Ignore redundant rows  '   k( Move this non-redundant row up 8  8  87  8;    7  7$0B@Zp(] 6 ' 80 e 8$ 87!  87 8$ 87(01 '/Attribute VB_Name = "modUnStack" ' Modu(le TsT XCopyright 2002: `tistical Services Centre, The University of Re adingKWritten by Howard Grubb, Martyn Byng, ColiBnayer7Option Explicit Priva)Pub" Fu nc2(Vars() As Integer, _ FacDto)RowD:enlKRa ngJByValpyDataeBooleane)AsDB@pIgnor eMiss@v = False!C#SortTlrujDs),)"ax@umn"s*256NonNumericɭBDim iLoAjNBk.NoOfXsEg 8CombiZ1e -l`%No1 ayu#@c J#pThis SH(BtfnL@(1 To >"8,NextFr|eeC AddrestuePrab6CurrCelljO%AOutput(ILo>!ӠLlB9rt!a j$AreaOffsetNNew#! AI?c` "F >/PoL9Foundg䪆.*By9KeyA+H e83""5ow Matchv" B1Has m xLastU seDuplp?m W bM|ax0&plP,_mwunt8Occ3Q O oBQ%1ДialOIncludeQd2? D3&%ЃvalBc *&MGageDisplN..Oprror GoORep zEB' G:tnumb-ePf# a3Wvariablesr_= UBQ6b) Av0(N7s' Hun o"sIf Not IsD()ѯnGw= ( APcmn>)~0c?}!) <> N"!GLFmnq)stNeFNqpMC@!9n24HOmnoMldM_ 2}olNOB/laPlMQin"ST E/Ifb2B' swij HculofAp12.Cal= x@ nual22Select Eo r so0at s@ubsequЏ ss work OK.Bpqx(9RPm #3bJFsSFPQip"R  r 't up row 3Q cy hRH8 .!s(1, iDU'>(Dors(i)) Next iPoOfOutputRows0 = 1X' Unstacked columns follow@ the rf`actor:jS(et Cf= Destination.Offset(0, N{uFCsBFR"j To%Vars oney at a time%ThisRangeNaDmeJGetGAddress()(j+p/-3(8f+ Star.|VCom6b0Each r In a"Area7' Handle @multipa inisK/E `r$s.CountHlc/ - 5 ' Loop ov\er&0k1u@#VDat aCell(kQ@' Ignore hidden (i.e.Ay have be@filtDerout If .Enti$re@".HCThGoexl7 Car p ossibXerrvalue e.g. #N/BA On EB ResuAK$@.V @/@ .NumbX<>\ 0,""+ 'Modifi@Bby CJG 17/2/0>3 BN" ' OpAwally i0empty< c5l8c4Mi#ng And-y"",u: ċCcgc/t@|!@+acni = ""QiQ "1_(!@)(k + f)8 %K #c*#E+Uc d!@Else7s@Keric()B61'A1ce5nCSto q prefixO$:naGIncludeCTruƺf2EJIf.i > :xSeparxGLs withmm K& ",P-_ & 4K/ r[katexrizg SPcs see whze`rdjo f;sYs alhdyZpfdk xo6H?;Is @!UCaseyf )@Lplev el"er, ! addnewf#`# arraPzoldias7W epEq`tcheck (h !max no &a?'p=@1exceI;JE@ s (256)' УLt8/3t= NVAMa:x-s%!' Can cop7Hso many$5sdxBur A.b t MЯageDispxlay Qd MsgBox "4To  und." _@& vbCrLfqJ"SoVwi@beTdRsy> = _ao5s po q+D~ EHo`UG~1NewC(Oٞ '1P' Qup? headf6A  2oL'VdC, P1simp@usdpGa /Ss ц ANp0 4P' Mako`Cpmba :I1=R1,2a2,..HP>o#YrNoOfFact@ors If i > 1 Then NewColumn.V@alue ="&0 ","!GetdName((i)) _X!}=" &xtField(ThisBCombination, PPos,)(N ext iElse' Only put thHe f v( s) in header!`End If Include R' Prefix+data c} nd .e:eT1'E'is empty, so start at row 2NwFreeRowD+o) X(0)SY'iVre ano)n_into0'g first= cellEDlcorrespondi ng to cu9nt `Nox$nSet C C= Outa*s.s(" , qNoOp3+ 1r'0!,some -. InseDnewt'n!f@Ca,' alhleOncate ofAs after`Prt`.~..P 3aUsQFor=o> +N @y%-AddAs ;Range(e߭ H(k + AreaOffset). )ernal:=True=N$4availab`0`&#X P slF`q@!/s@Ae 0(#Lf CopyDADes@F" fi)C7?:DQ X/No , @mula""BuO R A=uG hoOKposi{q6vari ru_ III~Io ' Reme mb> high  nu!ed@ usifa< cЕq?=.j?>k?= 6_]>IQB =(j{)џ*=*K}gNau=RR.*jU\7S^TpLO, SeFl= (Mido i W@3w%'3=kO.O..` k!e ^ `o su""' Noso fa r for@ismbination, insertoneZLSLf¦Z' A0already exist~s2DbPQOverwrit}t with current]%#}% (hMaxg_@@' gj if new+Blarger_ %lo*c* ͟* * _LK <> i3le]cZK@ : /rtONext j -O ' 0actors do not m`atch.DelePany redundaOss of previous rowt)f 'h .<- 1QRange(,+ 1, V10% ,oOfCҙs)).C NoOfOuhtpus - (iP) 0)i ?QBlank ouqye first ps'ykll be dd later, bEx1's D``aoy slshould (' a# e0ra3`7Qanloop. CJG 4/4/03_&$ j_ To!?jO;Q1@' Makec +1Cqfa2Y-/U #@6FRs ? Q)  4# iO g@&= & o L' ({@s  /Ô51`Sa3Np+conc.eMn-2thD+a,<41enablesP#em x5~e, which mupmefficiУA%E25$χJ.G}1)"1DUv' 4KNd#[ `^0O_ 'Q9ov9no\ up58do9`@t& zlls(i, j) Next jpEnd \Ifd,i TIf LastRowUsed < NoOfOutpus Then\' Delete redund@ant ce.)Range(. C( h+ 1,` 1),  ;,CColumnsx)).7.p ^=mWith % Sort ' the cP into ascending order. is has be done after adjust5' for duplicates since numb@ ofFa@}rows m`ay chAY _SetB)_ = a^A[|Factors c@b_#Ѡv j@3kE"Key!|!?&ĮT+ &F[i$1 ToI AjAHeawVaUi).T@ Pos@ InStr(, ":"This^Namre""k`Q> 0Q#5LeftF -@m K^ɀ NoGBycC ' Inse@c` n`1st keyk a%@@)%.!/2q1Trim(Mid[,Do While $<> Ǎ-&a fdc|݁qsaq-= #<=< 9A+s given - strip it ofϾ@?","`1+2,?9A` ' Ano'rfoll!t_ @DQ`Z @? 0 lse> ?FpI+FLLvaluec&/& 2]g4j, i)d4S Q4jU@(j > 3> Ex%1 ' CanHly bon0fx pc sLoopp>D$ bD3rdD0 Dp]DS[>[181:= hs(kщp>2l2r`3 l3t` Orientation:=xl %+ S1).SelecturrReg.En0tire.AutoFiA' Tur calcul lApC'xjl1mcB'p RetQR/gPenerdUpacka %a(FuncA  RepPWError:"Flaga 7 ]]8]P]h]]]]]]](]@]X]p]]]] h](]@]X]p]]]]]]]]0]H]`]x]]]]]]&L Keep track of the sheet holding the original data, as will be moving sheets .7 Get the number of variables, initialise some variables <'' Switch calculation off < :(:? Select the output range so that subsequent selections work OK. .A>6 Work out column labels and setup pointers to them for each variable. 8 X   $<$' :'n n $ No colon. See if there are factors. , =' 'd ''kd 8 Treat the string before the colon as the variable name, % with the factor list after the colon  n $$Z'  n $$Z'k'Z   - Search for the variable in the existing list  $ 'Zyk  Z 1 Variable name was not found in the list - add it  ' 'Z  Z+k/ remember this name in info about this variable Z$ $( Handle list of factors  ! No factors specified or required'dP # Find name and value of each factor'8'n_  n,$j'$ $Gxj 8 '8 $=' ' No factor name specified - use defaultFactor 8' $'dP $  $$Z' $  $$Z'k ! Look for factor name in the list'Z    $ 'Zyk  Z! factor name not in list - add it  ' 'Z  Z+k Z 8 $,l  8 $,n 8 $(2k 3 Work out where output data items start using Order pG'j t  G'j 'k( d'` b$('  '    'd$b'$b  '    'dh  '  ` 'k@$be'$b    '   'd    '  ` 'kd'$b ` '   'dX ` '    'k(k k Set up the column headers   4 Use single variable name as header for stacked data$  .%(dp # Use the name specified by the user r  .%(kk  v  .%(k   $     .%(   ` $d$    .%(  Go to the second cell  .%.  .% % !/1{xME( (8  @ `  Fp  <  8Ph  * (       ( >0 ,p   4 @ X ` h p  8    60 H h (x  *      ( 8 H .X   (   ( @ X ` h  p  (              8  @  :P           ( 0  H  P  h  x                     (  @  P X  `  h                    :(  h  *       (2@ x:   (@  Xx L  ( <@ $ ,  *    (@Xp 4x"  > >(6h       @Hh,    8@PH    8   (8P Xh         .(0 8@ H X Module modStackelG Copyright 2002: Statistical Services Centre, The University of Reading% Written by Martyn Byng, Colin Grayer`X]`reas^0^ hH^ h^p0  &,28>DJ.  .%. Loop over variables  E Get the variable, and the number of rows in the corresponding column $<$@' $0!' Loop over rows   6 Ignore hidden rows (i.e. they have been filtered out)  $0#!D!GFj z  $0#! |GFj # Keep a track of the number of rows  '   Put in the value  $0#' G 'j - Copy the reference to the data into the cellJ  $0#%' 7 Blank data cell. Use an IF function, to avoid problems7 with references to a blank cell being treated as zero.-=IF( ="","", )'dX = 'k@ k8   ,k  $!   ,k  Put in the factors t  $!2  $%n'     $%l , k8  Put in the carries  `   $d$@$0#!   %(d  =J  $d$@$0#%   %(Lk` FH  2 Ignore trailing blanks unless otherwise specified ~       ,k   ,kx `  ,kH  'k(  d :(:' Return the total number of rows output 'fz & A@i Attribute VB_Name = "modStack" ' Module L PCopyright 2 002: \tistical Services Centre, The University of ReadingWritten by Martyn Byng, Colin @Grayer)Option Explicit PrivaA)ConstLxFactorNo6 TyparStr@ucture R {AsbrJ OutputD(1 To() IntegN ValueC<1NoOf0sa &End SM  Pubw Fu ncck(Vars( B, _E Carry%Deqna8pRangp`all@=lpyData4Boolean& B6{Krc.OÀumnu MatchnOOmit."VS'>TraitgBlankBS>OrderYiantj-Y!\Dim `InfoZ Hz!l!2"uc>Zgi ~! da rt,1 H@%C4PoV2ijkVna@!",$04/-This Am 1*'SheeBgObjecL ⑕ad$v3.\Lo nrlow&v tot`,A,"aCellAddresq3"ol`K|m 32hIm 1From/&"xOFLastNonobD:to m6 r" Ronw#` `OPrror GoP~ReportE B ' Ke`ep trp!tE@s#hol eop`inp!, as willT bv "s#SP'#&= A9~veS' Gnumb0@@"iables, initialise so+nsUBoundr)%8= 0' (Swih cu"lӀoffApCB.Cal= xlManualsRelP59R rA 0at subsequ9 sPpork OK.BPqqbS(X 2Wout c.labels aЕsetup poirs to m fop1' each 3@AALReRiF%vpӇ ]=a2Qs(v) q^P= In@>(#, ":"If #0n '<Qon.e iBfre a0fm9s4 l,") <> 0 Or=PIbpĂD9A)s Els#E[")I* ,' TreP'e4sng9e_1Sa; 1o,[ 1h 7tp aft9 'oE Trim(Left!- 1Ggj Mid+k&<'i'/AX+G `2Sear. 6ב exa@(0"E qd(i)'  ix Ex X[ Next Fb O_-BP wVn|otP @$Trim(LeftJ94- 1)VAMid@S EIf%' Loo8k fCGin the lis}LDkBƢ@"#i1 To@YJ  E=TW(i)wSm iBFor9 "B3'Cnot DC - add iOMN\NH%k)@-B(VarInfo(v).OutputCol(jkKbMFbGp(G!&f2v' Work out 0wher dHata .em@tart ving 0Orde?9StackD!Th Bumne?!?@Rs > Z From H^ j CarriUBound(y} IsMiss(kdB!>=Aa`ckORow+h$d h(0!K 1- `cB%?? o y,sT 8y"| QN9er(q j "yOz.(#I{U ,3 n sQ YXC 7"/*YBC(= Wo or(P' Se[pcol`Y hea@\sp.1  X+4&ZO|' USle variab3s"s!cPeDestination.Cells(1,2).bppxD5 GbyBߐ =ev> OO@`rtOxrig9 r 01 + 1&WuPɝNUnBi@1_5s3P= Gets{{' Go t 0secocp%!1p$Range % 2'6o%+`GVyO/H$  p poverf5qvc io n07& o`.8,b1u mbrows1QcorresppaB#1#fAdds(]`sT nr= 2b0).Cw Q r A' Ignoahidd (i.e.ay have2 been filtered o@ut) If Range(ThisVar)(r).EntireRow.Hi$ddThGoTo Next0Omit AndValue <= " N V' Keep a track of the number rows 18totl + 1 NoOfSt0Columns > 0 P' Put inCvju<<> ""8 LastNonBlankaNot CopyDataVWB+refnce todinDpcell@CAddress$(ernal:=True<=< ' @B)'. Use an IF function,2avoid problemL' with AsB bY#ingeatas zer o.T'y"=IF (" & I& ("=", _O( R)"QElseT)pr wtIf.EA. Ds(n, 1)?Db+ BoFromoFactorRlrInfo(v).NamL$QJ}f"K@spFor i!1 %&@2V7(Outputc(i2l#$+ 1 8 UA i;8*carrie%A:C/@/~ay i).,(GetO%bA k`n mula B__  <ӂ|] }:r' IgnordrailqSTs unlAboPzrwiZspecifiedkTr^s3 |G4q} St- ~2_}_!0.sV_C?LenhA:f q&4ϊ(x !=H b#vBApplica{.Calcp0xlAu(tomc' `Retural QX i2ExF ReportError.Flag 7 dlgDescriptiveStats(GHxdlgTwoTtestadlgBoxPlot'yzmodTtest5    "   (('8  2H+++  8++ +0+@+P+` p t 0 !@ P " X ` h  6    "  X( )$)  "  6  "  R )H$)X  "  $G  8 0@P X h x    "  $G EE ( 8 H "P 6X h##  "     "      0 " 8 @ 0` ,    "   "   8  H X " ` "h   P1<X1` 1Zy).Yvy).Yvpy).Yvy).YvxMESPSSS<0<<<<< <$<(<,<0<4<8<<<@&`xh&`Lt&@d &@T (`BDFH(LNPR(XZ\^(pdfhjl(Xpj(@tv((z|~(  ((( *X$(`x`Lt@d @T `x`Lt@d @T )hZ)@8 @( @ * $`x`Lt@d @T +P @ 0* @ @ x* @ @  +@ @ @ @`+ + +X&+@ pX%$#%#@2(x @t 0*8 h @  X) N p  "   " &  ( 8 "@ "H p    @   (   , 90 ,H x &   8 $ 9 ( H &`  p @       4 8 P .%:uP 2X p  $  0  ` p " x :    (0  <8Bx  :  C 8@2X J JXhpxJ>S@PX`\lx00 J(xJ00  :80X :p0    "20 8 @ 0H h ":+   ( #0 @ H 0P p  +*  -  8@ HX`0<h  ' &d  .S('H*X Qp R ,. '  (A@X ` "h 6  I7"@(,4PH        0        0 Form dlgDescriptiveStatsG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayer2h] ,@] ]] ](]P] ]8 ] Set up the list boxes A A@K*\ A@, Put values into the box for proportion type000 Proportion B@^ Percentage B@^Count B@^ft (re 2 Put values into the condition box for proportions< B@^<= B@^> B@^>= B@^= B@^<> B@^ (r}#    A@n   - 9       v                          A@!4c5 GA@jo(  Display the variables box (et2A@dX0 Hide the variables box, and show the factor boxb (Th''vA@kA@ohR Variable list has just changed, so check whether the OK button should be enabled. $ 'n   2  ( if A@o8 v! (oL By list has just changed, so check whether the OK button should be enabled.tring $ '2on   2  (the A@op(]h  2  ' n2 Disable all statistics except CountAll and Blanks  ( S  (va  (ex  (  (  ( (  (Z ( 1 V (me waskPA@o@]  2  '   (is nam   (is var (Z$ ((o ! ( Adjust width of dialogor  !  (dP !  (alk0o(  ('noX  ('$  (Gx  (o refRange.Visible = True) refRange.Text = NextFreeColumn.Address% Make book name box and label visible $ (' ( $o refRange.Visible = Falsee in t refRange.Text = "$A$1" (  (o refRange.Visible = False refRange.Text = "$A$1" ( ('Zo(X !(A@j8o Cancel button just been clicked A@ro OK button has been clickedut dat]0HOrde]`]] Find the output rangej   : DescStat$.. .G|j& Get the ids of the selected variables   & Get the ids of the selected variables <  <A>kX2 Unstack or copy the data to the destination sheet Position data after the table v 2'" Unstack the variables by a factor 2(  A>b  : If no variable specified, assume first factor is variable<H($+< Skd. Simply copy the visible rows of the variablesinglh headek !$X'e spec G 'j Set up the descriptive statsA   - 9       v                          A@P! ` A@roPp3 Sets up the table containing the descriptive stats G]ond ]]]] ]@]X]p]]]]]]6 Insert sufficient columns at front of sheet for table the  .%  .%$0!.   B@ ..  %..Set up headers  .%( '    %!   .%(   $   $$0 !B@B  '   $   $$0 !B@B $ &A@"kX  ( *A@"   .%   .%$0.k  !  'R[ ]C/SUM( ., %)*100'L 0 LA@"kp  !  ' *SUM(R[ ]C2:R[ ]C)/SUM( ., %)*100'L 2 LA@"k G 4 6A@"j G 8 :A@"j  < $   $$0 !B@B > @A@"k8  B $   $$0 !B@B D FA@"k  G H JA@"j G L NA@"j G P R1)A@"j G T VA@"j G X R3)A@"j G Z \A@"j  ^ `A@" b dA@"k  f hA@" j lA@"k G n p0%A@"j 'n_ !d n $j' Gxj $ $$X'  d r d$)'L %  t LA@"k k k  !''n_x !d n $j' Gxj $ v  $ x'L !r Proportion L z'L |' !re Percentage L z ~'L 'd Count 'k`      LA@"k( k !d !d?$ !dA@"kk( Finally, prettify the descriptive table  .%!.. .!B@b  .B@ .%!!( .%!!( %Convert to values and delete the data B@  B !B@d Hide the data !!(kXoP 0 Adds the row containing the specified statistic]] ]   .%(   $$.  L$Z? !$' $=G= 'j   .%  9d 9Lk $(5 $9d 9kq   'ox]P  <   . !  $J' .!N ' 9 CJG 19/3/03 .%!.? CJG 23/7/03Attribute VB_Name = "dlgDescriptiveStats" Bas0{14A27213-BEB4-11D7-B659-0004768BFDFA}J1F0J dGlobalSpacAoFalse CreatablPredeclaIdTru BExpose0TemplateDerCus tomizD ' Form Copyright 2002: istical Services Centre, The UnCrsity of Reading%Written by Colin GrPayerOon ulicit Const DefaultSi gFigs@H4  CExtraWidth@160 Dim NoOfVars As IntegAFactoD@i$umn RangaA tinati'@H CurrERowy!Lo@A1& Pnp Sub Userd_@*$iv@()A6  '\t up tYla boxes Call@;its(ctmnA4A@@Put**oL lst@KiACBZ By, P:N= '  valuintoB)for p roporPtyp@V cboP.AddItem< "A er"c*ageCountkIndwZ< 6I naIeOutput[ refa, opC"NewSheetpBooke re!trol&s`wavchkASb @ % } _ `6CEU, QW,aYaCbNonBlankumcbMeanStdev"Total|, @VbESV@MaximumMingedi Qua bles1 SkewXnes` SCVP`i"fǡjN txtfrOr) b`Cumul0IffCn_C B7 End !%:E Rr' DispoyRFvarKsQ%!.Vixsib2xFK@_Ch_`ER| @' HideO,d a sh]XfReR |vj= I`ByJi '2XIfbEna[&ysJe eU rehas j @6ad, soeck whFeq""OK Йtquld be e" d.cRNumberSelected( cjbtnOK.c ((> 0) Or e|AQH)' Byb.VQm yByT$Wger = /ByPs% A Onlyp^lV@ =(0 AP6 #s ! A Not(^kU+AA1 s`ics exceptpA;` `Q BpRa_`UdOLf_\f Y R ,FHW   T  .L1 yN'''a' @,'ÀX'dG'ux!, !ru22@/kV^/'A fraYspy' Adbw`@loP߰P)z)Me.ܦ+P/th ElseMe.Width = P- Extra\nd If( ESub Private  chkPercentiles_Click()Jtxt8.Visibles 5aroportiona a0cboP Condi6optRange 'ref +Tru Tex tNFreeColumn.A@ddressc' Make bo@ok namx alabel vWor:k N@ N@%lb l :NewS0heetG;  &@ `Re=y! (1/ 0@ Call ItemsInBox(lst, AC!a"Unstack or copyBdE toch3-' Po sB afte:rtA#b##Byf"#Is <"a.+ by a fT" c"iR"$ cà!By, _E*`'@'} no specified, assupefir@ is PMV1P 2(=T UH' S`implywm xrowf+* (_@Q=h==F(@(255 -i4.#?) / 2) 'CJG 19/3/03A= Un09(8, D7F&, _2_@7C*M.Value, S:=,09eI:= Si`gFigs(?E0"e<=prD CimumbMDineditQuaShkS0kewnSSbCVbӰ."zyOpLy Cumulh-D}"@b&s t&W@8nta`mTde>s'cyK@9rtRow`0S; g;ToInsert}R !8iydAStr0{Numbg0LongForaVB do Head/b  Offs @ BesufficiPQs at frontQv fyGu v4= (e.Cells(1, 1),pZ+ ]).ErHr  .d!(xlShiftToRightsSq !4%Xȅ= .(0, - - B'1/h2cU B3]`str 2Curre{ntRow = Star For i1 To NoOfColumnsp|Destination.Cells(Curr e,r+ 1)@.ValueData~X1F>Next i ActiveSheet.Name@s.Add  :P=strxctHdr, _1RefersTo:=Range(2),  Z))ibIf chkCount Then E$a bcyFddus,Blanks!mula/En0d If7NonB 7JEI!Setg@TiY - @mIz_y@8"R[" & & "]C/SUM(JBAAress(BenceStyle:=xlR1C1)")*100"DuD,,tCu7aA/2:o)8:&-@$s$?$yNumericb$ ,GD$] ]cf`Total,`OMean";??'?@2 ihStdev`c4H Z` i$;4#>bxF, I Minimum, rQuilesLQ, $1)&edidN8 MRrntHU3axotrMcSke|wnpRR5 , Kurtosip-SS%vCs@OG4U1@wCVCV@V^at:="<0% da6"Pos[1DoPField(txt8.T , , " "S#'""C `Exit IstU(4) pcber (Decimal3 >= 0 A[<= d !td&r$/{tb!2%& 4|)Ó>Loop5Propor'MDHCo= cboO8${$W$9@ _$pW$?$76412& [%& $2.Lis@tIndex0% 'X0'0a3 Headr2$Else_ R X bP erage!_ & 3.4   0֯O.5;D;#Q r#;, AsArray:=Tru?\N; XOther3 <> 1 Replaring\w`[?"@"), txtOther.Text End Ifh(<' Finally, prettify ~ descriptive tableZSet Destdtion = .Cells(StartRow, 3).Current8Reg.B>.EntireColumn.AutoFi $ormat xlRangeClassic1, True FalsZ&Q1) ?Font.Boldj&VItalic;If chkCopyData` Then*'Convert to values adelethe dects1gOffset(2, hJG 23/7/03.A&ECrPasteSpe cial(:=xlV+))ps {.Clear Eb$HidO8HSdeAhSub PrivaR! Add(By. Header As String, F@ula _8-Oo@ AsArray~, b AatQ'(s row cain&safied statiކc%Dim MB5cfThis iIntege4#{zJAz?L@#)b` i@1 To No|Ofd9@'X= All!In(CsAYi)KI= ReplaceC7(Trim(@"?",!.>ressF q`Left(H f <> "="s5'&=&iWithP)%i +@r EI @.IhH i/TG#IsMi|ng'P@g N`umber=` SigF@(.b@,',@P, C Jx+N iBg+`,   N h   "  8v @ ` (p' ( (   @  P ?h ?       t  "   (0 8Phx    0 0 P X0h  "   x!t!!M1gOy).Yvy).Yvry).Yvy).YvxME@SPSSS<0h @ @ @ @ @ @ 8 @ ( @ @ @ @x t`(8@d @T H8P`J8L @H (8 @( XP88  `8G0 @  @ @ @ @ p( @ @ @ @ @ @ | @x @t @p @l @h @d @` @\ @X @T @P @L @H @D @@ < 0, @ @ @ @ @ @ @ @ @ @ @| @l p @ L,+x ( 8 H X h0x 0 08@ H " PX`h " p(x " ( "  "(\0 "8(\@h " px "  x "  x  "  x " ( x0  " x 0 " 8 x@  "          (  8 H P " X ` x "  6  6  6  6  6  6  6  6  6  6  6(  68  6H  6X  6h  6x      6  6     6  6     ( 0 [8 P " X ,`  ,    " ,  ,  P ` p " x *  P     " ( 0 @ " H &P x " "  08@H  P(p  F % @( S@ SX Sp @ S S S 80 8 &P )` Yp  & )  4 Y @  <H  B  *  >8Cx00  % ( D0 <x 0 `Z H >X ,Q .Q .Q ( e0 ,QP .Q .Q e ,Q .Q0 .Q`  >6"60  $88` > 8v  ( 8 H Form dlgTwoTtestG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerp]p ] ]p]]    %                     A@ue Set up the list boxextFre Adress A@e book A@ A@e $ A@'Sample 1+Sample 2+ng $.  ! 9 Descriptive stats are displayed. Take these as defaults  !ls $! B@^ $! B@^  ( (r(A@ (r8A@k kA@    A@o](]@]`] !r 'ut dat !d+Orde $. <$. B$. (dj (d: (dat$  $! G $! (djk  $! G $! (djk  $! G $! (djk`'oP]]]]8 !r ' !d+ $. <$. B$. (d (d (d  $! G $! (djkP  $! G $! (djk  $! G $! (djk'oXA@A@o !d !d (oX !d !d (o A@A@oX !d !d (o !d !d (oA@A@op ' !d$ !d$ !d$ !d$ !d$ !d$ (oX ' !d$ !d$ !d$ !d$ !d$ !d$ (o` ' !d$ !d$ !d$ !d$ !d$ !d$ (o ' !d$ !d$ !d$ !d$ !d$ !d$ (oP ' !d$ !d$ !d$ !d$ !d$ !d$ (oX ' !d$ !d$ !d$ !d$ !d$ !d$ (o@  ( ( ( (d ( ( (ko   (o  (  (  (  (  (  (  (  (  (  (  (  (  (  (  (  ( ( (  (  (  !  (  ( ( (kk   (oX& Existing Range option has been chosen% Make book name box and label visible ( (o% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@joX Cancel button just been clicked A@rop OK button has been clicked]]]](]H]`]]]]]] ]X ]p ] ]  Find the output range   : TwoTtest$.. .G|j ? Select the output range so that subsequent selections work OK. .A>' .%$; !d; !d; !d;$; !d; !d; !d;qd2 Unstack or copy the data to the destination sheet <  <A>  A> <   . !AJ e<  <A>  A>$+< . Simply copy the visible rows of the variables <   . !AJk 6 Insert sufficient columns at front of sheet for table 'd` 'kP  .%  .%$0!.   B@ ..  %..8 Calculate the mean, stdev and df of the first 2 columns !!!' %  %$0. %  %$0. !' !'  .%  > If either column contains a blank, make the difference blank. 6 Note that Excel treats blank as zero in calculations! %  %$0. =IF(  =" ","",IF( =" ","", - )) ( !'  % -  %;=COUNT( )7( =AVERAGE( )7( =SSCSTDEV( )7(d %;=COUNT( )7(L =AVERAGE( )7(L =SSCSTDEV( )7(L %;=COUNT( )7(L =AVERAGE( )7(L =SSCSTDEV( )7(Lkhq` Hide the data !!(k( Paired t .,d Two-Sample t .,k Set up the descriptive stats .%    A .%B@H    %                     A@P A@roAAttribute VB_Name = "dlgTwoTtest" Bas0{14A27227-BEB4-11D659-0004768B FDFA}J1F2J dGlobaBlSpacoFalse Cre atablPr@edeclaI"dTru BEx0pose0TemplateDerivCustomizD ' Form  ' Copyright 2002: Statistical Services Centre, @The UnCrsity of Reading%Written by+lin G rayerOp tion ulicit Dim NoOfVars As Inte&gA Sa=eHC(1 To 2z)A S erRange APJL Sub UserA>_activ@() 0 CellHAiF$ utRoreCoDols SavGchkSD, _HoptB', @N@ewBookS0heet Co lumns OnBSummaDry cboCM, 1sS2BL txtMean, StdevCiz3I0 ? @ @ @AUn equal@hkPai@CID't up t@KlO box "Ca2InitAAps(cmn*Am8Put$@5oL!F Cor:=Cs5? e1_ .LZ)c 1+]$2$et ^= Find! dK(strDeDscxHdr#%IflIsAh w=azn  .Count >= &2' ri!zve s`s !` disyed. Take:`as defaultsE r i {` Z=1.AddItem (i).ValA`F2Next iHKIndex@b0R_Chaq2>.GCEnpd If HSho@xe)eiaheOutp`refG'' @-G!-n«aHTHc[A#l+ 416T@S42.44b4Q OGQ7( OGbSVU. @'"3@P_l?X?r(G4 > 0?a`* ٟheN e0I`2!q5:4ye?5щV)2?5 ?5"26g:5J?5Pc(;52r?5jj1 1?5 ( O?545 {N5ot"}-# - \PtV#n5/&$&5|p-=!H__5'5c?jq6_C@kjs8b7::btn`OK.En!(CC<> "" A|ByH/ "˒@ožooodq|G/o1? ֞OG1 ȳ <> "" And cbosample2.Text) ElSub Private 8S_Change(V btnOK.Enabled = (P11optSummary_ ClickpShowBoxes  ~txtMean &]IsNumeric( `)^ Stdev_CEize0pҕE-F }B;}J9+D9O@N8N@uqbN{?N ?NDcbw hjS"'Cz2?'uy?'"w 2JB 0B1i` 0MZEFC= :=CloJdJJJ' ExistPion has bee2n`Ios4`' Make boo k namx alabel va0Work}N!U/lZc NewShXeet, ` asQ Sm    c rF  B ֶew Workbook option has been chosen ' Make nam$x and label invisible, since nXcannDot repdQtxtNM.V= = FalDse#lbl#  ESub Private  btnHelp_Click()Get! Me.ContextID7i%Cajl&% ' buttqjuss:et Unload9/OK-' OK+Ɉ*XDim i As Ic(ger k De`stinaRangYDataBANoOfColumnsToInser>t LengthLong11Str iN2PFactor(0 To 1) GDumm y 0 iffe@KD3+N*GEFithe output rdSetb k= O(NewB,Sheet, DsA,f , "TwoTtM"ÀIfJI@s Noth, Th@XExiti/1S'ary@ ' Se lect m so`at subsequen@B`s w].CallD H # Q= 2eWiH.Offset(1, 0f.Cells(2, 2)SampleHead 4(103$`+Size.Text 4Mean5h tdev32"2  ,E@ '@stacr c(opy@d t?e dHS(cJ8OneC}J ReaVarsz@GItemsInBox(cbo;,  'PBy,GUnS(s, (g,kC A.Valu &qsU ɘ`^osB_&P^(1tR1>iP3y rows ofvariasu;YϏ0(TIfu'qRisuffi4ciHcl`Ifr B) for t1 chkP`aired]{H1%1J@ 4 ^ ft= .PK1), __AOSN +0O).Ent 5.|(xlShiftToRight i}=d5B?@ AY0, z-) - uqlculfmV`Jdf5'fir 2)3DkCur0~tReg i.R+.Coun^A 1b8 ߦdi,e2Ons`92@OK2)F 1.Addres72ss&026ft exeq`!ntaia blank, maa^df'e#Dp:Exc0trXeatq pzero ca!1!5C2(4, 3 #S#1!.FormA)Array"=IF(" & 1"="" "",",;U2] -))"K .& &F - 1ZTRCOUNTH & "- TR_AVERAGE#:rSSCSTDEV<]W?R:#kla"=Gh#r #\ = "=SSCSTDEV(" & Column1H")" .Cells( 2, 3)Datas21, 2)f3f.Fo rmulaCOUNT2q4=AVERAGE$?5?@End IfgWith'Hide tphe d urrentRegion.Entire.denaTrue6If chkPa@d Then.estinat'U1"tE,ls*DTwo-Sampl1<' Set up9escriptive statsCall MakeTT able(Of fset(@)0)@, NoOf, txtCI, _3:=B, UnequalVarianc|esC;.Select A utSavcn@trols BTtI,_Copyr (optRa nge, @Ne wBookShxeet F< OnB Summary cbod!wOsBj@BCL @SMeanUStdevCiz*X @ D  ?I /+""2 CIb(Unload MM aYSuba-  N ,h   "   (' t  B  )` @p     " X )P` x " 6  "   B    0@ H " P ,X  ,    "  ,  , H X h " p *x  P    "  ( 8 " @ &H p "  "  (0  8(X  ,&  >(@"0X   8 2G@ ( (8`&x  %  40 H P P%  <` B    *  $( "WP  Bx    "<2 #$#_1Zy).Yvy).Yvty).Yvy).YvxMESPSSS <0<<<<< <$<(<,<0<4<8<<<@H@>H@@H`(`B &`D8 ```8``Z`F`H `P ` @% Jx`%`L`N`P(`R0`T`V X %`Zh`\`^ ```b`F`d   %   %b4@ HXXX   %H  @ @x @t @p @` X \ v@X @T @P @L @H @D @@ @ @8, p `@( x"@$  @ @ @0 `@ p `@  ,@  @ P0v J0o( L=@ L=  0'0( '* ( 5 @ @ @t @d @T @D F4 G8(Pr80 @, @( @$ @ @  xp %@ @ @ @ ` H HH h0  x p@$l 8@&\ `@*L @,< @., ?BaseLWhLB`UBXUWPMedianMeanOutlierExtreme` h @ ( @ :0nx|Pp @` \`1L @< @, @ @ @ `9( @ 0Q@ `QpX`pS0 `h0 @ @ @ ( @ @ @ @ @ @| @x @t (p Xx(` @P hL `< 8`( 0@$`Xh `    0`HX (@ ` (8`P` x `       ( 8 H X h x              ( 0 8 @ H P X ` h p x         H (d 2(  ` @h @ @ @ @ =  @ @8@P@h@@@@@@$  8 B@ Xh p Bx   HD4( H :P 4f   @ < @P  :f 6f :f P 4fX . F F F F  F@` h p 2n > 0 @i8 vx n n` v @iH z p px z  h  p $Mx      *| 8h 8 @ H  h p "^ D H > B 8 ,P4d : <4d88p8&\$K  >( Fh [Q  [Q 8 @H P 6`(a  >>  .$J8 `  p ,x4 "  :(!0@ H X` px   =     8 (  8  H <P " *-      !(%! 8!(%@! h! <p! <! @! (0"*-X" " " ""#" """" # # #(#0# H#P#X#`#x# #   # #  ,# # # # $ $ $$ < $ `$ p$ x$ >$ $ E$ % "% 8% @% H% P% X% `% p% x% % % % % & Form dlgBoxPlotG Copyright 2002: Statistical Services Centre, The University of Reading& Written by Howard Grubb, Colin Grayer`]  Set up the list box A! A@{ A@    A@!             vA@ $ z!|o9 Workbook is shared - must create chart on a new workbook ( ! ( ! ( !koXR Variable list has just changed, so check whether the OK button should be enabled. $ '   ( o v! (o` ; Disable the copy data box - always copy if outliers wanted$ (o ( d (d$ ($ko& Existing Range option has been chosen % Make book name box and label visible$ ($ ($o X% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@jo Cancel button just been clicked A@roxX OK button has been clicked]]]] ]X]p]]]]]]0]H Find the output range   : Boxplot$.. .G|j& Get the ids of the selected variables <x  <A>7 Get the variable names to include in the boxplot title$<$'$   $,  $<$'$ 2 Unstack or copy the data to the destination sheet+ Always copy data if outlier display wanted  ' vG $ '2j 2 " Unstack the variables by a factor 2  A>  2 &G &,'&j & $$'& d. Simply copy the visible rows of the variablesk '"6 Insert sufficient columns at front of sheet for table  .%  .%$0!.   B@ ..  %.. Set up the descriptive stats .  $ &   A(             vA@P A@ro $]?]0]BaseH]LW`]LBx]UB]UW]Median]Mean]Outlier]Extreme] ]8]P]h]]]]]]]](]H]h]]]]]]] ]0 ]H ]` ]x ] ] B Get overall minimum value for adjusting minimum y value of chart.MIN( !!)$f'V+==================== label the output cells .Min7(Q17(Med7(Q37(Max7(7.Jq J 47( 67( :7( 87( <7( 47( 67( 8 7( : 7( < 7( 'FStart of outlier rows , T F7( F 'Fk` . > F7( F 'Fk(q B==================== loop over variables, put in calculation cells !!P!' Z  Z$$.  . 3 Insert max, min, Q1, Q3 and median for this column=MIN( !) Z 7(L * QUARTILE( !,1)$f Z 7(MEDIAN( !)$f Z 7( QUARTILE( !,3)$f Z 7(d8 =QUARTILE( !,1) Z 7(=MEDIAN( !) Z 7( =QUARTILE( !,3) Z 7(kx =MAX( !) Z 7(L ' Remember the addresses of these values Z 7!'R Z 7!'L Z 7!'N Z 7!'P Z 7!'Tqh  J  Point to the column names= Z$! Z 7(L 7 Calculate the differences between the 5 values so that * they can be displayed as stacked columns.=IF( P<0, P,0) Z 7(L=IF( P<0,IF( T<0,( P- T)/100, P/100),0) Z 7(L=IF( N<0,IF( P<0, N- P, N),0) Z 7(L=IF( L<0,IF( N<0, L- N, L),0) Z 7(L=IF( R<0,IF( L<0,( R- L)/100, R/100),0) Z 7(L=IF( L>=0, L,0) Z 7(L=IF( L>=0,IF( R>=0,( L- R)/100, L/100),0) Z 7(L=IF( N>=0,IF( L>=0, N- L, N),0)  Z 7(L=IF( P>=0,IF( N>=0, P- N, P),0)  Z 7(L=IF( T>=0,IF( P>=0,( T- P)/100, T/100),0)  Z 7(L 'd ,= N d Z 7(L d 'dk . *  :!h%j d Z 7(d =AVERAGE( !) d Z 7(kk  Handle outliers here *  Calculate outlier limits P$0! L$0! 'Z L$0! 0 Z '\ P$0! 0 Z '^ L$0! 2 Z '` P$0! 2 Z 'b  !% Look for outliers in the column data  $ ! \ $ ! ^ 3 We have an outlier. Remove it from the column data6 and insert it in the next free row of the chart data.  $ ! ` $ ! b  @ F;d@ > F;k  F Z 7 $ B@* $ ! $ ( F 'Fk  7 adjust Min and Max in case they are now within the IQR @ This may occur if all values below Q1 or above Q3 are outliers. R$0! L$0! L$0! R$0(k T$0! P$0! P$0! T$0(kkq Z0 Get range of cells to be displayed on the chart J F Z J%$0.J Hide the data .!!( !!('==================== now draw the chart2 !l%BB@H n.H H% set up the chart as stacked columns.9p Jt xvC@r |9z9~ Boxplot of $5(d &5!d by  &5(dk5!(97qp7qX7q@  J!!  Adjust outlier series 75 4KT2 Make lowest stacked item (0 to minimum) invisible 5( 5( 6KT6 Set up whisker for the value (Q1 - Minimum), and make the stacked item invisible   l'C@ 5( 5( 8KT$@5(413434879 :KT$@5(416777164 <KT6 Set up whisker for the value (Maximum - Q3), and make6 the stacked item invisible. Stacked item is made 1009 times smaller than actual value to avoid a gap appearing! between the whisker and the box.   l'C@ 5( 5( TKT 9z$@5( >KT 9z 9$@9 5( @KT 9z 9$@9 >KT 9z 9$@9$@9n8q0 & Adjust plot area border and interior.5!9 9 9q 5!(5 Remove gridlines, and adjust minimum value of y axis 799 8 Adjust minimum y value so that it is sufficiently below  the minimum data value. V5 559 V  Set X axis to cross at y=09d59kxqp 799 9q@q8o0(%  <   .  " .!N  $J'%wAttribute VB_Name = "dlgBoxPlot"D Bas0{14A2722B-BEB4-11D7-B659-0004768@BFDFA}J1 F4J dGlobalSpaco False Cr@eatablPredeclaDIdTru BE`xpose0TemplateDerivCus tomizD ' Form ' Copyright 2002: Statistical Services Centre, The UnDrsity of Reading%Written by Howard Grubb",2linayerOption }licit Dim NoOfVars As@ IntegC P>@ Sub User1_act$iv@()A  '+t up t)l0 box @CallitAss(cmn:DmAnPutColumnoL@ ls:t#iUBZ By, F%or:= y Initia%eOutputRange ref, opBNewSheetBookB e{reCo!dols DSabv@hchkAt8, _B A!MLL @,lier,B JoinMea K,ANC ByK!BIf ApeWorkb8.Multi;Ed`%ngaMn%'  is sBhi - m^ cApeart Ja new w %`*!.Va,luug4 0.E~n=q'2RE nd If `URIW#_Ch!@aW ' L W`has jbd, soeckP whe[r\OK t`should be e.j= NumberSelected((#abtnOK(fx> 0CZb=_:C zk By.Visib¤0%O GLEDisa8B$c d} Falways if out[s wad2@ h=LJEŠ KiO E D-=KS$' a\ɁKbechCl' Make%ok n!a[label v#8Btxtra;lbl]6?6, 0<@sR    1b * okOP} 0ak G MPRl ins4Bin0PcannotArBme.?5'o?_TDHelp'#GetQ Me.qqlextIDCa@ l PSPbS-H@pload OK' VG3X Eqi, kj,un 6DP|in[":KC;y()HfZsm(l@|w- jSA /Dummy 0 To 0 ToInPtao  3  3iLѡ`_@ r1xSet = g}u(;ܒ4H,("`pcsk IsthY08it BB' p22lids Bs{ varRsReQs(1^temXsIn ,1s 2Gs toFcludep b titlP=a 3(a (1)s iP>2I P(& @", " &Os(iDND iREB'?staor2 8tAȂ dizspy% (} rOPhkËByrBu-stB>yP)0|Unc! !a fb"3(:P"V%v'  C!<> ""emes = Fa@ctorNa& ","  l GetCol(umnt(R(i))|Next BiElse,' Simply copy the visible rows ofarias6 ReDim(0 To 0iEnd If&Use (NoOfVazr1.UnStack(,., Dummy$estination, _ GC_Data, ;, Sor`t:=Faz Max=:=Int((256 - D1.) / 29' Insert sufficients at froCsheeor tS;To#= Range(ells(1, 1)-; R++.Entire.(xlShiftToRightf)T HF2A` .Offse@t(0, -I&-@&BCupBdescriptive statCCall BoxPlot HG<, ōchkOutlier, Joi0Mean9!utSav@Jntro|ls o$ptm, @NewBookSA~m@"K lstI"n, ByBybUnload My oSub Public q' As#N KFI?O6ona5yV1@B""w  *A|,AMedian lDisplEnd Ifă6FXFormula@*AXZk' Remember the aAes ofs$e es Mi`nimum#2#D Q1 DZ 2 3 GY xMax )M AYWith- ChartRangɞ' Point toJcB namGE1iAC=d5 48 H#E "(E89Z2H'B(7710 "=6R҄1I=5I"H1 isRow \12BIf JUMedian ITh_P ?3HД+ .1(nvD3RMeo5 Application.WorksheetFuncAverage(?p/*"=AVERAG[ h' Handle ouh`jO &in limitIQRyH(Q3%- 1x@LowerG - M ultip0 * cp;Upp?+??rExtr0p@ $r>9+ ? Pi i!1 ToYCo un#' Lo@ok foriC4data,(i<pOr _se8 > z?ӣ' @We havnE .o it fromR T' 0- insert pdnex1ee rpLo ch0 Y0e BN WS) str3_ Fxt4  Copy ( 2PQ"*`#T[bSP` ip#djust "$ q`$ ¸are n#within the IQR ' This may occur if all values below Q1 or above Q3 are outliers. If Range(Mini@mum).V >Q1Thenn ;;= ; 6E`nd If ax <%3!CCoCKWN`ext k'@ Get r of cells to displayed oAchartSmC R ,R .C(Ru- 1, k))'Hide!‰dataDestination.CurrentRegAEntireColumDn.den@True@s+ '= n,0draw'?ActiveSheet.:Objects.Add(200, 5200).Sel(NBoxB .CBl  BH' s@]up" as stack hcDG.PlotVisibleOnlyFalsI@$tSouPrceDL :&="u, ABy:=xlms!;TypexlC[SC!HasTi|tlAf3 ".TQ= "p@O" & Var0Name jFacto <> ""xD N@& " by& fFon t.SizA14 Lege= *%B8,riesg`$?W(1^ ! n js 2+ 5+EFi71 Tot<.Cou8nt `t@' AdjustQ(if@` Case .Q3)o%CP'Bo%1e. D_~ &p|pi ] sm@erPan @]ua$;avoid a gap aaringtweP/e31boxKP ..xl.Pl..O/peO/ /I/@!uI?w///WpIMe8diao}LiP +Ўgs )*Me eM\arR.S$tyBxlDash"negr`Gd@xUh    7 '     :8 "BP [x '  $ : <] [0 'P ` h  < $ $*  $*0  X  [  '   :@  "BX  [  '  X $  :  n  [`  '     *K  '   :(  @  [  '   :  "B0  [X  'x  x $  :  @]  [ '(8 @:`x6W4B[:4B[  ( :@ "BX % ' " : @K %  :8 @KP %  "$' N O8 X  Module modTtestelG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerph $- Sets up the table containing the t-test info]H]]`]x]]]]]]] ]8]P]h]]]]] of difference'Set up headers .%B@HNumber of observations ( %B@HMean ( %B@HStandard Deviation ( %B@HDegrees of freedom ( %B@H  One sample or paired test]$ CJG 19/3/03'jd Two sample (unpaired) test Pooled standard deviation ( %B@HkpkhDifference of means ( %B@HkStandard error  ( %B@H % CI  (  %B@H T statistic ( %B@HP-value (one-sided) ( %B@HP-value (two-sided) (k   ~  !"#$%&'()*+-./012=456789:;<,>?@ABCDEFGIJKLMYOPQRSTUVWXHZ[\]^_`abcdfshijklmnopqretuvwxyz{|}' Insert the calculations for the T-test .& Set up addresses for the basic values7!'7!'7!'7!'7!'7! $7(7!'7! $7(' Now setup the values derived from them7B@H  '| ! CJG 19/3/03d test  Degrees of freedom= $,*1axMEP<0<<<< <<< `@@ ). `h%ixiI  I(  I8  IH `@B`@6`0`H,`(`$` tmO````` ``| P```x`h@%`x@hh @X (h`x ` 8p@hh @X P@H @8 @H @8 8`x@hh h@X @H @8 `x@hh h@X @H @8 `x@hh h@X @H @8 X`x@hh <@@X P@H @8 H`x `@hh @X @H @8 `x@hh @X @H @8 @  @ @ l@ (   @ H  ( `@ B@ p @n @ \ @L l@< P@, @ @ el0  @ @  @  )@ @ @ @ 0*1@ #l@ 2@ *#@ @ Pp @ @ @ @  0  N h   "<4 4    (08@HPX`hpx   3"%:%(:8%P:p%:  & "@ &%H :p h %: @%*: -:7 0:8%P:h %: % . -1 (L !'  Difference of means ! CJG 19/3/03 %B@H= -  (L ! $ ( !'k0  Standard error of difference %B@H=sqrt( * / ) (L ! $ ( !' e Not pooled  Degrees of freedom 6 Calculated as ((v1+v2)^2)/(v1^2/(n1-1) + v2^2/(n2-1))  Where V1=S1^2/N1, V2=S2^2/N2 * / ' * / ' =(( + )^2)/( * /( -1)+ * /( -1)) (L ! $ ( !'  Difference of means %B@H= -  (L ! $ ( !'  Standard error of difference %B@H=sqrt( * / + * / ) (L ! $ ( !' dH  Pooled  Degrees of freedom= + -2 (L !'  Pooled standard deviation %B@H=sqrt((( -1)* * +( -1)* * )/ ) (L ! $ ( !'  Difference of means %B@H= -  (L ! $ ( !'  Standard error of difference %B@H= *SQRT(1/ +1/ ) (L ! $ ( !' k Confidence interval %B@H Xd 'TINV( $, )* ' ! $ ( %B@H ! $ (  T statistic %B@H=( )/  (L0.00 ( !'  P-values, one and two sided %B@H=ROUNDUP(TDIST(ABS( ), ,1),4) (L0.0000 ( %B@H=ROUNDUP(TDIST(ABS( ), ,2),4) (L0.0000 (kq Finally, prettify the table .!.. .!B@b  .B@ .%!!( .%!!(o0( ) CJG 19/3/03 G'j9 CJG 19/3/03 e? CJG 19/3/03  One sample or pairedH %B@H? CJG 19/3/03("Difference of mean from test value (? CJG 19/3/03 '| ! CJG 19/3/03 '| ! CJG 19/3/03= | -  (LC CJG 19/3/03= | +  (LC CJG 19/3/037! $7(N CJG 19/3/037! $7(N CJG 19/3/03PԵAttribute VB_Name = "modTtest" ' Module L PCopyright 2002: Statistical Services Centre, The University of ReadingWritten by Colin GrayerOption Expli cit Pr8iva)Pub" Sub MakeTTable(DinDAs Rang_ ByVal NoOfD umns Integer, ConfidenceLevelSngg9<@PairedFalseUnequalVarija?s TJ@ T\ru Lu0#)BU'ts Pup t@}tAa contain|- info @Ost SiPgFig/4Dpim iHbBNV1Y2XQ XUQ SQ SQ VQ VIQ Df$SpMean̨'CJG 19/3/0"3;DifRtd ErrorTsHalfWidthpProb)DoleOfer^b}Ad# 'SetaFhbhw.Offset(2, 0).Selec`C@.P"Numbebr! obs sc  1 "a2 ndard pDevi Degre @fdom Ifh= 1n"-)' One samp@Fp#uE"Lt d`n ;"7 I.VEGTw"oE(unC) ?p@Pool@`]/d/AEnd If H)2)  h ;mVuV*B2_# from value `:: t_ /"f6eaO" &)W70 qM}& "% CI 90>.LJVLT QZ>9t(K "P- (one-s d)?%V?9 6two:U' In0XtbculX f0FTWigH_B aaddre ssObasic's@= .Cells(3,` 2).As2@34 fFormat(T,%) }0@ 7:15PP ,. u'ppw Є$1s de cccMhemD6<?=uou/}CA39"=G`.H-1<p=W|= .( ' _v6 OD /X#Xx  Q8g_#W#W*f 2`i0KtahonW$sqrt(qP */3"^wormat = 0SigF (Selection.Value,t s) StdErrorv\AddressLElseIf UnequalVariances Then' Not pooled Degre/of fdom Calculated as ((v1+v2)^2)/ ^2/(n1-1) + 4v2 2 ' Where V1=S1N1, V2=SN25V1r1 & "T*"S/N122;'Fa"=(((53+qh" _4 &d=#/)NW~*":VD P"H"2Number43DfO:' Diffl mean"Offset(s0).,I_\XJk>9@09>M5:5'CJG 19/3/03H3' Standard e@FdI=GsqrtIc_`SXS"GCB$bU)I%g )P?*N I#nxN"-2%_] c se;dexviaA?:^ *"=":c:E:sC1)cH)<`RB2յ?06Al"0.00eTPcTCA2' P--ues, one two s/I  = "=ROUNDUP(TDIST(ABS -,1),4@@p+o o o o 3o ,2o 60EFWi thB' Finally, prettify the tableSet D0)`AC.Cur@ntRegdEntireColumn.AutxoFi[Ir xlRangeClassicTrYFa`. Cells!1).Font.Bold a Italic g Sub dlgOneTtest!=dlgQQPlot36dlgDenest N~8modSaveg1 X h @x  ?  0 8 t@ X " ` hpx     0(X `0p 0  "9  " (08@ " HPX` " h@p " @ " @P "X  6`  6p 6 6 6 6 6  t1 1"y).Yvy).Yvvy).Yvy).YvxME@SPSSS<0h< @8 @4 @0 @ @ 0@ p @ ` >@ `@ @ @ ` H X( @ X>J0X`x@| @x  @h @X  H HXX D@` X-  4 r0 @, P@( @$ @ @ @ @ @  `  ` @ @ @ @ @ (@   @p@h@H ,  N h   "  (RJ  8 (H S  "  ,(  ,X    "  ,  ,  ( 8 " @ *H  Px    "    " & @P "X "`   ( ( 8 F@   %  @  S  S  S   ( .H x &  _  <  B P  `  *p  @ C 2 %  e8  ,QX  .Q  .Q    >  "6(  $P >x > (RJ  ( 8 P Form dlgOneTtestG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerp]p]]p]                A@ Set up the list box A A@ $. 9 Descriptive stats are displayed. Take these as defaults  ! $! B@^  (rA@dSample 1+kA@    A@o]] ]@]` !r ' !d+ $. <$. B$. (d (d (d  $! G $! (djk  $! G $! (djkX  $! G $! (djk'o !d (oA@A@oA@A@o@ !d$ !d$ !d$ (oH !d$ !d$ !d$ (o !d$ !d$ !d$ (o  (  (  (  (  (  (  ( (  ! G  (jko@& Existing Range option has been chosen% Make book name box and label visible ( (oP% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@jo@ Cancel button just been clicked A@ro OK button has been clicked]]]]]0]H]h]]] Find the output range   : OneTtest$.. .G|j ? Select the output range so that subsequent selections work OK. .A>' .%$; !d; !d; !d;qd Single column specified.' Copy the data to the destination sheet<  <A> <   . !AJ6 Insert sufficient columns at front of sheet for table' .%  .%$0!.   B@ ..  %..: Calculate the mean, stdev and df of the first data column !!!' %  %$0!' .% %;=COUNT( )7(L =AVERAGE( )7(L =SSCSTDEV( )7(Lq Hide the data !!(k One-Sample t ., Set up the descriptive stats .%    $XA .%B@H                A@P A@ro@zAttribute VB_Name = "dlgOneTtest" Bas0{14A2722F-BEB4-11D7-B659-0004768BFDFA}J1F6J dGlobalSpacAoFalse CreatablPredeclaIdTru BExpose0Template DerivCu@stomizD  ' Form ' Copyright 2002: Statistical Services Centre, The UnBrsity of Reading%Written by+lin GrayerOption t licit Dim NoOfVars As IntegA Sa=eHC(1 To 2)A S erRange7APJL Sub UserA>@_activ@() iEutR oreCo>olDs Sav@BchkAND~, _Gopt!, @NewBookSheet Column Summary,0 cboA tx0tMea St dev, Aizw%!(T@0BValu CI+'@zt up twl@ box!BCallfitAAs(cmnA 0q pB*TD cP P-e8BEheE?T0B`2XE94^S@5@l@)* 5btnOK.Enq(v<> ""0"o:q@g_Cyk:KC_ T G o%Hd) kt IsNumc(rQP"r%GA~ucoU : t \ bY ` o /f/)  F(;-VisiS9,BBlbl@z7cryQ ?9/'S?CB7d SiS.K_= Z/;?bT?'`P3Vh bechϣV"(' Mqb naap9labpel vWork.7U /OW2 , ` as1     u. okO Q  ?2  inA4, sinnew0ok cannot be redSxtWorkbookName.Visible = False @ lbl End Sub Private btnHelp_Cli0ck()<GeBt* Me.ContextIDoKCancel#MK '  button just been ctedU Un0loadr_OK!-' OK+has*-Dim i As Icge r k Dest`inatiURang#Data NoOfColumns+ ToInser>t- .LengthLong11StriHDummyFactor(0 `To 0)A A !' Fithe output r=Set E= OB((op tNewB, Sheet, tsA, ref , "OnheTtZ"@IfJIs Not"h@2 ThEx|it + Sq7ary ' Select 2 soat subsequen @zs wم@.Call:@-|= 1Wi@i .Offset(1,` .Cells@(2, 2)SampleHead@>(1F'3$`+Size.Text 4Mea n5h tdev E%+  cB] specified'}(opy/de tq.e djbBRBekVarsCT1 OT 1ItemsInBox(cbo%, !F%6`UnSta!, h`G, ch kCp.Value,CF '"xsufficiH!s Kfr of  for ta@TFlxsF= .O$FI1), _ 3C/NK@I+@M).Entire e.(xlShiftToRight!I=)xe ??@B$ b0, -I-@aȰlcul{mZH, sV adfA.!fir"O2ED Cur"r8Reg@.Rows.CounFkC1@t2Fx2"$5, 1)).AddressB2!U0"C.Form "=COUN@T(" & u &p ")"rDAVERAGEESSCSTD|EVZG u'HideEU*-.d0d= Tru|If/O3pj-F tAft up3 escriptidve)atHMakeTT?(I`,nRsCI="T4:=JL, QJ:=`({`a):"g.r4utSav0Antrols zAQ Px21ZJs'"$|]iM 1lS>o{&9CI2B8ڦ @  .P.  $ &   ( " 0 *H x      *( Xh   ,   < 0@ p .x . . . 8 P h  (   . P( 0x Z    (  @@ $ $  0   >   4  (@h      ( 0 8@H X h px    Form dlgQQPlotG Copyright 2002: Statistical Services Centre, The University of Reading& Written by Howard Grubb, Colin Grayer`]p Set up the list boxI M Aame bo A@l invi    A@      A@M z!| 9 Workbook is shared - must create chart on a new workbook ( ( (okHo@XR Variable list has just changed, so check whether the OK button should be enabled. $ '   (o& Existing Range option has been chosen% Make book name box and label visible ( (o % New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (oX !(A@jo Cancel button just been clicked A@rox OK button has been clicked]]0]P]p]]] Find the output range   : NormProb$.. .G|j& Get the ids of the selected variables <  <A>7 Get the variable names to include in the boxplot title$<$'$   $,  $<$'$ ' Copy the data to the destination sheet  <   . L$J' Set up the descriptive stats .  $A      A@P A@ro $ Q-Q plot (data vs Normal quantiles)]]]]]]8]X]x]]]]]]]0]H]`]x]]]]# Calculated columns follow the dattp)1y).Yvy).Yvxy).Yvy).YvxME@SPSSS <0<@" a .. %.. %$. &==================== where is the data !!' !'RC1'  :!h%  :!h% '*==================== quantile calculations .7  7$0. 7  7$0. 7  7$0.7  7$0.7. ., %' ., %'7!'= +RAND()*  ( ., %'COUNT( )' =PERCENTRANK( ,RC[-1]) (L!=NORMSINV(MIN(MAX(RC[-1],1/ ),1-1/ )) (L=TREND( , ) (S Range(.Cells(2, 5), .Cells(nrows + 1, 5)).Formula = "=" & DataRow & "-RC[-1]"q Hide the data !!(:==================== create X-Y scatter chart of quantiles2 !l%BB@H !' pick up its name n&* t h  "v$&Normal probability plot of !(Normal quantiles* Data values,.C@ 9p7==================== add Normal quantiles as X-variable 7(0 t5B@B. .SeriesCollection(2).XValues = TrendLine"==================== tidy up chart  %lB@2 5!( 7!4!( 7!4!(5 5( 5(q7 5(9698 99:q7 d5( 99:q 759q`qXoPHjAttribute VB_Name = "dlgQQPlot" " Bas0{14A27233-BEB4-11D7-B659-0004768B FDFA}J1F8J dGlobaBlSpacoFalse Cre atablPr@edeclaI"dTru BEx0pose0TemplateDerivCustomizD ' Form ' Copyright 2002: Statistical Services Centre, @The UnFrsity of Reading%Written by Howard Grubb,2linayerOption licitDim NoOfVars As IntegC P?A Sub User1_activ@()A '+t up t)l0 box B @Callitts(cmnD@nAoPutColumn oL@ lst-#iVB BInitiaeOutputRang e ref, opBNewSheetBoo.kBeoreCo@Xols ýSav[chkgA+, _ +  N/BIf APeWorkb@%.MultiXEd8ng{nE' is sBh - m "ce ct ua new wE@,C).Valu .En-be)REnd If EACG("_Ch6G) ' = bGhas jbd, soeck whe@LrLOK `t`shoul@d be e.[= NumberSelec0ted((Qbt(nOK(f> 0CPB_Cjkd'lYt #U'oAbeuch=' Makegok n!Aaa+label visibl`&txtBg.VcƝ@lbl]5 e>LRsak!n??? ?:4@`!q;4ind4Vin q can(notTrTmed>w8g8Z0HelpGGet Me.q!PextID `Ca@ l _?S8;-0UnploadOK' W>73H ]kik@AD^in@u@Bpm"8]C9׮q?cisomr{$lea=1z)dP crive statbs(X&,$7B4utqds 0>01^ϢJ;Kub HA0?$ !=Tl By@h@_eS&@KEC' Q-Q* -(#vq;rmal quant8ile!3 !8nrowMLo)Ja'Rowa 3c`̯ Q%R]kkAHq jTrde+CountoQQr Addres#%!JrDo SEijwa_qkM61TXoIn@O #l?!!GDim ChartRange As @  LambdapStringt' Calculated columns follow the dataZSet DCF= Destinatilon! !/.Offset(0, 1).3Q[2All In(  sB1, $0)C'= where is anrows1',.R.CountG Addr8ess"RC1" Jitter (Applic.WorksheetFunc.Max(q>) _- in) / 10 Cquantile czl4Witnhr@#A{QDC“(.Cells(2o, DCT+ dn1d kZ 2 )2 Norm*qQ3R3KTrendlined44 ƒ9726B.(RefnceStyle:=xlR1C߃5e=^\@b7.F(@{ Array"=" &x"+RAND()*aXa~copA?č F#aCO0UNT( & ")g 4ks%PERCENTK,RC[-<1]d($NORMSINV(MIN(MAX(c,1/oRA,1-MgN.TRE,,o#A! `"'V5V5)) ' a -#-End }b<'Hide c#b.CurhtReg.Erec.dena`-True cre X-Y sca of A veS.ObjecDts\(205`200).SelQQName ' pick up its n@,"Wizard SoXurcx`,ɵG@alleryA|X$YSC, Pat:=@sPlotB&s,tegoryLabels:=HPSerieshHasLeg@:=FalDseTit"Hal probability p .ValuKC "*" vsPExtra&1VisibleOnlD D#| add D v as $varia @(1).XR cAq%q%<ton(2L f_w" ti|dy'/U .s.(T,).)>nt.Sizm10Axes(xl0xis_ 2.A=eaBorder.2o@8xlNoncAAIn?iorlorIndex~I@#//x MarkerBackgrd#G1 @7 Get the variable names to include in the boxplot title$<$'$   $,  $<$'$ ' Copy the data to the destination sheet  <   . $J' Set up the descriptive stats .  $A> <     A@P A@ro , 1-D density estimate, with bandwidth slider5 Select column of data - large area of calculation is placed to the right of this]]]]]]0]P]p]]]6 Insert sufficient columns at front of sheet for table'  .%  .%$0!.   B@ ..  %.. %$. &==================== where is the data !!' !' .7  7$0.=  () can add transformation hereR5C1:R  C1'bins7(dens7(norm7(hist7(count7(Min7(Max7(nbins7(binwid 7(Lmean 7(Lstdev 7(Lbandwid 7(L=COUNT( )7(L=MIN( )7(L=MAX( )7(L7( number of bins=(R[-2]C-R[-3]C)/R[-1]C 7(L7 binwidth =AVERAGE( ) 7(L =SSCSTDEV( ) 7(L=5* 7!/ @  H H)1z).Yvy).Yvzy).Yvy).YvxMEPSPSSS<0<<<0{14A27237-BEB4-11D7-B659-0004768BFDFA}{14A271FA-BEB4-11D7-B659-0004768BFDFA}0%%x X` ` `  "`  $X`  &` *` ,`%%` .H% h%`` `$  >`Puu).px%ii$``@``Bk ca`( H% h% l bu% JA@r%  O%`D%@ %b4@8HXX0h     N ,h   "   0 &8  ` @p     " X P` x " ,  ,    " ,  ,H x   " *  P ( 8 H "P X h "p &x  " "   (*Hx  ,  > 8"P x  .(  $ &   H X "` 2x < "  (08 @HPX` h  <p<   8  ,X    . 6 " @ `       @ `   , * * ,P > . . b   0 < Z(   $.8hpx 6$       > "0"X  (    8HPX`x   Form dlgDenestG Copyright 2002: Statistical Services Centre, The University of Reading& Written by Howard Grubb, Colin Grayeri`]H Set up the list box A A@ %    A@ ( Force output onto new sheet/book <   7! 7(L< bandwidth( 7(7!'@=R6C3-0.5*R9C37(L. bin0 =RC[-1]+R9C37 @ 7$0(L=SUM(R[+3]C:R[+  ]C)/R5C37 @ 7$0(LJ=(NORMDIST(R[-2]C,R10C3,R11C3,TRUE)-NORMDIST(R[-2]C[-1],R10C3,R11C3,TRUE))7 @ 7$0(L2 =(COUNTIF( ,"$F<="$F&$FR[-3]C)-COUNTIF( ,"$F<="$F&$FR[-3]C[-1]))/R5C37 @ 7$0(Ld=IF(RC1="","",NORMDIST(R1C,RC1,MAX(R12C3,0.0001),TRUE)-NORMDIST(R1C[-1],RC1,MAX(R12C3,0.0001),TRUE))7    @ 7$0(LqH Hide the data !!(2( !H%BB@H   .%!'D9 note that these are hard-coded9d99J$C$139L9Nq`0==================== create X-Y chart of density2 !l%BB@H n!'B n(p *:$ @ $ .%0t h  xv$&Density estimate(Value*Density,. nB@ $ @ $ .%0t n!B@B n!!(  P n%!4!(  P n%!4!("==================== tidy up chart  n!!(  n!!( n%5(5( 9q  n% d5( 99:q   n%59qx op h Attribute VB_Name = "dlgDenest" " Bas0{14A27237-BEB4-11D659-0004768BFDFA}J1FAJ dGlobalSpacoFalse CreatablPredeclaIdTru BExpo se0TemplateDerivCustom$izD ' `Form ' Copyright 2002: Statistical Services Centre, The UnCrsity of Re ading%Written by Howard @Grubb,2linayerOption | licit Dim NoOfVars As InhtegC P@>@@ Sub User1_activ@()A '+@t up t)l0 box @Callits@s(cmnDlA@nPutCo0lumnoLC@ lst#iAUBInitia@eOutputRange ref, opBNewSheetBookBE .En#'8oB onto@ new s/bB@oreC rols C̈SavkchkwA;, _ M)&L,M?BIf A`eWorkA%@.MultihERd@HngnE'b is2A H- m ce@ chart aw % ).Valu!ni  *1REnd If MAKO("_Ch>O' E bOhas jbd, soeck whe@TrTOK t`ashould be eB.c= NumberSelected((YbtnOK(f> 0MC B_Crkd'ta| C]wAbe}ch=' Makeaook naAia+label v`isibl&txtBo.Vc@lbl]pLRjAv??? ?:4@`!q;4ind4Vin@ cannotšTrTmed>w$8gQ_@-Help'bGetaQ Me.q!PepxtIDCa@ l cS8;-0oload' OK' g>G3X pioPAD^inPyPBq28]S9?sms=om$lea#B!!=nrowSLohOnbinoT0%Ts VH@ fA >cAD%ToIntQQD  "This W6SD!Do$Û'2 suffs at fr> fopԗ?s = 23 Set ColumnsTo@InsertRange(Destination.Cells(1, 1), _tzNNoOf)).Entir^exs.z(xlShiftToRight)+Data3q!!/.Offset(0, -? .3AllIn (&s&0)O '= where is the dH6nrow'',.R.Count BAddressWith This6!5ބ!+ 4A1.FormulaArray"=" & &' can add transf A;'copR5C1:R"C1"E &V2). Valuebins 2, de3n)Mw>IMtMci6KMinMR7LaxM8Kn=9DfDFwid1, mea $1,stdev #-bandg7&3)G=COUNT(?Bp& ")- ( MIN@+AX-eL20 ' number o+,Chr(34)0@H P "h    "# "*    0 8 ,@ #p 0 #     Module modSaveelG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerph] ] ] ] 0] X] ] ] ] ]  ] H] p] ] ] ]  ) Saves the contents of a set of controls.]]]Clear the collection  d! dB@l.Removes the item currently first in collection  h f h$n h$pObject h dA@rd' j h j$n j$pObject j d X A@r  'k8k0(k ko ]]]]]]  t.x x$p'| x! F'z |ListBox Remember all the selected items x 5 7 7$'~d 7'~%k G ,'j  7, ~'xk Zqh  z vB@Bt |TextBox |ComboBox |RefEdite x!d z vB@B |CheckBox | OptionButtone x! z vB@Bko8[ Restores the contents of a set of controls, ' unless the current worksheet has changed.]]]]( d!G|j h f h$n h$pObject` h dA@d' j h j$n j$pObjecth j d X A@  'kkkko @]]](]@]X]p]] t.x% x$p'| x! F'z |TextBox z$v x(d |ListBoxe8 Reselect the saved values if they are still in the list z$v''n_  n,$j'  n,$j$X'~ Gxj x 5 7  ; ~G ~ ;jyk q |ComboBox |RefEdite z$v x(d |CheckBox | OptionButtone z$v x(k(o Attribute VB_Name = "modSave" ' Module H LCopyright 2002: Statistical Services Centre, The University of ReadingWritten by Colin GrayerOption Explicit Priva)Pub" DataArea As NDewTlecH  &Unstack#%TwoWay'Lookup$XYPlot#umn BoxQQ Denes&Descri@mve0Sum maris OnxeTti @Propor\( Sub uGCools(dAkD, Pa ramAr a rrObjs( ) VCant)H ' s t@cs`a setr .A Dim objElem OHayi!Integp AClearlFjFor i1 Tod.Cxounvab!.Remove 1 'Citem curr@ly first coK Nex#!EachIn* If Isգ-()an$Not Type c"?,c" Else+(0& 8A IAe@j!" #, $$, CStr(iD`i$i + 1AEnd IfuAK+- a">$A({ {`Z_sa ByVInde:x"$!{Ctrlc KeyS !\Pg?pue~lNoqBS@J2 = p"B=51 = .R& p(("Lm"+'pmember a$llJseqJed EsWith06q%0!Lf.L -]&.~Sd*@'FNull((i, 1)61`= ?_B3 ?3*R <> "L lq& ",8C7) P2 [.Q3 iE!1.Add, 0!Q` : T`3 Or Combo!3RefEdit#f''Check:@Button_l RhJ;E!EutRoretE_7 2sNtON, J' unles$z workshe ?has changedq%E`ER!1@ PreviousWVVO 3$/h>hpExit SvguH? ?t_> @{?)B#R? Kos  CMao:/o?;q.M `* υυ; 9 Optional ByVPIndex = "") Dim Ctrl As Control\Key,@String ZT(ype4i&In`teger^wuA,FieldDPosFSelNo# dSet= Vaw= Name( zyk=. & c&If "TextBox") Then %. Coll()-Else!Lis!' Reselect the saved values if y ar till inl%Bd @N= 1DoEC]= N5(, , ",π \Ul( >'C >E""L Exit With_%For iT0 To .MCount -2@B(i)@  h .1@Yed True  ;<> @{!(i, 1ABQB8@/End IfQ i ADLoop ComboãOrKRefEditzCheck #Buttonq Q) SubA dlgLookupW6dlgOneProp /modProportion& 4dlgTwoPropCoP A Check that the number of selected items in the lstLookup and the6 lstData boxes is non-zero, if so enable the OK button $ '     (oPrivate Sub lstLookup_Click()E ' Check that the number of selected items in the lstLookup and the= ' lstColumns boxes is non-zero, if so enable the OK button* NoOfLookups = NumberSelected(lstLookup)8 btnOK.Enabled = (NoOfLookups > 0) And (NoOfDatas > 0) SetupColumnsListEnd Sub` !d'd'k     ( !dA@o% Dim LookupIndex(0 To 1) As Integer]] ]85 Put column names or numbers into the list of columns B@  $0. $.   A  . There are no column names in the lookup table  Use column numbers instead  !P!Column  B@^ d ) Insert lookup column names into the list  !P!   %!' ( Column name is blank, use column numberColumn  B@^d  B@^k kkoP& Existing Range option has been chosen% Make book name box and label visible ( (o8% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@joP Cancel button has been clicked A@ro OK button has been clicked]]]@]x]] Set up the array of columns $ ' +You must select at least one column to copyA@|k P 'Z 5 7 Z 'Z  Z+Pk q& Get the ids of the selected variables  A>* Call ItemsInBox(lstLookup, LookupIndex)$ !d PA Z      A@P A@ro  ]]]]]]0]H]`]x Remember where the data are .( keep a track, as we'll be moving sheets $@$0. !d; Default range should be immediately to right of data block  !%%! (dk Find the output range   : Lookup$.. .G|j Set up the new Vlookup columns $0. $.   AJ %' !' !' .  P  Insert lookup column name   %! 7(  =VLOOKUP( , , $P,False)' 7  7$0  9d 9Lkq qoA Expand the given range to include non-blank columns to the right](]H]` !. !N !P!  ' !N !P!  '     % !!  %%$0.kp .iXPAttribute VB_Name = "dlgLookup" " Bas0{14A2723B-BEB4-11D7-B659-0004768B FDFA}J1FCJ dGlobaBlSpacoFalse Cre atablPr@edeclaI"dTru BEx0pose0TemplateDerivCustomizD ' Form  ' Copyright 2002: Statisti( k 0 )1vz).Yvy).Yv|y).Yvz).YvxMEPSPSSS<0<<<0{14A2723B-BEB4-11D7-B659-0004768BFDFA}{14A271FC-BEB4-11D7-B659-0004768BFDFA}X b(8@P%% ` `  ` `` `  P`##ix. ooku%`tati`re, `  "`   $`  &P `  ` , `''  ite 8  PpX```Z  `  00i@i`)P ` .% % %`````, `$)%%)  % @%``x% %b4@b6@b<@hP(`P`~X  `x((  N h   " "  "     *0 `$  "  H <@"P x $  L D 0H >x     "  ("0 X h " p ,x  <   0@X 4h "    0  P p  .    ( 0 "8 ,@  ,p    " ,  , 0 @ P "X *`  P    "   "( &0  X h "p "x        "    6( ` h p              , 8 0H x *   "       ( 0 8  "@ 8h   B , @ H &h   &      (8@ X (x P ,  ( 08 @ H P` h B p Hx     (J8   Form dlgLookupelG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerp]]]](`A@o8o( Initialise the listsVK A A@ A@ Z      A@@    A@ G$! (dj cal Services Centre, @The UnCrsity of Reading%Written by+lin G rayerOp tion ulicit Dim NoOfs As Integ -DWOHerRow Lo `FirstA J P@N@P Sub lstColu mns_C@"k( ) @:tu pL? En~d *AV User\_act\iv'9itialitT tsCallBs(cmnAA)Pu/KoA+box6 BZ [ utRe!reCoyolDs CSav@|o@ptRangCNewB, @Sheet, __QWA!,Y,8 rex In@Outp a _ D c0 fbSnf.TextnNFre>(Gap:=0).Addres.=hDE gheck thate numberAbselect@uitems& `b 0) A  a" @`'`'a' '@@?#d =#Dr#h#= N$@$$r$DSe4@ Dis1`y_c%-IfgWW""Z1 ʥ= #`E/@k1IfBbm (z)hm(ByVal-T[_S ngr!]Index(0 To 1*hb gC@B  $Rbi1O&g=S cRb ns or=D+.CleaoPp?y5: = r(0 bjuDToR!|46"eFindVsi, f, t &F-1 p 're 0KOb  ' @rs:st}hPt io.Ap|un CS^I X " " & ib4z1|t l# j!in    b*=ells((i).31sS0  t"opy"Ex@it SubE nd IfReBAKWith UGk = 0For i#.Lilunt - 1p.~i) Tn*k + Ptk)i3 Next i/c' GlAkidsjQed variables Call ItemsIn]AkData, AB݀G'' ,R Do ((1), ref.T2, >ButSaveControls, optRangeBNewBSheet,| _-@u,w  Unload MeAVB Private O4KC ;T^ String A{#BY!b Objmgestinationb%b TAddre|ss!#FLengl LongRComma x J' Reme wheredc7$= Active%' keep a track, as we'`@be mov2 saHc% "= (k3[)(XO\"\z""ʁ' Default rYould immedi @NlyrightAyblock'@KM F8.CurrentRegA.Y(xlToRA ).Offset(0,.B á^' Fi`0outpu#L= OB$ trtxtWork",Nam@x, "-CL"C('D Isth3 j"new Vl9 @2cs Exp R((h"%Hea@derRowi, ,*rst4ow 0@ (pRernal:=TruesAW"$ Q7=b].CokoBK%n1nUBd^(dI0 'sery nP.Cells(1, i).ValuelXuHUA= "=VLOOKUP(" &R e& ",1+` u (z!False)&S"D 2A , ? },ch\kAπ.mula#=pO@Ep L;< = eh So8FunT@e0ThisQaBk':3ZgXnNinclude non-blank:aOGO4 oFull CM Tb?=[ Uq= v5l@-s7F " !T-&[< Y' p#(D-p:al3Wd;OD e0 1:$p'' ty of Reading Written by Colin Grayerh]]8P]]   ! % `                     A@*  Set up the list boxted(ls A8 A@bled =Sample 1+ (A@    A@ o8 !d (oA@A@oPA@A@o !d$ !d$ (o !d$ !d$ (o`  ( new  (e  ((  ( (  (  (!(oP ( Co (kedo (o (clickeopP (oP& Existing Range option has been chosenray % Make book name box and label visible (st sel (st oneo% New Worksheet option has been chosen% Make book name box and label visible7 (Z (o0$ New Workbook option has been chosen the iI Make book name box and label invisible, since new book cannot be renamed (Index) ( !oP !(A@jo` Cancel button just been clicked A@ro OK button has been clicked0]](]@]`]]]]]]] ]@]x Find the output range   : OneProp$.. .G|j ? Select the output range so that subsequent selections work OK. .A> F' .$; !d; !d; Sq`dX Single column specified.' Copy the data to the destination sheet <  <A> <   . !AJ6 Insert sufficient columns at front of sheet for table' .%  .%$0!.   B@ ..  %.. !!!' %  %$0!' Determine the success condition =MAX( )' e=MIN( )'  !de= !d'  !de> !d'  !de< !d'd0Please specify a value for the success conditionA@|Hk@ %  %$0. !' =IF(  ,1,0) ( . %;=COUNT( )7(L=SUM( )7(LqH Hide the data !!(k=R[-1]C/R[-2]C .%(L;Proportion of successesOne-Sample Proportion ., Set up the descriptive stats .%       $XA .%B@H   ! % `                     A@P A@ro`XȶAttribute VB_Name = "dlgOneProp"D Bas0{14A2723F-BEB4-11D7-B659-0004768@BFDFA}J1 FEJ dGlobalSpaco False Cr@eatablPredeclaDIdTru BE`xpose0TemplateP  X H#1z).Yvy).Yv~y).Yvz).YvxMEPSPSSS<0<<<0{14A2723F-BEB4-11D7-B659-0004768BFDFA}{14A271FE-BEB4-11D7-B659-0004768BFDFA}h@(%0 `$ o% t th% `( P`, `0 `4 `8 P`<  `@ `D  `H P `L  `P  `T  " `X  $P`\  &`` *`d ,`hYY``Z .X% x%` % %```  8% pX`% %b84@"<H@x8PPPPP% (0Pl$(  N p   "  8z H h x     " " " ( "0(8` "h(p "        " ( "0 8H "P Xh "p x "  " ,  ,  ( 8 "@ ,H  ,x    " *  P X h x "   " &  " "  (08@HPX`hp  (  F 0@H P h   .   <@B    2( &`             8  P h  :p    0  ( (  0  ,P  *      F ,8  $h Z  8z     Form dlgOneProportionG Copyright 2002: Statistical Services Centre, The UniversiDerivCus tomizD ' Form ortion Copyright 2002: Statistical Services Centre, The UnCrsity of Reading%Written by Colin GrayerOp9 ulicit Dim NoOfVars As `IntegA Sa@=eHC(1 To 2)A S PCE Sub User9_activ@() p AerRangeAaCellKutRe@UreCoa?ols OSDavDchkPDq, _ o$ptB, @Ne wBookSh8eet @Mumn Summary, cboCC Ex;hkNxalSiAN @_MaxMiXEqu &GAeBrBLesstxtSucTri@"TJ , Valu@F@DCIHH'@t up t`Kl O box"Ca2InitAps(cmn,Aqc;Put%Go~L'&I)sc 15ho5xesiseOutpBHref EndUǁ_W<_Ch! dWbtnOK.En Az(.Text <> ""@! J_Cnk Sj DR g>d .IsNum`c(G )S7#-??F/Bg:V8isi)7fra$i.Not!d2lblMean6SizeH, 'H HGbBHp-"_ LJ{P&|U A@!YBJ'y@S| % has be|chP' Make0Zok nqVap8label vC,&WorkbpoZ3 +/&$@4PuV, ` asQv    ф %; okOr## q  O in4, sin`new!cann0Ebe red_mC9o/<_BR`nHelp'bGetQ Me.q0o,03ՠ"`BIPIf Is@thWitq0Bpw!W0lect so0at subsequ sec\s w`Xp*.pSR('GC @$= 1W^iu.qs(3,= -4txtTrials.Text .Cells(5, 2) = txtSucces End WitBhpElse' Single column specified.BCopy the data to estinatio4heeReDim Vars(0 To 1) As I@ntegerTCall ItemsInBox(cboSample ,9) 'UnStack(), DummyFact or I, ch k[DY.Valju,Fe-1'Msert sufficients at frBoof sr for tablANoOfCs1*Set  ToIn0= Range(DS1,, _ +}).EnptireL.!(xlShiftToRightC,K 2 G/ W .Offset(0, -}(-(6C L ength CuDrraReg@.Rows.Coun1@ T!>2T4DZI).0Addr˅%' Determine¹sCӀndiA If OptMax ThengE8Co )"=MAX(" &Ą1@")" %oinIN ptEqual< A炂a <> "" "=AQ/Grea'K~&>se&Lw8?>"P-Sf(one-sЖ>dM?:two:%T Insert culPd WijU2aXasృqbasic9= .Cells(3, 2)f.wN2 34 5Q(P1).aFwaC(R ,%#y@?{PP Now 0ot de@frommT#/"a|- CDbl( F) / 100= Abs(Ap1.WorksheetF(unc.GIn$v(/ y, |1)6bQɝ' One sa(see ArmitagBBerry p.120-1FRd-  AAAHBw418=d'`c-a5m!!!D N#'@ i r!_tUseF dN2`P Skk 9IF(g=0,0,?P/+Dd1)*FINV(" _ & Str(Prob / 2) & ",2*"N1-R+26)))" Selection.NumberFormat = Si,gF(%Value,s)LOffset(1, 0).=*qula9"=IF& P]=1,1,e1)/ +zr/E;YEnd IBfMIf Ncl ThenS' Use method 2 of ArmitageBerry pp.121K A]C5*eR+RZvAz^2 bk -]LccU^2HalfWidth"SQRT($b )^2-4aBM*Diff&B/( ǹ4?CB4]? Gng?Z@SimpleZ3Zcf`?Y*J*(146)/!ZH,,BE"YBthYB' Z statistic Zz(ABSb#B+a9TestB$"-0.5)젉/FDF FElseh' T wo-sa[propora2sH@Paired/ ' Skip over counts!0dPMerences in row 6(+wx!+? !Smean w/%P2X OQn./q1D_Addres??I' 2  (upu6'NoQsuc0scSC 1 a}fai|lu@ pr..Cells(6,._ P se SL3)p nP"61bN25"'WQUnwXrSQ99-#b$S[[B-v?$ = =e"unps"r9"o7j79Q1*kQ2)Ppeq,SPccNȀPooledP [\BR' QY !1BCQ'`e P g(1+ XK|tS0V5 2?W?W?W a1w ! {w|wp=߇ =P2 & ",0,"pZstatx )" Selection.NumberForm= "0. 00 ~Address = p&' P-value, one sidedsOffset(1, 80).Q'ulav"=ROUNDUP(1-NORMDIST(1,true8),4xydtwoTdd)*2f'2-twice 1vH:End IfB0With' Finally, prettify the tableBSet Dest A@$H.Current8Reg@ IEntireColumn.AutoFit xlRangeGClaPssicT{, IFals( $ells1).Font.Bo\ld@0!CZI`talic  SSub           0 @ "H P` "h p "  "  "  " ,  ,  P ` p "x ,  ,    " *  P@    "   " &   " "( P X ` h p x                   (0 X h Fp           8  X  x      8     0  @  P p  x       4    <( h Bp     2 &Hp x     8P :X 0 (2H Pp x0 ( 0 @ 8P 0  8  ,@ *p $  , * $H p *x *   ((P,X  $B  8     Form dlgTwoProportionG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerh]@ ]h Po@]]   # + b                       A@ Set up the list box A A@ A@ A@ A@A@    A@oA@A@oP !d !d (o !d !d (oxA@A@oX !d !d (o P !d !d (oA@A@o  !d$ !d$  !d$  !d$ (o`  !d$ !d$  !d$  !d$ (oP  !d$31z).Yvy).Yvy).Yvz).YvxMEPSPSSS <0<<<0{14A27243-BEB4-11D7-B659-0004768BFDFA}{14A27200-BEB4-11D7-B659-0004768BFDFA}  (%0  `P `T % % P`X `\ `` `d P`h `l `p  `t P `x   `|   `  `  P` ` ` ` P` ` `  "`  $P`  &` *` ,```Z .X% x%` % %``` ` `" `$ `&  ( % * % , % . % 0   h P ` `     %8   %bh 4@"<H@hPP@ PPPPh P x % P  P P(+<  N p   "  "  8 `        " "( H "P(X " "( "( " (0 "8 X@ " X " Xh "p Xx "     "(  0 @ P `  p    !d$  !d$  !d$ (o  !d$ !d$  !d$  !d$ (o(  (k  (  (o  (  (  (  (  (  (  (  (  (  (  (  (  (  (   (   (  (oP (o (ox (oX (o8P (o& Existing Range option has been chosen% Make book name box and label visible ( (o% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (oHP !(A@jo( Cancel button just been clicked A@ro OK button has been clicked]](]@]`]]]]]]] ]8]P]h]]]]] ]8 ]p ]  Find the output range   : TwoProp$.. .G|j ? Select the output range so that subsequent selections work OK. .A>' .%Sample 1; !d; !d;=R[-1]C/R[-2]C;Sample 2;  !d;  !d;=R[-1]C/R[-2]C;q0d(2 Unstack or copy the data to the destination sheet <  <A>  A> <   . !AJ e<  <A>  A>$+< . Simply copy the visible rows of the variables <   . !AJk6 Insert sufficient columns at front of sheet for table' .%  .%$0!.   B@ ..  %.. !!!' %  %$0!' Determine the success condition =MAX( )' e=MIN( )'  !de= !d'  !de> !d'  !de< !d'd0Please specify a value for the success conditionA@|`kX %  %$0.( ( !' =IF(  ,1,0) ( ( %  %$0!'  =MAX( )' e=MIN( )'k` %  %$0.* * !'" =IF(  ,1,0) * (  %  %$0., , !'$ =IF( =0,0,if( " =0,1,0)) , ( %  %$0.. . !'& =IF( =0,if( "  =1,1,0),0) . (k  .% %;=COUNT( )7(L=SUM( )7(L=R[-1]C/R[-2]C7(L %;=COUNT( )7(L=SUM( " )7(L=R[-1]C/R[-2]C7(L =SUM( $ )7(L=SUM( & )7(Lk q  Hide the data !!(k Paired Proportions .,d Two-Sample Proportions .,kp  Set up the descriptive stats  .%   A .%B@H   # + b                       A@P A@roH @ Attribute VB_Name = "dlgTwoProp"D Bas0{14A27243-BEB4-11D7-B659-0004768@BFDFA}J00J dGlobaBlSpacoFalse Cre atablPr@edeclaI"dTru BEx0pose0TemplateDerivCustomizD ' Form @ortion Copyright 2002: Statistical Services Centre, The UnCrsity of Reading%Written by Colin GraHyerOp9 Aulicit Dim NoOfVars As I0ntegA Sa @=eHC(1 To 2)A SPCE Sub @txtSuc*sValue_Ch@ange()End UserE_activA  erRaCellKutRebreCoa@Lols D\SDav@QchkA]Dq, _ o$ptB, @Ne wBookSh8eet @@Zumns OnlBSummary cboV, 1s\2BL oMaxBMinAEqualBGerLes" 5f,iTri@Dl@`i %xPai@g"<CI'B'`Vt u(p t UlX b$ox"Ca6Initzs(cmn/A@D`/Put#)`QoL$&FIor:=}? \1_ 3ShoDxes !,ise0OutpQWre>fKJLJM ffL_C@ykf?&Kq  btnOK.En(.Text <> "" A{By9T" & ͊ $r_$le1$$v%$1$G_%@%c2%?!63&J/o5.D/ `` z% IsNumuc(")Y")'K|+/ss2d ?q xt ] ` e4E  ?2 2S!>W*ss/ o =?b 6Gtf^.҈vgIf"WMlNoteFuotwalblYVisi k2.oӅa1oojefgBvObE [Rfra$Grs;i<lLMean_ Vize(i Y0g+cdiFH !1' Fi@the output r!bSet N= OB(A,`,A+F,fb, "TwoProp"If Is NothATh@pt S}D" pSary Ab' Select so0at subsepquen@4s wph OK.uCallsC #4= 2Wi0.Offset(1, 0.Cells(2, 2)"Sadmp`1"73#4sTriP.Text4wtB5"=R[-1]C/`2]C 3 2?( 2 2ob  S  P 1[2Eb'PZstack or Pcopy d@Q t! e dSuqc%OneJ%ReQZVars?;[#ItemsInBox(cbo9, ) oBy,pAUnŚ (QE, HBe ,kCa.AqC9Cs_[*@FJ_Z`/o5s/0N۹("2P1?ip3y ro ws ofva`3@s@ ;WTIf u'}usuffhici1HcxIf.r0 cf+ta0 FY{=ú(YHs51), _E"A)+`J).Enti.r25.(xlShiftToRightF 1)?dO5B:= C(U0, -) -? uSd[CuBrPstReg0`.R".CounvU1 4`@D3s[_ ccS,})`.Addre ' otermine*scP,nsz9rOax9T}= "=MAX("( & 1")?[>p"IN  A aj <> ""}= @d nU ElseIf optGreater And txtSuccessValue.Text <> "" Then LCondition = ">" &n6Lb@q6{''i'Hidervd0qUj&urrentReg.EntJC.deцTrueY/w2,A*OPropor}a1sC#d H3Two-Sample /d' Gupescriptivtats"Call MakeTabl e(;s;, No$Ofs,їCI, _ !N al:=, Exact:=Fa, Si |:=fa0?2.Select ButSavePtrols  , Copy/{ RX,ANe wBookShxeetOnRSummaryKcbopP `s2A>B\RrEqual䳲Q Tripy0sFrCIBUnl`oad M1r  1r dlgSummarise%ґmodMomentsBu!dlgUnstackTwoWay"OgAdlgColumnPlot*sm  N h      "  ( (8'H  2X+++  8+ +0+@+P+`+p  t ( P "X ` h  6    "  X( )$)  " 6  " R )H$)X  "  $G  8 0@P X h x    "  $G EE N" 6" "`" " ( " 0 8 Hhp  "     "       "  ,   ,P    "       !"#$%&'()*+,-./0123456789:;=>?@AKCDEFGHIJ<LN^PQRSTUVWXYZ[\]M_`abcdefghijklmopqtuvwxyz{|}~7;88t 1=z).Yvy).Yvy).Yvz).YvxMESPSSS <0<<<<< <$<(<,<0<4<8<<<@ `@ p x %`r t B `@ i ( iLH I p  I$  P %`L`J @ ` @ 77i @ %i` i2 )&  )6   `t`p`nnP`l p.h x  @ d   `$` `   %@   %Bp BBBb(4@"@@bH@ p(0Pp0@H  @ P p  X + p(0Pp0@H  @ P p  ++H^v-X, @( @$ @ @ @ - @ @ @ @ @ @ @ 0- @ @ @ @ @ @ @ - @ @ @ @ @ @ @ @ - - @ @ @p @` @P @@ @0 @ @ @ @ @ @ @ @ @ @ @ @p @` @P @@ @0 @ @ @ @ @ @ @ -Xv-@x @h @X -Xt -@x @h -d 0t @d @T @D 4 D --pt @d @T @D -4 -0 -0-@2 -(x @t 0HP`"-0:.-H @D @@ @< @, @ @  @ 8 @ xH -0h--v2BD-JX- x @ @ @ @ @x -t @p @l @h @d @` @\ @X `-T @P @L @H @D @@ @< @8 @4 8 -0 @, @( @$ @ @ @ @ (!Pr -0 @ @ " -- @ @ @ @ @ @ @ @t @d @T @D @4 @$ @ @ @ @ @ @ @ @ @ @ @t @d @T @D (@4 (@x( `* &-> 0 @ 2 0& H&h& X&X' h' @ 8@ @ @ (' @ @ 't @r '$X'p X'$(Xl @h @d @b ()((` @()P(^ h(+(x(\ ((+((L @< (3(;<-B F *0-, @ )@ @ ) (J L 6-H  @ @ @ @ @ h)P @R F-T JV N-Z V\ ^ -p` `b dd -Xlh p-@Xr-(xzj ~l - p++X.0 +@p @` -\ H `x p,hL X@< @@, (@ p,`xp-` 0 H  .H,p-@ @ - `x-`Lt-@d -`x.`Lt0.@d X. @T . `x/hj/PP (/8@ @0 @/ p-@T X0 X0 X0  X0/(0@0 1p-`x`Lt@d @T (1.Z(18 @( @ @ @ 1 @ @18  1 @ @ 1( @ X01 2 02` 2 xh2@2(x @t /   X . ,  ,   0 " 8 *@  Pp    "   "  &  8 H "P "X        (  9 ,0 ` &x   8 $ 9 & 0 &H  X @h       4  8  @ (P 2ih 2   $  (    " 6  (08@H PX`p   < ( 0C@  .`x# N#6`>    <8 *Vx ",Q    ( *0 `  h &Mx ,Q   p#  (0J@>S^l0000 08 :P0p :0    "2 H P X 0`  ":    (0 #8 H P 0X x  +*  - (@H P`h0<p  ' 2 / &l(0 . @ 4P)'(#' ,  0@'Xh pA  "   B &`&e@# 4/8P (  " :( hpx I7"@,4H8  X ` h p x  0        " P "P x   *(6  8 @H  P X`h >p ,37  (  0 *@ p x  ,     6 6! 8! H! X!  x!  ! ! $=! $B! !! " " "H" P" # Form dlgSummariseG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerp]H i]p ]Variable] ](]P] ]] ] Set up the list box A A@ A@, Put values into the box for proportion type Proportion B@^ Percentage B@^Count B@^ (r2 Put values into the condition box for proportions< B@^<= B@^> B@^>= B@^= B@^<> B@^ (r    A@  - 9 ^      v                           A@"o@  Display the variables box (A@dX0 Hide the variables box, and show the factor box (''vA@kA@oR Variable list has just changed, so check whether the OK button should be enabled. $ '   2  (A@o8 v! (oL By list has just changed, so check whether the OK button should be enabled. $ '2   2  (A@op@]  2  '2 Disable all statistics except CountAll and Blanks  (  (  (  (  (  ( ( ( ( (kPA@o@]  2  '   (   (o ! ( Adjust width of dialog  !  (dP !  (k0o(0  (op  (  (  (o& Existing Range option has been chosen% Make book name box and label visible ( (o8% New Worksheet option has been chosen% Make book name box and label visible ( (o0$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (op !(A@jo Cancel button just been clicked A@ro OK button has been clicked]0H`]x]]] Find the output range   : Summary$.. .G|j   & Get the ids of the selected variables <8  <A>kP2 Unstack or copy the data to the destination sheet Position data after the table v 2 Unstack the variables by factor 2X  A>  : If no variable specified, assume first factor is variable<x$+<kd. Simply copy the visible rows of the variablesk B D '6 G 6 F'6j <   . ! 66$J' !$X' G 'j Set up the descriptive statsA4   - 9 ^      v                           A@P" A@ro / Sets up the table containing the summary stats]]]](]H]`]x]]]]]] ] @]x]]]]]] ]0 6 Insert sufficient columns at front of sheet for table .. A@>  0  .%(' Insert description of each data column    %  2 & 6 A@     ., Z 2'8 8 : 6 Check whether a column already exists for this factor 8 .%! Z$& Insert factor value into it Z$6   8 .%('8 y k 8 8  $ Insert a new column for this factorA@> :  ': Z$& :  .%( Z$6   :  .%(k Z  :  '2  D &A@B k  F *A@B   2  .%  2  .%$0.kH  !N 2 'RC[ ]/SUM( ., %)*100'L H LA@B k  !N 2 ' *SUM(R2C[ ]:RC[ ])/SUM( ., %)*100'L J LA@B k8 G L 6A@B j G N :A@B j  P @A@B k  R FA@B k  G T JA@B j G V NA@B j G X R1)A@B j G Z VA@B j G \ R3)A@B j G ^ \A@B j  ` `A@B  b dA@B k  d hA@B  f lA@B k G h p0%A@B j 'n_ !d n $j' Gxj $ $X'  d r d$)'L % LA@B kkk  !''n_ !d n $j' Gxj $ v  $ x'L !r Proportion L z'L j ' !re Percentage L z ~'L l 'd Count n 'kp      LA@B k80k( !d !d('n nG !d'nj !d n $ !dA@B kk %PB@Zolum  ' insert works will a full sheet.k. Delete last column in worksheet if it is used0; Following If statement added by CJG 19/3/03 to ensure thatort by( Finally, prettify the descriptive table  - Delete the first column if only one variable$.!'< .!B@Z < $0..k .!.. .!B@b %Convert to values and delete the data .!. B@  B !B@d` Hide the data !!(k(o P ] ] .!'r !.p  p B@ r $0..o 3 Adds the column containing the specified statistic] ] ] A@>  2 .%(   $$.  L$Z? !$' $=G= 'j  2 .%  9d` 9LkP $(5 $9d  9kq  2  '2 o I Splits a column header in the form ColName:Factor1=Value1,Factor2=Value2 into individual components] ] ]0 ]H ]` ] ] $Z' :'n n$ No colon. See if there are factors. , =' 'd ''khd`8 Treat the string before the colon as the variable name,% with the factor list after the colon  n $$Z'  n $$Z'k'2 # Find name and value of each factor'n_P  n,$j$Z'$ $Gxj 2 '2/ ReDim Preserve FName(1 To NoOfFactors)0 ReDim Preserve FValue(1 To NoOfFactors) $='   No factor name specified 2+& $ 2+6 d0 $  $$Z 2+& $  $$Z 2+6 k FactorNames = FName FactorValues = FValuekoxp chkPercent.Value = False chkCumul.Value = False/ a different factor is selected. CJG - 18/3/03e H Following 2 lines commented out to prevent these boxes being cleared if" !!N !!P!  # `# ! CJG 19/3/03G Error may occur if InsertColumn has reduced the number of data columns":Attribute VB_Name = "dlgSummarise" Bas0{14A27247-BEB4-11D659-0004768@BFDFA}J02J dGlobaBlSpacoFalse Cre atablPr@edeclaI"dTru BEx0pose0TemplateDerivCustomizD ' Form   Copyright 2002: Statistical Services Centre, T he Un@rsity of R@eading%Written by Colin @GrayerO@ption rlicit Const DefaultSigFig"sF4 CExtraWidth@160 str6V@D9"n Dim NoOfs As Integ De@6n8"Rangǀa ,umnP vH CurrFLoBAE3&@FactorK Puw Sub UserAk_@ $iv@()>  'dt up tbli box @Call:itAs(cmn:D@-APut0EoL@p lstPBZ By, 0:=ð ' @ valuinto)Afor propor€typ]! cboP.AddItem "@9erc- agaCountIndexH`H3condios" S< =>;Z< Ina`IeOutput[ ref0, opC"Ne@wSheetBxookkore!trols" FSavchk!S"G a } _ 6C%U, QW,AYa@@NonBlankumcbMeanStdev"Total|,  TBC ST@MaximumMingedi Qua`les1 SkewXnes` SCVP^i"dǡchN txtFpOr) bCumu` k0 End:b!3_C`ks6If5nA ' Dis@yu…vd]sM 8.`VisibbvG 9L_ChS]Ez ' HideO, a showfYif4zf= F`By Gi 2IfwGbbVahpas jPad, soeck0 whe bOK t`quld@ be en! d. 3^NumberSelected( gbtn0OK.E3p((> 0) Or pA3'ϡ8'Byb<.Vi ByNger!B= By0c%O<1= qa Only[l@T@ = (180 A5 Nozt(kE+rA( sUs except~A@;^ Q^Q Bp^_ЙUqbOL2d_\gdR@R ,5HW   T  .L1 DwN66'Ѳ' Ih'd#s '2]b$s!, 5s22@/llow@ 2 @aвcomm``out prevD @be!&c7@ icc' a diffeaB kis stY. CJG - 18/3/03'P< 4 ^?w!S2fra#|pyalue ' Adjust width of dialogIf chkAdditional ThendMe.Wf= + Extra.NEls`-0 nd If; E Sub Private Percentiles_Click()%etxt.Visible = 5aropor{00 0cboP qConoptRange'istin4g   has beenD ostB+' Make book namAx aalabel vRC YWork N@ -Trlbl3NewSheet4 s4B4=\4BV4B]|hinh, since newscannot}( revd|Fa%w8gbtnHelpGGet_textLIDy Cal ( butto\n [eU`nload OK, OK Gf Dim i As Integer, kjun fDatar`FFactor()ummy@0 To 0Op"!Lonb' Fizthe output rbSet Dea`OB(@S`oX,n`s\, Dra,@Lf!b, "Sar )' J !id s Asele@cted vds3 ReA7! (1) )`Call ItemsInBox(lstb, AՆ' Unstack or copyd ? toc-(' Posib0aftert b##By e"Bs <"" by f& %1tPtBy, cV /p$@'@~ noV specified, assugfir` x is P-1P (=T U(' Si0mplyWU row%?%2%(@9h9mnIncludeColumn3 + ~cfaB0S[P O`&m~n.U4nS!)(a+e, DwEW),qC+J.Vap, _G4:= SigFigs(B 9e<==@Default$RBPKup4criѠOve p7t+MupHutSavntrolsGmm`BseQ"O4MPPl0DBBy, C1CountNonBlank#p0ricMeanStdevTotal?# Ma ximumRMinesQuahkSke wnessSSbCVbط'.0!zyOKu Cumu0!8U*$!%s %W@ntaTpJ"y&%-Fj}.mꂖPrc`:tsbaom DqStr uNxumbPdІ ForaPS> lcFLqH#Mb Nsy1\cH mF5d l 4 7A) 5r.1Head?c<kOf|fsKP}[O 1 Ke0s2 Bunsert suffici*Qes at f0ront1B for table Set DataColumns = DestinationFor i\1 To 2HnInsertj&Next i.Cells(1, 1).ValuestrVaLri4' R descrip of each d c, pNoOfO n ErrGoEndOfLoop 'CJG 19/3/03'may ohccuxfG, has reduced the numberOMs'Call ParseHeader(.Offset(0,-, _R"Name, vFactors,  s)&i + c@b AVk@B{&AFound Fals,jk CC t ' Check wDheUr ax alrLy ex@ists f@rthi> If=j9"J(k) TheC-C%Ơf vinto i. VR?eK/C&STruSExit @V IfjFNo@3C>a newE0{.n(>BDUi Po)@To 5: ^ kq5-"-kbB:Curren!4 Cb4chkd SAdd& @pSummrB lanksCmulaB  Non %C  5aERang(O82, B !s NPerc@0*@2.,-) @"RC[" & d& "]/S8UM(a 7ress(Refe@ceStyle:=xlR1C1)`")*100" .=d @or, Q Stdev", b i14 r, bMinimumc/QQuartilesOBLQ, 53161)6edi MaA[#Uq3~ax/n,MSkewn0F0> @ $OmmKurtosiPL(SS lCs @/UsmMsV/CV hV3Tat:="0%!V&&PoQ1Do SField(t$xt8.T, , " "ֹ '"" "IsI(4R= ` >= 0 Ak<= Pk >_`d&Hr$/p0&!4%"p !>a `5PropoFoCo= cboR#"-⛮"W"9@ "p"h" Formula = Prop@ortion1 & CondDecimalNumber(Va0lue),d2  If cboP.ListIndex0 Then-0'+ &39Header|str0Summ^Else\1\ercentage?\}4'g>g!'wuntaCo E@IfAddColumn )x& "@, E, AsArray:=Tru PLoop mtxtOther.Text <> "" mPosInStr( , "(")H4 Len É ?Left- 1), P36' Finally, pre@ttify 9 descriptive tablCN@-NoOfVa@rs < 2?'@ Delethe first c5if onlye variC rDestr 256m3rl =qnA  sit is u_`bG >(@ )l5`HxV=9 >!8_P0D*?.(xlShiftToRightC,=6AS%%"(By1gAs ##, sx_ `*OUopWt4jpFa0, _\a' 0 s[TWco in+]rs>fi`+a,0i>c B2A:O2Th,is iIntege@c^4Y.Cell`s(1, K`)>.RG0}2@ i o 8& G#A = AllIn(s(2p, i)9 = Replace(Trim(u"?" le+o<"y(,x2=GC9'= "`&9 With*2i +  CC.d B8 (u/!=`IsMiss 'g) .a atSigF at(3 , Ch/ #Y z N1i'(_ATAP`$#+GAeARefhN8ame3C>ByAA.Facto `Dd52s()3)' SpliPa`htinBfp :I1=1,23m indi@vidualPmpon@qsDVnzqCs i2 F! F Ѐ/ SP ?cm =@@(s:o/'KAon. SeevXa0fBs G3b,")D0 Or=Nq0 ""2  U=kL5 OX@Else ' Treat the string beforeDcolon as0variable nameB,with@factor list after*ZColum$nN@ =yim(Left(Header, Pos - 1))/FRs,Mid +++End If6NoOf70If <> "" Then 0' Fik avalue of each j#P= 1DoÅ#This2WNextFiel d(>q, ",>"qO P Exit 1 n '&ReDim Prese rve F(1p To YW V/A C2:In0Str(07="op@ 7 0 ^'@$DY specifiedV P1s(0@ "" 0 ) C%XTrŭ "" And IsNB()unEC;$E+ *n + 1EAfNext xB(&9GB Exlse&E/ . EP} Va  x1xMEP<0<<<< <<<p #DIV/0!L%+v `@X )x x%`pons. l2: S% hThe %+z `@ ''')x 8%`h dp% `%`| X`~ P`H` @+ `<@8 N)x X%`\ HXxt H0xHl  ` pp` n@8`xH` p` ph` p` p` p` p` p` p` p` p` p` p` p` ph h LhpL @< h@l   + `@H ai P@XxP8 X0  @ @O O 8X @ @ 8 (PH X 8H Ht(H X (X @T p  PO   LO H  < ,  H @  XAp6  l  > @X N    B ( <0 6p   ! ; " 0 @ H X h x   B  @ 8 (08@HPX  N`   ! ;  , 8 h     < F 6@ <x  0 *.8 @ B H JP 8    "(8 ,@ px  * .B   4 4   rՒqian@ var@ce0"[_JIIAeLbResidSumPDiffSq' U,seAc COUNT toterminfber&+h @""=})`>`3c{c`' cfqc"=9&k-  ",uala b.= D0l+ d'2`r!4o fa)y d*B K!*Crr' at:is point,!1A.AsGBqu@s, b!e, whishould be zero , `may notAexactly@cauM!$esŶCMttak0@o acctC<= 1ʐ''b empaWnhas oZi3Ke= (5- *L) / (n - 1/3/MqMnaStMeRrMRx  :0 (vp     x Form dlgUnstackTwoWay>G Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerh]UnstackX5]0, Set up data area box with current data area A@/ Restrict output options if protection in force    A@2 Restore certain controls to their previous values   # X                &A@opQ Resets list of data columns, and puts the list into appropriate list/combo boxes+ Set up column names from the new data area A Initialise the lists A@ A@ &A@o Variable list has just changed Remember the order of selection A@ : Count the number of selected items and disable OK is none $ '   (  : Set option to put column names in unstacked column header (ko$ Column factor list has just changed Remember the order of selection A@ o8P! Row factor list has just changed Remember the order of selection &A@ o% Make sort options visible if checked   (op (oP (o0P (o& Existing Range option has been chosen% Make book name box and label visible ( (o% New Worksheet option has been chosen% Make book name box and label visible ( (o$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o@PC Help button has been clicked. Display context help for this dialog !(A@joC Cancel button has been clicked. Exit without performing any action A@ro` OK button has been clicked]]0]H]` Find the output destination     :  $8.. ." Specified destination is invalid.C An explanatory message has alreadly been displayed by OutputRange.|(k & Get the ids of the selected variables <  <A> $ '2 &$ '+ Get the ids of the selected column factors 2@ 2  @A>k0( Get the ids of the selected row factors  4 & 4A>d4k Set unstack options G 6 B '6j G 6 D '6j  6 F '6  6 H '6kk G 6 * '6j G 6 , '6j G 6 . '6j G 6 0 '6j 6 2 '6 G 6 4 '6j G 6 6 '6j G 6 8 '6jkH/ Unstack according to the specified parameters. < @ 4 . ! 66 L NAJ3 Save the values of certain controls for next time.   # X                &A@P Get rid of this dialog A@ro (opo G 6 '6j WAttribute VB_Name = "dlgUnstackTwoWay"  Bas0{14A2724B-BEB4-11D7-B659-0004768BFDFA}J04J dGlobalSpacoFalse CreatablPredeclaIdTru BExpo se0TemplateDerivCustom$izD ' `Form  Copyright 2002: Statistical Services Centre, The UnCrsity of Reading%Written by Colin GrayerOption ulicit Co DefaultSheet~d Dim NoOfVars As IntegPDF Sub Fr3_C@k()8EndA UserC_activA ' 0CIfǶ> 1AnbTaA'AQ*%Ju hfq_ G.1uxV4If1c` By]s' fG`XBp? ( L O%O%O% nO%t?ru^VvMapke sp^tei siq`nchecDkefra1."V4= (db AJ%0Z^\p pExcept"ɂp\c!pt$jo_ce2 AddvnWExY{ =!Obech?' "bp2dBIlabel vC!txtWolbl/&##Ez, ` as  /O   c2=  okOZ  !  2 !Wc in4, ѡcannot b3??5P$o?_TiHelp,! t൧!ed. Dis y 1ext h t`qd෎op͐ (Get8Me.q@ID w Cancel C 5tbǡ per` m5any it Unload M!OK\iZDinpp B>ِ `kOm Options As Integer   ' Find the output destinaSet D& = OPRange2(optNewBook, Sheept, _ztxtWorkb+@Name, s0refW,r`faultL) NIf Is Nothing Thenq' Specified is invalid.An explayory message has alreadly been dis2y)by%Ex@it Sub-EIf' Gids of@select&variablesReDim Vars(0 To)oOf)Call ItemsInBox(ls6t$,NoOfFactors@nNumber&S By Row CarrD [4column f56D6@y9-> Bw>By, C3f_row *BMCh2 N3P,BS, -lseBK@ O0 9unstack4chkCB2hs"efy+ cmnIncludeh5dhSortJueb "Byc  %" ((HC&! 3%ÅHCounc,"%`Dupl` "oc%ew#,Add~`Ignore?"W0A9La>s[%@   ) @     "  0 8"H` h "p  Fx <) ( "0 *8 Hh)p  "    "    "  6   0H `p       0 8 " @ HX p " x ,  ,    "  ,  ,@ p   "  *  P  0 @ " H P ` " h &p    " "  n_!!!T 1D z).Yvy).Yvy).Yv z).YvxME SPSSS< <0< <<<<$<(<,<0<4<8<<<@bv2 l (T `@h @X @H 8 f 4 @0 @, @( @$ @ @ @ {r 0 p @ @ $@ @ @ @ @ @ @H @ X` p`0 &t '<#N/AH (p@.#  ,( &X &h x 9  &   >  0 @ " H @`                  0 8 @ X  h  "H    % %  (  @ %H %` x      %  %     %  % ( 0 H  ` %h %     % %   8@X p%x  (    ( 8 .Hx  %   .(@ Xh  x   " d0(0X L0  80 H%h   N,X @  P%h x    6R  N ` x "\N  @  (08@HPX`hpx $$   , P` x        (H P X ` 6h     $ @ P X ` h x   6  008 P px2        (0 @ H P X ` p     H ( 0 H ` F$$06X     P Form dlgColumnPlotG Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin Grayerh]Colour GradationX]]]](]Po Initialise the lists A A@ ` \B@^ \A@ bA@ fColumn Ad fBar Ad fLine Ad fPoint Ad fArea Ad fPie Ad fRadar Ad f(r    A@ \    f b \ v  A@ A@ z!|9 Workbook is shared - must create chart on a new workbook ( ( (ko 0 ~ dC@^ 5 +Xqo? Check that the number of selected items in the lstXvar and the6 lstYvar boxes is non-zero, if so enable the OK button b$ 'V V  (o \!r'T1...n selectedd \$ 'TkxopX v! (oP $ '2o0 ( ! ( ( f!rKT ColumnKT BarKT Line (KT Point (KT AreaKT Pie ( (KT Radar ( ( (no ! ( G' joX& Existing Range option has been chosen% Make book name box and label visible ( (o% New Worksheet option has been chosen% Make book name box and label visible ( (oh$ New Workbook option has been chosenI Make book name box and label invisible, since new book cannot be renamed ( (o !(A@joX Cancel button has been clicked A@roP OK button has been clicked]]]H T V& Get the ids of the selected variables \ A> b A> v 2 2  A>k(   A \    f b \ v  A@P A@ro 9 Plot series on a graph from stacked data (for filtering)]] ]@]`]]]]]]]](]@]X]p]]] ]0 ]&t '<H ]#N/A`  Choose chart type' f!rG f(rj f!rKT Column 'z G |'zj G 'zj Column Chart'KT Bar 'z G 'zj G 'zj Bar Chart'KT Line 'z G 'zj G 'zjd 'z G 'zj G 'zjk Line Chart'KT Point 'z G 'zj G 'zj' Point Chart'KT Area 'z G 'zj G 'zj Area Chart'KT Pie 'z Pie Chart'KT Radar 'z G 'zj Radar Chart'nP Find the output range $   :  $. G|j 'T 'V '2 2 ' Factor(s) specified. Get their names.  2 G ,'j  $$' k( Unstack using the factor, but no carry. 2  2 $ +  V' T  An X column is specified.$$' Unstack the Xdata by factor %  %$0. % %$0. %  %$0.  'd@      !   !N $J'k 2 set up string of Y column names, comma separated.  V  G ,'j  $$' G Replace blanks with SmallNumber to prevent them being ignored by chart !.  ! $!G  $(j  Hide the data !(  z  Make pie into doughnut 'zk  Produce the chart z       AG Replace temporary small number with #N/A to get rid of spurious points   B@oH (  &,28>D2Plot " 9 Plot series on a graph from stacked data (for filtering)] ] ] ]8 ]P ]h ] ] ] ] ] ] ] ]( ]@ ]X ]p ] ] ] ] !l%BB@H !'  pick up its name n z9z9p& Copy unstacked columns into the chart !P!'    %!'   %$.  t vC@rd t5B@Bk 7  %$. 90kp 9`   Line Chart  Point Chart 96  98k z  z   5(  5(k  Suppress lines in Point Chart 5(kphq` 9~  of  5! (d  5! !d against  5! (dk  5! !d by  5! (dk ,'   z 9kH 5!( $(Pie charts dont allow fiddling with axes 7 999~ 54! (d 54!(kq 799 9~ 54! (d 54!(k@q8 05 5( 5(q z  z  B Tidy up duplicate series by making them the same colour and style 5! 8  7! 87!@ Duplicate series name found. Copy colour and style from j to i. 87!8 7(8 87! 7( 87!! 7!( 87!! 7!(9')Suppress legend as it contains duplicatesy0k( 8 kqo       !   0 * F 6 !N $J 'Attribute VB_Name = "dlgColumnPl ot" Bas0{14A2724F-BEB4-11D7-B659-0004768BFDFA2}J06J dGlobalSpacoFalse CreatablPredeclaIdTru BExpose0Templat@eDerivCustomizD ' For m Copyright 2002: Statistical Services Centre, The UnArsity of Reading%Written by in @GrayerO@ption slicit Const strByqour|Dd !on@d Dim NoOfFactors As Integ(XVaTYRChartTypeL@;(0 To 18)ShowL in@Boolhean/P@b@d @Sub Fr2D_C@6k()AE ndA Userea_1ivC  '4itia4li@t@Yts CallBs(cmnD@APutM@EoA4box lstBy, 9CM:=@ Xvar.AddItem DummyAA P _B/3@_T+(cDboF, "C", xlCCl[.e@hpU"Barb"Aa?"_J Point_;"<PiexRad$%"cI!.AIndext0 9InVOutputRange ref, opC"NewSheletikG e retrolSav9 { 7_ @^^!Q,bXchkcd`cked, `100Perc":r i _W If Act@Workbook.MultiAEd`&ng` '  is Fs@3- m^ Zce a new w #+A".Valu&~B2.EnH̀3RAIf zBs D:, )2By TextXrSpngsC8odeH\," With OqEG29/Count - 1)`/Paap%>Y`V!^A 2' Check that@e numberuselectiYs @t`st1+ ae;D ^jp#non-zero, if so eOK to't0s` NSt(As#@btnOK (> 03 Q q1pE:1c}= 01'1...n eE2I S 1, }p@By  By.VisibBbS7hAR !Q Ս$=  By IHe MH AN[ VE ?Pd0b$ CA b'C~G1'P{2Qx"Q = 3a yta^ R4QwB"5!puoo "6'bw Cgk10o+d+ 0ocX10?Notu>'Hs$ ub}u9'?Łˀun!has bePch O ' MakeSok na 1Vlabel v=txtyQ lbl/A{, ysa    Q L  .   p been chosen   ' Make book nam$x and label invisible, since newXcannot repdtxtWorkN.Vz = False#lb"l# ESub Pri vate  btnHelp_Click()Get Me.ContextLIDoKCahlButton('$'  b hlas:eu-Unload;4Z$OK 1OK/Dim XVars(@) As IkgLer5 Yv F`actorRe0 To NoOfT?CMY!' \ the ids ofselected %iasCall ItemsInBo@x(lstX@,5A, $5%0IfkBy A@2s <> hD?5 @ #By,TC If7 NewXYBySeries(92utSaveArols ColumnPlo, optRang@BBSheet, cboChartTyp _#@0N XO[ch@H,aStackedhk100@Percen hkShowPoint8 \s. jP, al]^'T d4' a) sb1 on a graph from s data (for filt`ng`""dDestinatio"2YX#:sv6i|XString O!^IMYb4QsAsL!Zlea-By ourmi)* #pC#0d(sAsLab(els$(7YVar1IfBX > 0 Th enF' An X c is specifiedxX-9'(1Xdata by7GOՁPUnS(YvX, , 1Destination, _%LchkCopyD@.Valu(e, LE,@?nNumeric:= Small@berOps:=cmnDuplNDew* + SortRowsG#2Max:=257 - X0.g0Set X YRange( ells(1, 1)C.CGY2 j#Js- 1fEllseh =w{Dummyo?}> /A5+T)2u5" d+ϒsBup strof Ytns,mma separatunb1 i >s Yzp& ","E"v(e(' Replace blanks with ho to p@reventAm beignoredchar>t cg`dcurrReg" koun `?!C ""vH" Hideb Entiret.`denTrucg h!7 ACA#TypeA xlPie,M ake pin,doughnu{DP#b' Produ 92C  ( `^D, %`AM"N%c@ itle:=g,rker!hkShowPo@dw 'temporary s!_ num0_(#N/A(Bg06rid 5spurious ~p" ueA  Sub Priv9 Byi As IntegohRVaba7~ '$3{SD, c>xzYAODtalD.cu2+&"!"Plxot"^w`B"yourFaiMa&LineU=]eft8200??sTozp 5a: arion a graph fromdPU(f@filtPngmr,XYGR*Go#(fYoi4.jOmŏ%&X'P uP *TF QYuPtr/ m MultipleYsBoolea3AQY9]Z[ MincqWbl_aom +M߃ ;S6RP _ Gre@h B`A=veSheet.B#Objects.Add(L,, p, 25-P-).Sel&= S{.R'kp its BWsB1DqCVisiOnl^y3@u'p8y u#`ss otp@z=nsp؆s,Ui)(ёA8= AllI:n(2, Hp ItS0Sce I:=, By:=V] I@ a!+";ИC If Not (XColum ns Ishing) Then Set Xdata = AllDInz.Cells(@2, 1)).XValues@H End IfA .Name.Yg On Error Resua*Next !Markers Aa(ChartTitl+"Line  " OrPoint.-BackgroundTorIndex[xlN8oneGForei + 2keype <> xlPieq Doughnut.Bord8er.- -Interio +PShow]s#' Suppress lfs in aR/StyuQ]Q$ƎGoTo 0A With3A iE.HDasŊTruy.'`acMs.T & " of& Y6sEvXu""MJY_9CAagainst/&F@or?k+?!by3Mul@tipleY!(@InStr(*, ",")(0Ƒ= ,S AC5k,A@Lege= Fals@k'IFont.S4iz1NQIgnAx`b"'a{"c!s d allow fid"ddg wU a'$W .(xlCategor>y) XLAMajorGri ¶J" ieAxiB% GR)K0iz*$# _-LK 1@8w# /#"':$PlotAreaUpcWI_cq3O8OnxlOnr ' Tidy up duplic0 s@l,EmakA themA sцcolour a0=se F:߆} i ^1 d .Sbpulection vun̉ji - 1 (i)jo&' D nqf. Copy = from j to i.. po Mr0o=  lԔO /q#_Vw"oonao/ n(//"22 @xo`i'kaPt |ntq2@&Exit !D2Plot "9 Plot series on a graph from stacked data (for filtering)](]@]`]]]]]]]](]@]X]p]]]] Dim ChartTitle As String Dim NoMarkers As Boolean]]]( !l%BB@H !'  pick up its name n z9z9pq NoMarkers = (.ChartType = xlXYScatterLinesNoMarkers' Or .ChartType = xlXYScatterSmoothNoMarkers)& Copy unstacked columns into the chart !P!'    %!'   %$.  t vC@rd8 t5B@Bk 7  !P!'   Find the corresponding X column :'  ' d  $' k` 8  8 %!' :'  ' d  $' k   8 %$. 90yk 8kpkh 9  96  98 Else3 .MarkerForegroundColorIndex = xlNonek  l5 BBkq 9~  Colour plot' Else ChartTitle = "Plot"k8  of  5! (d  5! !d against  5! (dk  5! !d by  5! (dk ,'  9k@ 5!( $(Pie charts dont allow fiddling with axes< 7 99& .CrossesAt = .MinimumScale9~ 54! (d 54!(khq` 799# .CrossesAt = .MinimumScale 9~ 54! (d 54!(kq 5 5( 5(q 5G5 B@Zj : Factor is in first Y column (and hence the first series).  Delete this series7B@Z %$.  :%'  :%' 5#1HxME @<0<  @  (08@HPX`hpx " " $L$'@ hpx   ,-0@ CX Mx    A    -  &(P `px*C * (M@`hp x      :   "( @ H P ` h  p  " X  60 8 0Hx  ! ! $  ' @ '  ' ' e ' ' ' e' '  ' d'  ' ' k  % ` $@959 9 9 # Col + 29 q  kqo\Attribute VB_Name = "modChart" ' Module L PCopyright 2002: Statistical Services Centre, The University of ReadingWritten by Colin GrayerOption ExplicitPub Sub Make(ByVx Type As Integer, _ XmumnsRangTY 9X7Sng,  Y , #Factor &y7 Direc= f tuMincDoe Max XQB1k2D<@@!&"BD a(i P NoHt (FEIs`th`) A= 'rK> 0' Fi #orrespond X ד%hPT=c!, ":"<3 3F [\%_ oMid + 1{ Ef2j 2 2 P.C2j2#InaoH w%Fry|= !J / _P +Ur""/AIX"OId s@Ij)"<.XF Exit @$/Next jnP1+ Cs5LH.BackgroundRorIndex-xlNonDeO`]+ 2Vus&r !7OpCal8l .F31:=xl}ar\ ~7`riu.HasTTruP. 4"pQ&+p` { ` .T1'& "" &  97<> 7s.C{hartTitle.Cacters.Text _ & " against$& XNameJEnd IfIf ForD <> "" Txhen>= byvk MultipleYs = (I@nStr(YRs@, ",")V0V)c=cAtNot $lHasPLege=lsqFont.SizeJ10?On Error GoTo IgnoreAxes'Pie cs d allow fiddling with a'W. (xlCategory:;uSl.6MajorGri"8 6i+ 'C.CrossesAt>.MinimumScalL #© TruMAxisT=D ^ AORValueQI H"Hm3tPcE` _( U(Y:)PlotAreaH .Border.LineStyldxlNonI@.Inior.ColorInd|exEJ8% 'Byur @a&$y a| ..Delet 'ĝ is( in@pr`Y column (a@ce theseries).h'  3.SBlection(1)OSetRang%AllDataIn (Ys.Cells(`2, 1)Wpc'Applica; s(# ax)axFEach ! In^ NMi@1 '.Pointount+@ (i) - ) / (M!* 255n`@< 64C qCRed Green4 *  @B @CE 128<A (127@ I4& 92 4cB @ O O D L1aO,)&O |Resume Np .MarkerBackgr -dp3= RG$B(, 2 , ? p3eSOF7WDiam8ond 'a. + 2ShadcZ#P i@' Sub itten by Colin Grayerp   (d $  (d T   A@ K!o@- Append current spreadsheet data to Data Area]J  !d$0%'  !dG  !d,  (dj  !d    (doXC Help button has been clicked. Display context help for this dialog !(A@joC Cancel button has been clicked. Exit without performing any action A@rox OK button has been clicked]X]p]'n_  n'  !d n,$j' Gxj $ 4 Ref box contains an invalid address - warn the user   (   ( The Data Area address is invalidA@|8k0(  !d'  ' '  '"  '$  T   A@P A@roAttribute VB_Name = "dlgDataArea" Bas0{14A27253-BEB4-11D7-B659-0004768BFDFA}J 08J dGlobalSpacoFalse CtablPre declaIdTru BExpose0TemplateDerivCustoHmizD ' Form ' Copyright 2002: Statistical Services Centre, T he UnErsity of R@eading%Written by+lin GrayerOption wlic4it Pjn Sub User'@_activ@(@) refA.Text1QcmntxtCurr(E Initps( C utReMreCo6ols ESav9opFirst, NoFndard, _B'@ D% End<@btnAppend_CHk@$'  c8 sp@dsheetD d to/ ?Dim с6 As@vrBj,= Range(R).Add ress(_er`nal:=AhIf h<> ""n=& ",@,<&aY(Help (A  tOhas b e@Tca,ed. Dis`ly c AKh for this dialo[e&Get 8Me.GIDCancel,wExit without perm@8 andy eonUnload M fLOKOK5# IPosHIn8tegzOld4ejOA= 19" Do d = Ge= N`-Field()D,,aICRReQ) Not Valid_e)bW ' Ref boxDains`0 inva ac - warnG8e uSe:lrCsLength@(hMsgB"VDk@O`!DIfLoopH,ceand c hkcIgnore SHAL$u:VWBut\^^s^^Za) SP85_ (X B  .  * 8*+@ px  RR  # <$P`  Hh B2 F4Xp !x B2 6 H( %p@ tn G 1z).Yvy).Yvy).Yv z).YvxME@SPSSS@$ @ 1 `0 t p @` @P L @< @,  pHh  hp @` \ @L @< h, @  @  "  $ T Ph @ @ @ hy (@ `  bx `0xU  N h  "  $ "  " 4 0 X8 ,mXC  "  J   " J   p  " "  8  :0 p  *+   $ $$$ "  0 @ P Form dlgDataAreaG Copyright 2002: Statistical Services Centre, The University of Reading Wr 7 6  . H > @ H AP Bh  & 0    & 00 `hp x!  &  .> (^(P X x   # 8%   ( DD1%xME @<( <0<<`@ 99I) k %)< `z$`Zxk` v ` tlumn` rdard` `pA` nk`nxl" + `4@) 8' %`xetur`N vells2 @4 @8(x ( p  ` p  H & (x ( p  ` p  H `6 t`6 t`6 tH(x ( p  ` p  H `6 t'`6 tp(x ( p  ` p  H `6 t'`6 t@h (xp"(zp0P @L < , @  @ H $ J @ P@ h(  @ @` 8 $ J @`/"p @| "x X4 " $ J "((@"@z P (\ X@X X TO  P LO xXH @8 @( @$   O @ ""p @ "@ 8@ " P`p@h8XP@"  @ hxO `X @ ` b d 2  0'@ 'H @  @ @@ @ @ @| @l Xh @X @(T @P @L OH`O"@D h 4 "B (mpxH``@H``h xXP HL @< @8 4 Xp$ @ @ @ @ @`xh`(t`, p A`x`t!`, pX @   `x`xt&`, p0 ( @ `x` tX *`, p X! @ @ @ @ "Xt !d @T "D x!x!`xx!@l !`@!t@l (" `, p `x@`!t(`, px"z z4 2 `x`H"t"`, p#"0@ @0 "@l #, @l X$!`0H"$0!X$x( 8$$ @ @ @ $`, t$`, t8%  @ ("%( 0) 8%)H% X$@l x% / p0)``, t %/@&& h&&%& h&@l @l (&8 p &` ' `, tH(P^ 0)L 8'< @, h' @ 0)X 0)@ 0(@ @ @ ('( H(0) `, tP)2)`))) )P)(z P)x)`, t x) `, t )`x+X,X,d @T *P @@ X,< P*@, @ X@ (@ X, @P+XP++++z`t x,++pX!`,x,x,xl @\ ,HX 8@H @8 ,`t, 6 , `t /(4 ,  /0H --/Ph@"``. p.Xp.d @T P/@P @@ @0 @. .., ...* //( `t//P/( @ ( /H (/0z// `t 000 0`t 0 1h/h///1j 1X/xp HP2h P2X 1H @8 2( @ h2 2`t20 2 2@/`3 `2P3X @ pP3( @ `@x@341334035x 4444@x44550 @  @ 5@ 850)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58**)8 x5*58***@ 0  N :h     B@  X "` 0             U  @  H >X  ,       0     ( 8 B @ <H    ! !  0  ! a   (  0  @  H  X h p " x @ N    ( 0 8 @ H P X ` h p x        ! ,   - , ( 0 H ,P  "     C ( 8X ` "h.     $Q  P@   ( 4(^.0   >  2H(X E :  00 %`   8EQ (  (0 X 6h(2   2  0 $8 `  x     " F B  (h    - ,     (@ &h 4 $O >H$P :p<  (08@ H :X     &  *  0 8 B@ &       "$ 4 08@HPX`h /p/ $ "  < 40 hp x99 B 8 ,.P  & &( :B ( &@ ;hFf     .( 8PX h p x     B  D    ( @ >jX   &    (+  ! (! 8! @!H! P!`! h! B  p! Hx! >! """ "8"(P" x" " " "" "" " B  " F" 0# P# X#p# # ## ## # B  # @# :$ H$X$h$p$ "x$  $ $$)$$%5% (% B 0% <8% x% % B % % % % D% 0(& "X& Dp& :& &''' ' (0'X'2Jp'(B' 2' &(((0( (+H(p(,6x( ( 4( &6( ) ) ()0) 8)H) `))2J)(B) 2) &0*P*X* (+p**** * 4* &6*  + 0+ H+P+X+ h+ x+ B + @+&l+++ + "  + .82  ,02  (, *1 21 "0,"2 X, (2 .2 !+ , 028h2)3 ,  3 0(3 X3 2 2h, p, " x, T,,,,,,---  - (-0-48- X- :h- "- - -*-+.0. 8. H. P. `.p."x. .-. . 2./ &/@/H/P/X/`/ h/0x/ /+// / // / .0 200 P0X0`0 h0 B p0 Bx0 00 0 040"1 '1 81H1 P1 `1h1 p1x1111 1 x3 Module modColumnG Copyright 2002: Statistical Services Centre, The University of Reading3 Written by Howard Grubb, Martyn Byng, Colin Grayer]PH^^0^H^`^x^^p]p];=========================================================== A" Procedures to handle column names' Get range names from the current sheet]x]]      !"#$%&'()*+,.A0123456789:;<=>?@-BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^amcdefghijkl`nopqrsuwxyz{|}~t]]]]]( > ! 2 There are no workbooks open - flag error and exitThere are no workbooks open @ A@'zkxK Resolve problem if something else is activated (seems to be a web problem) zG$> B@2j !B 6 Sheet is protected. Allow macro to use CurrentRegion.F BD kB No data area is specified. Use the current selection if sensible,< otherwise the area at the top left of the current worksheet $pRange? Select top left cell if a non-range (e.g. a chart) is selected %.d .kp< Limit Selection to the area currently used in the worksheet !B!0 Too complicated to do this with multiple rangesA Just live with some inefficiency if e.g. whole rows are selected !55!  '5N5P!  '8 qH !  !N 8  B Whole selection is outside the used range, so set Datarange to A1 %!.k 55!  ': 5N5P!  '<  :  Reduce number of selected rows55N %  < %$0. ': k 8 <  Reduce number of selected rows55N % : 8 %$0.kqk !' $0. Determine location of data range $H ' Default to region at top left of sheet %!.d !! !P! d  Only one cell selected.  Use the current region !.kPkH !B 2 Sheet is protected. Protect it again from macros.F BD k! Initialise the column name array2 X'4 $H  "  $ * Set up list of column names in this sheet AJ k0 'n_  n,$j' Gxj  J $0!%'k $ 8 Set up list of column names from the standard data area $0AJ kPHk@ $H  "  $ * Set up list of column names in this sheet AJ k !'i`5 Returns True if all the cells in the range are empty]]]  !B  ! !D!  ! $L  !!'H zk k  'H i(9 Set up the column names corresponding to the given rangeG Returns an array of indices pointing to the corresponding column names]]]]]]] ]8]P]h]]]]]]](]@]X]p]  !B% Cater for ranges with multiple areas 5P!'5!''Z   A 'R & Column not currently in list - add it    Range is empty - ignore it\ 0k(     Ignore hidden columns  7P!G^ j  No data in this area'd Column has some data in it   7 R  7$0$.J %'k '  No header row has been foundJ   7%', I Check if there is already an entry for this column in the same worksheet , $` 'N N " No existing entry for this column  Z . Data has been found but no obvious header row'Z *Do you want to treat the first row of data as column headers? b $'P P d  '  R 8 This was the only data row, so now no data in this area''d , Next row after header is now first data row  '   7 R  7$0.J %'k`   7!'k@ k8 d0 3 This column already has an entry in the name array N $2  * Append this range to the existing address5G5,9j5 9kh q` ^ X kP dH 2 A header row exists - get the column name from it   7!'J   7%', k " Set up column name and range name / No name for the column - default to "Column_X"Column_5N   $f 'k0 $+ Prefix a numeric column name with "Value_"Value_ 'k  Add a new record to NameArray   , Ah  4 'N ^ x  q` \ X o@  @ Looks for the header row (last non-blank row with no numerics),< and the first data row (first row containing any numerics)." Public since is called by Lookup.]H]`]x]]]] 5P!'5!'''    Search for a header row 7  7$0.j j $H 0Ignore empty rows - Check to see if there are any numeric values 8  8$j $ 8$j 7Numeric value found in row - give up looking for header '  ! 4 Check to see whether preceding row contains headers Z   Z %$ Z %|k Z'k|k 8 3 All values are non-numeric - could be a header row 'kX     The last row is the header row  $ Only one row, so header but no data'd < The whole data area is non-numeric, so assume header row is the first row, followed by data''k8k0q(o  - Adds a new item to the array of column names]]]]]]0]H]` , $0$x 'n , $0$z 't z!'p !'v 6 Search NameArray to see if the entry is already there  4 $2 !, ,  . Entry is already present - ignore the new one|k Check for duplicate names $2 !, $0$x 'l $2 !, $0$z 'r $2 !  ; Duplicate name found - distinguish them using HeaderSuffix , $$'. $2 !, $$ $2 (. n p  l p   Remove book name from suffixes . [ n ]$'. $2 !. [ l ]$ $2 (. t v  r v  Remove sheet name from suffixes . . ! $'. * $2 !. $2 !. ! $ $2 (. k(k k ( Append the new item to the current list 4  '4  i = ArrayLength|  $2  9 9 , 9, . 9. 9qh| `oXx> Finds the index in the array corresponding to the column name Returns 0 if not found]]  4 $2 !'  $ ! $ !  Get rid of trailing !  $' k  $2 !.  ( $2 !. )' k  '~ zk '~ i B Searches NameArray for an entry with the specified header address8 Returns the NameArray index if found, or 0 if not found]h ] ] J , $0!%'  4 J $2 !, $0!%'   Header addresses match '` zHk@ '` i  @ Finds the index in the array corresponding to the column number Returns 0 if not found]  4 $2 !  ' zhk` ' i@( : Get the letter(s) corresponding to a given column number.3 Column 1 is "A", column 2 "B", column 27 "AA" etc.]  ]  ' '8ABCDEFGHIJKLMNOPQRSTUVWXYZ' 8  8 '8 8' $' 8  '8k  8$'f i 5 Get the data address in the i'th record in NameArray $2 !'@ihH  Get the i'th column name $2 !'i ==============================================================) Procedures to handle controls in dialogs % > Inserts the list of variable names into the specified listbox4 If Factor is true, lists items ending with ! first.]8 ]P ]h ]  4 ! Insert factors first if required $2 !' $ ! $2 !, $ '  $ ! + Get rid of trailing ! when displaying name   $'k $2 !.  ( $2 !. )'k   $2 !  ~B@^ ~$pListBox $2 ! ~! ~, $2 !e ~! ~(rkk   4  Now insert the rest $2 !' $ ! $2 !, $ '  $ ! + Get rid of trailing ! when displaying name   $'k $2 !.  ( $2 !. )'k`   $2 !e  ~B@^ ~$pListBox $2 ! ~! ~, $2 !e ~! ~(rkk $2 ( o , $0! Gzj , $0! !d$!' k i 7' electi o a k]X  ~ .Tag = SelectionOrder; 7qop N Returns an array containing the ids of selected items in a List or Combo Box.]]0]H]`]x]]] <'  ~'Z ~$pListBox5  4 No selection order specified. Select in list order. 5 7 Z 'Z Z G|j/Vars array is full 7$~  Z+<k d Z b' ' 5 7 7$X' + Only include selection if not already done   Lowest selection number so far ' ' kkk  G|j4No more selected items Z 'Z 7$~  Z+< ' kd  Must be a combo box5r 5r7$~ +<kkqo< Returns the number of selected items in a List or Combo Box]@]X'N  ~ ~$pListBox 5 7G N  'N j d5d'N d'N kkxqp N ' i`X$ SelectionOrder = Val(.Tag) + 1+ .List(.ListIndex, 1) = SelectionOrder 5 ' ])(Update the selection order in a list box5 $X ;k0 ) Put next selection order no in list item'#In case .List(i,1) has not been set5 $X 9 00d3 * Not selected - reset selection order to 0 ;2Attribute VB_Name = "modColumn" ' Modul$e P TCopyright 2002: Statistical Services Centre, The University of ReadingWritten by Howard Grubb, Martyn BynHg, inayer7Option Expli cit Pr8iva)Type Array RangeyAs_^rG } HZerAddress  Suffix 'o Integ_3$Sel ectedBoolean End [ Dimf()UmLength;=7A~Procedu@ to hand@c‹ n@s\PubA@e FuncBiInitA)s(ByVDummy&rSngB1f' Get rh from tcurr shaaspecifiaUe!,ensi`.,' $erwiD!Ga atmtop left ߁KGp@/!|(b @) <> "p"ύ'`$ ce!@a non-~(e.g. a ch)ed(S`iB O *C s(1, 1d'GSyt & ,' LimX: #"$$ly 6d πA#& .A~Ew=Kwawoo coVm٠RdA dHh ``wimult|ip`#"wJust l  Ahe cienLcyjb)wh Xrowj|s)WQ9 $dTh= .T+b5 -| 1U`  A%w>"\Or{`Pa Z& ' W"/s outside-,G s%vA &t@;&.*? X% 5?&0oP_oolC{<6R8 ` Zduce number@#$2$(9!$, D), Q , P  )#=p #S = H P00t=$"T4PI ${ U V4=34 Oб(C'De jmine loc!!h3R0IsEmpty):' DefaM7rrrggf %R_o8 E8` 5I>pY/F^n1)"O0{ o"mE22yC2 - E5/edLv( Ppaga0n"svePsT:=B$ ' ѤialX s2 ReaB(0 To 256C= 0U((cmnIgnore!{DisplayFirw!'uQ1џC}-Ҡ0uppHr s22 + j5a@0"Do0 = NextField(cmnDataArea, Pos, ",") If  = "" Then Exit Do NExpand`VF@Range().CurrentRegion.Address(ernal:=True End If Valid X ' Set up list of column names from the stfardd d a #Call$upCN( ?YLoop(d(Not "IsEmpty)) AzIgnore DisplayFirs[@in?is sheetsB  r.F@ow.@Entire.Hiddֆ*A @(%L) Or d cZ )hC b1s-bReply1Header`7Jb+oBgLa~O O heck1ure ldy rryI>t`eR# workjbAcp'CBInArw(z ;قexİ"  ŏ <>A1N0GO`.$B. but no obviousXVfvS= MsgBox("Do yopu wa0Qt=fǑ$Pa" & _(" :t(s?", vbYesNo߀E OV( a`Z  e= d/->srondb, sow2oP#e Gss = "" Elset' Next row afte@r head is n&first dataD*F*D)R7=  + 1;Set ThisRan ge(.Cells( I, cc), Las6t8 )2AdXdre7. (ernal:=True%End If5Colu`mnNameUHT.Valu// y'T c!# alr y has an entry in the n*arrayQ5With 3AA(cntGIf IY<> !enK' Appe@Tt rtoB%existing aCmUq  =& ",̓ 5!mCAPGoToccQRz (vx&s - gj;?b: h !' wher p [edQ = ActiveWorkbook.A$3BB ' Seaprch ªArs ee iften try izlr%yreFors= 1 To LengIfG(i). @@ThenCh' EMp@# - ignore3'on$CEx k W! aK= }aA 7L#'move af fu s{e#7C r@[" & & "]n"` "E,6E U %%QA"cD%%}%se& l&MidE%%InHl"!") + 1IH` @9&a $US / KF Next i?"6BtLtcurr!Ol@;hV8` 'ibOn Err OGoZSQE.Fd?d\ @C6q b : /Funs$onndByoך~)'sindex inScospondVx 5turns 0!wnotZ 0 ?DFull Gyy=e#D() >ACRightv,P;`< P <> E' GPrid1tratil! Lef k -hC!'!Pv'a "dʇ8V(])" .8d^0$ s(sBP rE+o@gEF0#2G00I?2F$1Ϛ<1Ues%`-`r an Lw@Ԣ2specifi0h aD1_š$`66f2, M3 3As%J|O`").iTre.(_ernal:=True3n:P-8X f(=1 a1ewe= N: `matcS'X#,t ,ߘqP_,o@_,X,Byts As String)Integer ' Finds the ex0array correspoDndx to4column numbReturns 0 if not foundDim i# |For= @1 To AuL`engthI@f Name(@i).Adds =  Then-0CBy,iExit F@unctioE nd IfNeXxt &0  # Private- GetEId(  %'lett er(s)a `given .3is "A",2 "BH7A" etc B AgAlph0abetiC&, `ResulHG mqr, jHD= ""jl`ABCDEFGHIJKLMNOPQRSTUVpWXYZD (j > 26) }Aj - 1 @ m@ / C&Mid(E!, m, 1)G CMod +vD& KjGublic EGdata aini'th redA&hfSdm ?ʼn|b  ?+J]A'=7 ' Pr`ocedu`h andlejntrolsa*dialogs ~9Sub Pu$~sPoListbox(ByRef BoxeCo 8, _#!VzOpal ByVFact= FalseV' Insertl of varitab`n,specified !`f` true, @tems eCwiK! first(Ҽ.A$!gÍIsBooleai f"$sCrequire`-M= K = (Right(zR"!") Or CommentI`#c"Headerdm/@") 1 A cridA%dLef T N`\x Suffix <>`^Yrt; & "("P $)^ (!1z)3 uM p8I@- C0Type(`)A<"]Selected.CtiZ E <@o!D2&=6S 9' NowOEb[0Qt5A d_4_4q_4_4r_4_4_4?_4:_40_4_4mexd_4e)R,/0_4!tb_4?ఊ8_4 _4or(_4 1_4q C_40i_4_4_4PQ_4 ).e_4_4ox;[y26pRodqx5MVrRange(*). m=tha0 -osf.TP< = T2 8ϛPSet3OrtV1ObjWj'Up0eIfsX oa %qA1W*Q+= (.TVa'R %(R[FUU0A_"80rected(i) Then SelionOrder = 0 |On Error Resum@e Next|'In case .List(i,1) has not been set9 1)q )If '@ Put ns  ono in l item 1?|Val(.Tag) + 1 End IfElse1#' NSed - re[to ËTы:φi: With Sub Public @ IEsInBox( As Control, Vars()Integerh'@turns an array c aining the ids of5@9^rsba 8m(bo @.B'DiXm iHkMax&Q@3.'GF inLastPosBD-= UBound(WCTiB @kFxTypePNameAh)"AQN"  ONMspecified.n&fBhW3CFi 0 To~CtYf#%uc kRnk > ' ExitbW 'a(dPis fulle(C (k!'FindColumnBy"*j)1eykC|Do While 8k <NkP= -o'MPn1#1[¢AN O%C@ L> eφ' OnlyOcludeTif"already donm' OrD[@3 ,bLowesBtnumbso farN$: E UB - -1BHI9No mor_o? ::J;l'= {pLoop=' Mu be aokboxDIndex >P; AK> 0Sޗ`= I"7z `Jda~ FunctP0 N+(Yd1k9 7}//~/~$~0AcntOsqOjroqpnqR'k(.i) Q('1)" .Teб= "wV}%f` y 5U  0H  N :h   D & B ( 60hp x -$]    B  ^  & : r 4` T n v` D r  .   d` h-x @~     (@"Hh  hp    d$o$O1#xME @< <0< < <\<`<<<< <$<(<,<0<4<8<<<@ `\@ 9) 8 % xX % tx  %x88H  %88H88H( P88H( x  ( hx ( 0\ @L < ( , (  ( ( x @l @l ( ( @l @l \ p@l X@l @8L (0< `(0, @l `@h @X @H ` tP ` t0` pX` l@\ ` tH` p0@x` h@8 h@6  x ` t` t` p` p @x` ` l` t ` p@x` 80XH`H @\ ` p` t ` p ` l @\ hH@x` Z 0L @< h8 @( ( ( @   @  @ @ @pXx  @  P@T @P @N h xL P`< @8 @( @ @ 8( @ 8@ ` Xp @@  @( z @h p`@p@ pp(p @l @h (j p X@h x@h H X @h `pT @D @4 @$ ( @  X0`0x  `@h ` t` p` lX@\ @ 8   ` 8XP L @< @: @h  ( `@h   ` t@` ph@x` @  @ @ @  @ ` z p @` ` \   z @p 0@` \ (` \ ` 0 x` t` p@x` 0Z 0L @< H 8 @( (  @ p @ @ @ @    (V88  +  8 \ <X  "   "    J ( @8 9x       " (  #  0 @  H  X h p  $x        B  D L p %x  E   ,t   B,  B h p x     D -  & !0@ H DP 4   6  H B` "  , ( ,0!`p*=x   "8+ ( B4$ 0 BX    D-  0 &@ !h x      D  4h   6   ( "0 Xhp  Hx B "0 8 ,H x ,!*=  (8 @ "H8+p  B   4 "  ! ?0 P h x    B   4 "  ( H ` px   B   @    0(4Hp(.  B  B    (@P(4`  "  H J 8@ 3H `:p     Module modSheetelG Copyright 2002: Statistical Services Centre, The University of Reading3 Written by Howard Grubb, Martyn Byng, Colin GrayerPH============================================================== Procedures to handle worksheets0 Ascertain whether a sheet with name NAME exists]`]x'  Loop over all sheets  ! $ !$H $H' yk  ' iX Get the sheet which results are going to be sent to (either stacksheet or unstacksheet) The function works as follows:3 (1) Takes the value of factor as the default name.l (2) If a sheet with the default name exists, then the number of sheets with that as a root is counted, i.e.. that are in the form factor1, factor2 etcN (3) The default name is then set to be the next in the sequence, i.e. factorng (4) A further check is made to see if a name of that form exists, if so the default is set to factornao (5) If NewSheet is true, then the sheet with name "factor", is deleted and recreated. If such a sheet does not= exist then one is created using naming conventions abovel Notes: The return from the function should be checked to see if it is null (i.e. IsNull()), if null => that( user aborted an overwrite option](@]X]p]] Count the number of worksheets with the same name as the one that will be created by default'   ! $ !$H $H G  ' j k Specify the target name  ' t e   ' d    ' ka Check to see if the name exists, and if we are creating a new sheet, alter it until it is unique $ ' t  b a' $ ' k t   All data in the sheet  will be lost @ $' . dP $ . 2 Remove the old sheet, stopping the warning dialog U thought there would be a better way of doing this, but couldnt find it easily !, i.e 5 a way to clear and reset a sheet without deleting it :( B@Z :( k0k(C If the target sheet is not null (i.e. Nothing), create and name it $: Set up and name the sheet to which data will be unstacked !B. G (jkP Return the sheet . i  !!" Put default output range into box !B ( ( (kk z! ( ( (k@o8= returns first cell of next free column in current worksheet.F Gap specifies how many blank columns to leave after last used column.] !. !$A$1 $L  .d@ !N !P!  $.ki 8< Finds the top left cell of the area to contain output data.](]H]h] . n = Create a new workbook and point to top left cell of sheet 1. > !B.  Rename the first (active) sheet (k t e= Create a new sheet in the active workbook and give it a name- if one is specified. Point to top left cell.  ' k $Zt $ . kA Select top left cell of specified range in the active worksheet.< If none, select the top cell of the second column after the last one currently in use.( & Choose the next but one unused column . d& Point to first cell of selected range $0. k %.' CJG 25/5/01 B@2z@8 specified range is invalid.The output range that you specified is invalidA@i < Finds the top left cell of the area to contain output data.]]]] . n = Create a new workbook and point to top left cell of sheet 1. > !B.  Rename the first (active) sheet (' kx dp $ .   Use current workbookd(  Book exists - activate it B@2k k t = Create a new sheet in the active workbook and give it a name- if one is specified. Point to top left cell.  ' k@ $Zt $ . d $ .   Use current worksheetd  Sheet exists - activate it B@2k k A Select top left cell of specified range in the active worksheet.< If none, select the top cell of the second column after the last one currently in use. & Choose the next but one unused column . dp & Point to first cell of selected range $0. k(  %.8( CJG 25/5/01 Restore the active sheet B@2z   specified range is invalid.The output range that you specified is invalidA@iP 8- Look for a workbook with the specified name. Return Nothing if not found] > !$H $H Name matches . zkx . iX. Look for a worksheet with the specified name. Return Nothing if not found]( !$H $H Name matches . zk . i`H9 Extracts the sheet name from the full address of a range]]]]J %' ]'  !'8   8   $' ''8 8G 8 $' j 'z iH< Extracts the workbook name from the full address of a range]x]]]J %' [' ]'8   8   $' 'x ihA Selects the workbook, worksheet and cells of the specified rangeD Needed since Range.Select gives error if workbook/sheet not active.]@ ]` $x $> . B@2 $z $ . B@2 B@HoPH=Attribute VB_Name = "modSheet" ' Module L PCopyright 2002: Statistical Services Centre, The University of ReadingWritten by Howard Grubb, Martyn Byng, Colinayer7Option Expl@icit Priva)=9wProcedurjto handworkss3PubD` FuncLExs(Asr{) Boolean  'certapwhether a - with nNAME e( Dim i%Integ% found 2 = False ' Loop o@g allC4For= 1 To WyF;.C@\If (UCaseB((i).A=)wB)=E q%Tru$@Ot. !C*AE5IfNext i[B  cQhGet (B'LSNewQAnObjecC?'  kjhich ults @are go{ abe sÁ(et@xstackSyYun)5'fœB asK@llows: (21UakAvaluefact 'defa%.2) n M+mM,n"nu\mbxBsTthataa ro"o2s caDed, i.e%!8#@#`] form 1,2 et*c3bF ) ibsset+A nBsequenc m(4 9 furr checkA made see if pn bof so!@na5,Ia ]WH*c@}"#" sleted @ Kcred.7LsuM7do@noR!-b$on `2 usRpconv S@VbNotes:bPreturn 0frombfRshould [(K@]'i@nu`(b0IsN())'=> ausKaborBw`Zbk鸞 AvwAS{(z" target?C@'un QocEd@ r3Kwi$(D4$Kc =0v<> ""5D`(In (7?\4\, &)) > 09`!>dUW + 1# Z[' Specify"%3I F = V Em7 & "&h?az -P"F22K!#%,s2>Gwec>:a0 new#f0ltG15'il S6uniN r7eC(q D~hi'n{xpaSts(!c0e Anddi>= MsgBox("A 5data fsV"{ 97lostPW_ QvbOKCaPel`.vbExclamp+ vbDCvButto.f 'RenB+C(ab) $@ivI= hnC l9B<!g it a  ' if one is d. P'&&j"aPM"`V #0aGe[(TrimR( ),w:=א' SelO_ rL%B(c'@ n"x, s iasze`hdÃ'ûA+lyaC On Error GoTo Invalid3 KCn hoosP> jbutunXew:=Lr]' qj (Z NQ#f.cy 'CJG 25/5/01R%A."4atEx-wc :v'-sMsgBox "E PC"that Xyou2i"kM2kkP /$PP20TocokkH#_oz{_oa_o2$R'~ _o:_o_om _o _otRq_ol~eEbB0j_o0@_o1_o_o_o_o_ow_o0_o_o $_oNB`peB{q-(.3G0 Is NothMj' `*av( '  exists - ~`H uPWbI   <2#ac",-_} _}  _}ie_}th`0 +_}_} R_}f_}h&H P3 !380@2is?0 Wp!h aRR p left cell of specified range in the active worksheet. ' If none, s electVtopvsecond column afterN last B currentlysusebOn Error GoTo Inval8idR?OutputAddress = ""` ThenC hoosene xt bupuneSet Rng#NFre eC[Else' Poinxo fira+^(Z)EIf&2GJ.Cs( 1, 1)lCJG 25/5/01' RestoruCJSAatgExit FunoN Z:sjBdMsgBox "_ oBethat yo*uHi" ? Public% FindBook(Name As StrPing)Wb#' L f aBA wit6h€1nReturn NotRh itu nd'@\ DimN  FEachIn %s(UCase(A.A2)v{B) ف matcheHAAEF@vA  !]#L D"c4BL4R5B?5?5 "5E5f5C5B55"+砢5= c 66H%6B@_6*kaFromÓMy'ln'tr@scjea i f`bfu aIJ a_iŶy&iaI@ntegerjhD.$(ernal@:=TrueCi)'In`(, ("]"cjfi, != Midi + @j - i`1 ` ' j <8> 0DJ= L(h d 8@!wD 0 P+ 1W T ` X X Y;%d` `  [ "%a `5B ?qSub S҆r(4 a0.'4:, a?љKdNeed`sinceJ . gs ers5/Utv1Q {2+B2B t#v=vt_+P+)6.JtXsw5?Pu$ modCommon bn&modTranslatev"modRegistration (^modRegApi&r N :h D   H$  *H$h(*8Ph*"8Xp "8 2P     0 @ P ` p       . ( B  0 8@  H$X   Module 1$ @ShellExecuteAxME(<<< < P+ p@>> i `i @i i i #i u ʐ6`pHʐ@P HʐF HʐN Hʐ\ H ʐR H ʐd H ʐl@@ Hʐp(` HʐvP Hʐz Hʐ~x Hʐp Hʐ0 HʐX Hʐ  HʐB@ HʘBBʘH@B ʘ. B"ʘ0h B#ʘ4B%ʘ8B'ʘ,B(ʐ`P H+  -@"   .@ 0@ COUNTBLANK(?)COUNT(?)+` Ii ` O``ʐ&8`Hʐ*Hʐ:(HʐJx HʐV Hʐ` H ʐh0 H ʐrhx Hʐx HʐJ HCOUNTA(?)-COUNTBLANK(?)SUM(?)ʐX Hʐ<0 HʘFBʘ*B!ʘ2H@B$ʘ6pB&ʘD B),@$ 8 /@0 h(HXx(@8@`P px8hP  %IF(COUNT(?)>0,AVERAGE(?),"")IF(COUNT(?)>1,SSCSTDEV(?),"")( MAX(?)-MIN(?)MIN(?) MEDIAN(?),"")MAX(?) QUARTILE(?,SKEW(?)?)KURT(?)QUDEVSQ(?)SKDEVSQ(?)+COUNT(?)*AVERAGE(?)^2SSCSTDEV(?)/AVERAGE(?) PERCENTILE(?,2SUM(IF(?(?)/AV,1.0)) /COUNT(?)E(?,*100&SSCstat,1 ssc-stat.hlpX at V2.0SSCstat tutorial 1.pdf Booklets.hlp0) SSC_DS_Hdrtori SSC_DS_Count SSC_DS_Mean SSC_DS_Stdev1...n PLʐT H Lʘ B*p_Stdev1. 0 h(HXx(@8@`P px8hP 8JTLH` px8hP 0HXx @((P`8p @hhPx8@0HXx @p ((P`8p @hhPx80HXx @p ((P`8p @hhPx8` M 0T  modCommonG Copyright 2002: Statistical Services Centre, The University of Reading3 Written by Howard Grubb, Martyn Byng, Colin Grayer> Contains common declarations etc used by more than one module "$ Descriptive Stats/ Summary formulae]$ COUNTBLANK(?)]$COUNTA(?)-COUNTBLANK(?)8]$COUNT(?)]$SUM(?)`]$IF(COUNT(?)>0,AVERAGE(?),"")(]$IF(COUNT(?)>1,SSCSTDEV(?),"")P]$ MAX(?)-MIN(?)]$MIN(?)x]$ MEDIAN(?)]$MAX(?)]$ QUARTILE(?,]$SKEW(?)]$KURT(?)]$DEVSQ(?)]$DEVSQ(?)+COUNT(?)*AVERAGE(?)^2]$SSCSTDEV(?)/AVERAGE(?)@]$ PERCENTILE(?,(]$SUM(IF(?h]$,1.0))P]$ /COUNT(?)]$*100 General]$&SSCstatx]$ ssc-stat.hlp]$SSC-Stat V2.11H]$SSCstat tutorial 1.pdf]$ Booklets.hlp0, Defined names used by Desc Stat and T-tests]$ SSC_DS_Hdr]$ SSC_DS_CountX]$ SSC_DS_Mean]$ SSC_DS_Stdev Unstack options]$]$]$]$@]$]$  ]$@h]$H]$]$p]$]$]$1...n( Variables associated with the Data Area] ] ] ]  ] 8]]Open'` ` $ ' 'iph]$ Attribute VB_Name = "modCommon" ' Modul$e P TCopyright 2002: Statistical Services Centre, The University of ReadingWritten by Howard Grubb, Martyn Byng, Colin!ayernt@ains c @declaroetc usedUmore than onBOption Explicit PrivaG}Pub D0e FuncShellExecLib "s32.dll" Alias "A" _ B (ByVhwnd As Lor lpOped S Fi ((lpP1metDirectory nShowCm]%) (C. AD escri@PveBs/ SummaformulPae MC@dt NoOfBla0nksFCOUNTBLANK(?)N Non+ A -_um0eric Total SUMP Mean IF( @ >0,AVERAGE,"A3StdevT1,SSCSTDEVRangeMAX -MINNMinimuFm ediJMEDIA2 ax- -Quvil)QUARTIL #,SkewneBsIBSKEW0K@urtosi)KhURT0C @*SQU+9*9d^2CV+7/ÇMPerc@PERCEN"Proport$n1eR`N? 2,1.0)P. Z3a/^ 4*100 Gen`l}"Ca@z&s@č !Help ssc-.hlpT -A V2.11 TuialPDF ` t@ 1.pdftBookletsGeßfinns&́ aT-tests,#strdr_DS_HdrmhCount!IUnPck o cmnIn cludezumn1\`S,3 A2ByFaAj 4Rowa8DuplNew16+03n1Igbn= 6?Ldas!12_Max25?P= 51n1<02#20F4_bAddP4,09`D{yXvab(1...11Variabl@associ@d withpe Data AreaA1g79@5ltOCurrRnDi splayFirpn8navapiLa@h(AR6#Dim@t@qASO QRe= (0&, ,  , vbNull1)C  EIAE  N p .   ""&8*`,$0H`$&($Px    0H`x(8Ph ((PBp  Module modTranslateacros\G Copyright 2002: Statistical Services Centre, The University of Reading Written by Colin GrayeS1xME(<<< <`ʐ(0 Hʐ2P Hʐ4X0 Hʐ>X HʐHx H ʐL H ʐT H ʐZ@ Hʐ^ Hʐf  Hʐn( HʐtHH Hʐpp Hʐ 0 HʐD  HʐH  HʐL  HʐN  HʐR  H ʐV  H"ʐX 8 H#ʐ\ `0 H%ʐ` H H'ʐb X H(ʐf p H*ʐj  H,ʐl  H-ʐ  H/ H1ʐ ( H2Descriptive StatisticsNumber of blank valuesʐHʐ$Hʐ0( Hʐ8xP HʐD` HʐP H ʐX H ʐbh Hʐj Hʐ|X Hʐ HʐF X HʐJ  HʐP  HʐT  H!ʐZ H( H$ʐ^ p8 H&ʐd h H)ʐh x H+ʐn 8 H.ʐ ` H0ʐ H38 H0PhXpH@``x(0( X8p  %Number of non-blank valuesPercentage of non-blank valuesCumulative% of non-blank valuesNumber of numeric valuesank vaTotalMeanStandard DeviationluesRangeMinimumnon-blaLower QuartileMedianUpper QuartileMaximumToSkewnessStKurtosisonCorrected sum of squaresLoUncorrected sum of squarestileCoefficient of Variation PercentileProportion of valuesarPercentage of valuessuNumber of valuesCo User-DefinedtiBlankCountAllle %CountAlln of Cum%AllPeCountTotalMeanStDevRangeMinimumfinedQ1MedianQ3MaximumllSkewnessKurtosisToCSSUSSCVPropPercentQ1CountUserDefMaExcel add-in for statistics0 ght 2002:US6Statistical Services Centre, The University of ReadingUnited Kingdomp LJ L`(he University of ReadingUn Kingdom 8 H0PhXpH@``x(0( X8ph 8 H0PhXpH@``x(0( X8p HP8 H0PhXpH@``x(0( X8p OE0i48=? n``nRnRCompObjpfo>@r( Contains strings which need translating 80 Descriptive Stats]$Descriptive Statistics]$Number of blank values=]$Number of non-blank values]$Percentage of non-blank values0]$Cumulative% of non-blank values(v]$Number of numeric valuesPz ]$TotalXH]$Meanx]$Standard Deviation]$Range]$Minimum]$Lower Quartile]$Median]$Upper Quartile]$Maximum]$Skewness@]$Kurtosis]$Corrected sum of squaresh]$Uncorrected sum of squares ]$Coefficient of Variation]$ Percentile]$Proportion of valuesH]$Percentage of values]$Number of valuesp]$ User-Defined Summarise]$Blank0]$CountAll]$ %CountAllX]$Cum%All]$Count]$Total]$Mean]$StDev]$Range]$Minimum]$Q1 ]$Median8]$Q3H]$Maximum`]$Skewnessp]$Kurtosis]$CSS]$USS]$CV]$Prop]$Percent]$Count]$UserDef8 About dialog labels]$Excel add-in for statistics]$Copyright 2003:H ]$6Statistical Services Centre, The University of Reading]$United Kingdom( ³Attribute VB_Name = "modTranslate" ' Mo dule \ `Copyright 2002: Statistical Services Centre, The University of ReadingKWritten by Colin Grayerhntains sngs which need tIOption Explicit PrivVDesc$rive]s 0 PubAns~t6k us NoOfVa lu~Numberxblank v NonBC non-P8erc age>!CumulItve%>anumV?Tot=GMeanStdevkndard DHevi/onP RQ?$ gkDiCo8unt^vUserDefin@* -` !!Summ se/A %*{!All)%W% >)(@  trQ1 Q32o Ai>SBSS @ ?V;W:7;':'Q?:!;9About \log laxbel$GExcel add-for j!9tr ʖ3:o mpanyA !`UV?r\UKp_K0dom` (p$  H"h B 4 "( PX`hp  x0 "?(" "  6H    &@ *  * P X B  ` Fh   -) ( 0 @ BH .P   L 8&AP"?x *(8  &'L 1yxMEP<<<<< <<<h $ HSoftware\SSC\SSC-Stat\RegReg @ p @EncSerCname Unregistered.v x( @Registered to  P+ `p@P !i pi ` l`" h`$ d`& ``( \+* `$@HAi `r 8 p `+@`@ ((PP: tP< pP> l`( h+, x`@!!xiD iF  H tPr@J ` PL \`FZX +. (`T@ i i Pr`l N `| Licence: to on up to to +0 `d  iR  4 h`|@(i Hi +V ` iid`$P+P  `"@X i xid`$pPn+Z  `l@ `t T  `X@` i` i+@ @ `H@  i`  If  ` `+6  `@  id  i`r`8p`j l+B `@H ,id h i`r`8p`j l (HHH ` Hfor non-commercial use   @ computers.d.˜T PB@SSC-Stat, Statistical Services Centre, The University of Reading Public Domain  X % H` tomain` pfor commercial use  d @` h Px(p H  @  x@ ` h Px(p H  @  x@ ` h Px(p H  @  x@ (`` thomain@f d rs.`` tomain@f xd  H H H  Hon one computer only.`` t@@f Hd (`` t@f xd `` t`dt@f d @`dt  H0z  use2 FB z@ 0 @`` t@f d `` t@`dt@f d pX `dt``dt  L @ H hH 80H xHT ` t(` t  H f @ x @h D H `dt(@ p@< `dt@H    : 0, @ ` t p8     ` t@(@ ( `@ x`` t` t@f @d (`` t` t@f d @8Hh  0\ X ( ((h`dt(H H` tP ` px` t x Pp h@ xx `  8 @ ( `dt@8j (@h H ` tpp x Pp h@ xx `  8 @ ( ph P pPp@pF ppX @H 0@8 @( $ @ @ p ` t(0 @@ (@  pp0z ` tp(@T  P    ((\ @Z @ PX  p`R tT  XP `P xh!`dt"hXxh @ "X@x  l  j X!h! !h!X @H h!@8 @( h!$ @" "0(!$ """"`` x"`t$d b $xp $`l @j $0X $$$@$ $$xz 0$$@\ $(p $l $ 0 l;!A " 0( &XL  @   0 8 @P /Xx    H *.8P   B      8@(;X$2   @[ 8 @H` x4  B  D     0 P  p         (       " * P p    8Pp 6  0  B        "   (  8 H B  P X "h  "    B       "?(  P "X     B 4 > <0 p x   "  F +  B  J8  +    B   2  (0  8HP hx B>t  0 B 8 2@ x 8   J>th   X Module modRegistration.basrsion * Routines to validate registration details]Software\SSC\SSC-Stat\Reg ]Reg ]EncSer]Cname ]P] x] p   (f- Validate the user's registration information and save it in the RegistryH|]]]]]    $* ' (Get rid of all but numerics  " $, '  $z$$H'&  & $.  " $0  Registration number is valid 0 Add disk number to it and store in the registryC:\$2 '( X ( X '  ( $6 A4 d $Invalid - tell the user to try again' zkkA(To set up variables correctly' iP@ Removes all non numeric characters from the registration number]h]     $'8 8 0 8 9 * 8 '* k ih' Validate the info held in the Registry]](F Get serial number from Registry and subtract the disk number from it. 1$@ ': C:\$2 '( : X ( X ': 1$@ '< < $F$ ( $B '< < $z$$H'> : > $. ' ] $ ' , CJG 4/7/03ce'$ The following changed by CJG 4/7/03 < ' d $ ' , CJG 4/7/03ru' ,  :       ' e + ' ki@]]](]@ D  Reg no is too short', zkH p'L  L D   $'L D   $X'F F F  Invalid array index', zk D  $X D   $X+H `'F  F $H 'F  L D $'L L ', ix> Returns true if the unencrypted registration number is valid.]]A@N '.  $Gzj Subtract version number     X '  $ $P '   $P '   $P '  '. + yxkphi`($ Licence types encoded in reg number+ Single user+ + Small group+ + Medium group+ Site+ + o'0 R Gzj R X ZX '0 k`iX  AT   AT o(h] d G  d'$j  d $ d $$X  '$ $'V i]'P '$  d $ d $$X  '$  d G $ d'$j $ $ $X 'P ki. Called by dlg_Registration when it is loaded.8 Creates the Instat registry entry if it does not exist.5 Returns false if user does not privileges to do this] ^  $\ ' 'Z i @ Puts Registration number into Registry under HKEY_LOCAL_MACHINE ^  ` d A@b oX $D Extracts Registration number from Registry under HKEY_LOCAL_MACHINE]( ^  ` $h '   f '@ d  '@ ki@ + Encodes a text string using a given number] ] ] X 'j '8  d 8 '8 8 j  G'8j< Add next numeric digit to ascii code of next text character 6 d $$X  j 8$X $F'6 i@ + Decodes a text string using a given number] ] ] X 'j $%Convert a negative number to positive'8  d 8 '8 8 j  G'8jC subtract next numeric digit from ascii code of next text character B d $$X  j 8$X $F'B i ]  T ' ]@SSC-Stat, Statistical Services Centre, The University of Reading` 8Registration was successfulA@(! Declarations added by CJG 4/7/03]]x]] ] Unregistered.]Registered to ] Licence: ]for non-commercial use ]for commercial use ]on one computer only.] on up to 8] computers.] Public Domain  < . :    '   ' d  ' k    ' d      ' kx End of changes  $ ' $ The following changed by CJG 4/7/03 ' , CJG 4/7/03 Large site+ 1 Licence names to be displayed - added CJG 4/7/03 Single User+ Group+  Departmental+ Site+  Large Site+ / Max number of users allowed - added CJG 4/7/03+ d+ + ]Attribute VB_Name = "modRegistration" ' Module p.bas:Routines to validar detailX C onst yKeyuSoftware\SSC-Stat\$ 01 SerialNumber1Enc:Cu@stomerCntSignpatur@>, Aical 'vicqCentre, The Univers@ity ofiaPding,V o(nNoI2Dim L"nce As/r  Arr s(0 To 4)  Public c mn|Mess ag&Text (' DeclaCys added by CJG @4/7/03C&N`oOfUs2Integer,? - D5^R6?Com@gcpBoo0leangUnÒer(.qF @P AI %d: For8NonG&@ for non-c,8useM One p@₯on 0one ondly9Up7 up6Es7s Domain/F 2SSleA?2FQFunctu 3V~.cJ( ""adAaac*OF(b)#'G@et ridaall nu olicc 5={`Ib!@ C , )RCase@placeSngp(1),`)(A29ÀSt, ?A(l!'? is#B Add d`/!" ٠B"Dtod!KrCAaD6= apif("C:\"(-C$(CL%St) + lzC6S@V $@o? -A. Ms@gBox "*w@as sucPns8ful`@a 1El$se In~ -8 te$U7Htry agE+oB|FaExFwEIfrCheck9 +5A '0Ss0Sva bl|corrpectl? 5 Tru$  Qriv5 P8__PpUL1 'p7mx0" =G<@9=L py& # y Nai ~3f`#}B(/f.d heldcA #!st $, st19L'g:a=_' q[TL t.#6P1subct!Lit.P F$%(JY1J M5MM})@Bw4"(ɺ`Nf#,@"r(0SfjYUj(5Sj 0-vi ri)g= (Ǧ԰9p_(G%' followDB|ngϻ1/"=-)r&4* & "."PvbCrLf u$>p8n5=R`Hd@h 8xf$(/X Q3&  End IfL 0' of changesdcmnRegistrationText = stJElse^SingleUserLTru4regCheck! ONumb*Fa F' The f`ollowQd by CJG 4/7/03u MessagerUnxered & vbCrLfLicencen_)&rForNonCommer0cial~*One puterU"" Func Private U9bin eD (stIn6 As Str,N)6Dim Arr(IntegCE+Ai%, Elementą0Ret$,AIn8dex If LenE') tG :uKEx 4HA'Invalid array i]*AJK,&) &tN@stQ= 7.#3Gz&"Ti& 8316d"a_kVA-QS(By@ Nzog,wm"hBoolead['0turnZ iHf tunr8yptCc n`<.Iti%#YrLongFef BDdu 6 sNot Is eric(b)"O D' Subct versD  - VcNo=LBound(L% o USc!jLngdMUPnEnca*(@,E (i)dA !9Signa :eh(0AAh<= 100Zhe1D@($Namens`'QaNoOfAs@*EGk >= 500)Q0{!oxm9W:?lP ublicQ$ DM+(@s' t ypes 2odq2in 3J'h$(` E u Du91AK"Small@ group?(22Medium#ORs(3ite(4Larm@s'w nn be display - adq} ZQJcGDepart}alO/Uc)E9S9Max$ qs ow/E W+1 R 82{*b8OCq:AT+MB;k`l__F5;WFqpVC PECN) > EWE9o8 SaveS_alKUOnt'-6:C4Iy(0rNo!Cy(Custo0$tgx^Q Ap4, x q0tempts`K@C[ = \*l¢kb+ c, i 4 "A(?)onпg *DoXe  fq0#B r_Н4-1x7@s/  qVB1 b3?# 1&iu Cre:yEntrycL-M0dlg_ w 0loa]@q'Instatmn)dopn`exPfqqV pilo`i< Dim Result As Long(d= VbRegCreateKey(HKEY_LOCAL_MAC HINE,gistry>)z^p.En8 = (0' End Function Privl Sub SaveInG(ByValiString, ueb' Puts Bad numbe@r into y und ohj1Set4, `SEG_SZ|, $ywublic GetFromy_IsOpyDefa= "")J' ExtracKf% %Ku%gNoMQuer9wueݘEVĐIf%"" The?@ED S@ ElseC  ( @If׬ű EncodedTextDAŬNQds a tF @ usAa givenij& 2^iAIntegerAjR>Sbi# = C(Abs(Uh)0j`+0cFo`k1 To Len(AAj + 1A`8Xj >f )b9 (' Add &na!xer@gdigit `yascii / ofc&chaZ 3 & Chr(Asc(MidB, i, 1))@C), jkNiD DeD !D De #DGDD.'ConveDrtYneg`vee7positYC>IA9"DIgIsubJBJ?a9JJ- JJ  .<80x 0$ 4@ "x     0 @ P ` p ,>&  ,H $xH *H$ .H0 ZH 4H ,H( ,@Hp Z 2H  &8H` ,pH &H  H4 & (( "P  x " D 4 &@ 8h $ $ 0 BH , 4 : "pL"Z1y @oRegOpenKeyExA 8RegCreateKeyExA \--$bRRegQueryValueExAd HRegQueryValueExA pRegQueryValueExA RegSetValueExA RegSetValueExA RegDeleteKeyA @RegDeleteValueA d,RegCloseKey PGetVolumeInformationA xMEp(< <<<ʘr Cʘ^ PCʘv Cʘz HBʘd B ʘ~ pB ʘ B ʘ @Bʘ Cʘ Cʘ Cʘ Bʘ 8 Bʘ 0Bʘ `Bʘ ?Cʘ Cʐ  H+ p i 0i Pi pi i + $p$ i i 0i Pi pi i i i i + HpPH i pi i i i i + ppPp i pi i i i i + pP i pi i i i i +  pP i pi i i i i +  pP  i p i  i  i  i  i + pP  i p i +  ,p , i  i + p PpP P  i +  pp p  i  i  i  i 0 i P i p i  i ʐ pH Error: Opening Registry Key!Error: Deleteing Key!  `P **ji p i  i` ` ` +\ `h@  !!i @i ` t` p+h `@ JJi i i ` h` d` `` \` `X` T b `@==i  i @i `i i  ` x` t` p` l` h  `X<i xi i ` ` +2 `@@(Wi ` t` p` l` hʘn Cʘp Cʘt (Cʘx xBʘ| Bʘ B ʘ B ʘ hCʘ Cʘ Bʘ Bʘ XCʘ Cʐ Hʐ H!  xH P @ h0 X`(pp  8 l h%Error: Creating Key!Error: Querying Value! xH P @ h0 X`(pp  8  xH P @ h0 X`(pp  8 (0x((0l   xH P @ h0 X`(pp  8  \ @P `@L @H @8 (( (@ ( `H(x(`x@(8 ( X ( T @P @L @H D @@ 0 xH P @ h0 X`(pp  8 @M4j : H 4`   $ & $ :8 .x D8  " $   *    0  P  `  p    $         8 H DP 4 & 8 0 $P x $  B 2  4X D B   ,&  &@:Hh   &     @ P DX 4 & 8 8 $X  $  B ,( 4X . D B " &Hp& 0   6(  H h x   ,&9   ( 8 Xhp  $x   $$J 0 P `h px *$7   (0 8@H  P p  D 2 & 80 h $  $  B ,X 4 . < 80 Dh "$  8,,8.h.  6   ( +8 HX`  h " &  $L  H h 2x (  $ $;@ h   ,+    ! D! 6X! &! 8! ! $" 8" $X" " B" ," 4# 0H# Dx# #" # *#($  0$ P$  p$ $ $ $$$  ($$ % 0% @%P%  X% x% % B % <% %%%%  %&0& H&.lh&& & &x3----------------------------------------------------- VbRegMod.Bas--- A Visual Basic 32-Bit Module For Accessing-- The Windows Registry.---- Date: Sunday, May 17, 1998 -- By Custom Software Designers.-- Programmer Raymond L. King3---------------------------------------------------"i '-- Windows Registry Root Key Constants.]$]$]$]$]$(Q]$P'-- Windows Registry Key Type Constants.]$ 0) Key is preserved when system is rebooted]$x0 Unicode nul terminated string]$H0 32-bit number]$0 Unicode nul terminated string]$0 Free form binaryhe u]$p0 32-bit number]$0" 32-bit number (same as REG_DWORD)-- Function Error Constants.n numb]$ Re]$- Ap-- Registry Access Rights.]$@ ]$]$h]$ P ]$ ]$]$ ]$ ']$8']$k]$0i]$    `le u]$       X g]$  te]$   %-- Windows Registry API Declarations. R -- Registry API To Open A Key. $-- Registry API To Create A New Key. d '(-- Registry API To Query A String Value.'$T Note that if you declare the lpData parameter as String, you must pass it By Value. $.-- Registry API To Query A Long (DWORD) Value. $j&-- Registry API To Query A NULL Value.i Calle&-- Registry API To Set A String Value.tat reT Note that if you declare the lpData parameter as String, you must pass it By Value. this,-- Registry API To Set A Long (DWORD) Value. -- Registry API To Delete A Key. &-- Registry API To Delete A Key Value. -- Registry API To Close A Key.  )p -- Constants For Error Messages.]$Error: Opening Registry Key!]$Error: Deleteing Key!]$Error: Creating Key! ]$Error: Querying Value!=---------------------------------------------------------------- Procedure : Public Method VbRegDeleteKey -- Programmer : Raymond L. King1-- Created On : Sunday, May 17, 1998 11:03:04 AM-- Module : VbRegMod-- Module File : VbRegMod.bas-- Project : Project1-- Project File: Project1.vbp-- Parameters :<-- RootKey : The Root Key To Open, EG: HKEY_CURRENT_USER%-- KeyName : The Key Name To Open--- : Example: MySettings\Settings4-- SubKey : The Sub Key Under KeyName To Delete=------------------------------------------------------------- ]D -- API Return Value]D -- Handle Of Key#-- Open The Specified Registry Key. $ ' -- Check For An Error.   A@ A@ |xkp-- Delete The Registry SubKey. ` $ ' -- Check For An Error.   A@k-- Close The Registry Key. A@ o=---------------------------------------------------------------- Procedure : Public Method VbRegCreateKey -- Programmer : Raymond L. King1-- Created On : Sunday, May 17, 1998 11:03:18 AM-- Module : VbRegMod-- Module File : VbRegMod.bas-- Project : Project1-- Project File: Project1.vbp-- Parameters :<-- RootKey : The Root Key To Open, EG: HKEY_CURRENT_USER+-- KeyName : The New Key Name To Create--- : Example: MySettings\Settings=------------------------------------------------------------- ]D`-- Registry API Return Value]Dx-- Handle Of Open Key-- Create The New Registry Key. x  $ '\ -- Check For An Error. If lRtn <> ERROR_SUCCESS Then MsgBox CreateErr End If-- Close The Registry Key. A@ i =-------------------------------------------------------------.-- Procedure : Public Method VbRegQueryValue -- Programmer : Raymond L. King1-- Created On : Sunday, May 17, 1998 11:03:29 AM-- Module : VbRegMod-- Module File : VbRegMod.bas-- Project : Project1-- Project File: Project1.vbp-- Parameters :<-- RootKey : The Root Key To Open, EG: HKEY_CURRENT_USER%-- KeyName : The Key Name To Open--- : Example: MySettings\Settings(-- ValueName : The Value Name To Query=-------------------------------------------------------------]D0-- API Return Code]DH-- Handle Of Open Key]D` -- The Data]Dx-- Long (DWORD) Value]D-- String Value]D -- Type Returned String Or DWORD-- Open The Registry Key. $ ' -- Check For An Error.   MsgBox OpenErr A@ zX kP %-- Query Registry Key For Value Type.   $ ' -- Check For An Error.   MsgBox QueryErr A@ zk-- Get The Key Value By Type. KT-- REG_SZ (String)  $\' -- Get Registry String Value.   $ ' -- Check For Error.   'h d 'h kKT -- REG_DWORD#-- Get Registry Long (DWORD) Value.    $ ' -- Check For Error.    'h d 'h kn-- Close The Registry Key. A@ ix=-------------------------------------------------------------,-- Procedure : Public Method VbRegSetValue -- Programmer : Raymond L. King1-- Created On : Sunday, May 17, 1998 11:03:42 AM-- Module : VbRegMod-- Module File : VbRegMod.bas-- Project : Project1-- Project File: Project1.vbp-- Parameters :<-- RootKey : The Root Key To Open, EG: HKEY_CURRENT_USER%-- KeyName : The Key Name To Open--- : Example: MySettings\Settings'-- ValueName : The Value Name To Open6-- KeyType : The Key Type, EG: REG_SZ Or REG_DWORD1-- KeyValue : The Value To Set Under ValueName=-------------------------------------------------------------  ]D(-- Returned Value From API Registry Call]D-- Handle Of The Opened Key]D-- Setting A Long Data Value]D-- Setting A String Data Value]D-- Size Of String Data To Set-- Open The Registry Key. $ ' -- Check For An Error.   A@ A@ |k-- Select The Key Type.  KT-- REG_SZ (String)  ' -- Assign Key Value ' -- Get Size Of String-- Set String Value.  d  $ ' -- Check For An Error.  , MsgBox "Error Setting String Value!" A@ |8k0KT -- REG_DWORD  ' -- Assign The Long Value.-- Set The Long Value (DWORD).  |  $ ' -- Check For An Error.  !Error Setting Long (DWORD) Value!A@k0n(-- Close The Registry Key. A@ o=-------------------------------------------------------------/-- Procedure : Public Method VbRegDeleteValue -- Programmer : Raymond L. King1-- Created On : Sunday, May 17, 1998 11:03:49 AM-- Module : VbRegMod-- Module File : VbRegMod.bas-- Project : Project1-- Project File: Project1.vbp-- Parameters :<-- RootKey : The Root Key To Open, EG: HKEY_CURRENT_USER%-- KeyName : The Key Name To Open--- : Example: MySettings\Settings)-- ValueName : The Value Name To Delete=------------------------------------------------------------- ]D-- API Call Returned Value]D-- Handle Of Opened Key-- Open Registry Key... $ ' -- Check For An Error.   A@ A@ |8k0"-- Delete Opened Key Value Name...  $ ' -- Check For An Error.   A@k-- Close The Registry Key. A@ op6 returns the serial number of the specified disk drive]H]`]x]initialise the strings$ F$ \' $ F$ \' call the API function        $ '  '2 iXPOAttribute VB_Name = "modRegApi" Option Explicit '-/j VbMod.Bas"A Vi sual ic 32-Bit "ule For Accessing/The Windows Kistry.Date: Sunday, May 17, 1998By Custom Software Designers# Programmer Raymond L. KA}[ Root KeHonstant@Pub C HKEY_CLASSE@S_ROOT&HH80 URRENT_COPNFIG 5U(SER 1 DY@N_DATA 6 LOCAL_M@ACHINEI 2kQ SI 3VLKTypeGQLREG_OPTION_NVOLATIRL!0 '\is preserved when system rebfedL+EXPAND_4SZ,2E' Unicode nul termin@d JlADWORD4+A'bnumberP$"1S@o$BINARY@3 ' Free form bry_BIG_ENDIAN 5 LIT8TLEg$  (sAa`?b)HFuncCrrk1GERROR_@SUCCESQ0@6`cÉEĔ RighxSYNCHRONIZMa1w&ADvTROL@ &H2 STOARD_RIGHTS_ALc1F_REA!M(% $JR pWRITQUERY_VALUd,aSET( !C`TE_L8INKd SU,B_`4ENUMERA $APNOTIFA^&

!& ((#Or ) DGP$#) A(vNhD)2 =_AeSAD /dL(T Q Q. plEXECU$( s@r(N ?p7 = APIclaraQDE?To OpdAePPrivP_tp%HP`lEx Lib "advapi32.dll" Al i0L"iA" _ (ByV`h!pAs Long, 3lpS4ubtSuls &s0SrpphkResultT RCreA Newp ?y ?; C~/l l`pClas[d>wOe8ecurity,dwDisp8osiRjT oegjQuerP c !ue' o`"Exd?(8(//pBP 7*blpdaAelpcb5C/ ' Te that if you de1;-1e0p0Function! +ExLib "advapi32.dll" AliL"Reg(A" (hKeCs>Nm8Q0DelYH*QD 4C bCSubAƢH,r#Bs . 5r^/Clos@ <\[B F,ЗJVqGetVolumeInforma] kernel[X e\ $lpRootPa|thZ&"Buff{nASizInteger,k cSerialNu mb C`lpMaximumComponentLe0ngthŏFileSystemFlags'{SnnBConstants For ErrMessagesBublic A Open  = ":"``D!" Pc^ cA1Cre`+bQueryBbhBx-5CProcedBu : Method Vb Cgm CRaymond L. KCd OnA Sunday, May 17, 1998 11:03: 04 AMcModule :?@j@@`.b as@ject;d1kro!1.vbp%>s`C!n Th ERR`OR_SU n MsgBo^xI3 k( /0#@pQE@8If1!B&, C 3M u ! A /,b2 PCoPiPCMP goPoP&oPlP18oP0-oP"RoPoP`RoP!RoP oPE=5F0oPoP3JNewPbDPngPVMFɢML`R Lz_L q87L=LLK'(F223V`F+ 0MeMvbNullSZ, REG_OPTION_N0VOLATILE2NaqQS1,OE}E' EER3 E`EEA("!  wUE!E%1- '-- Procedure : Public Method VbRegQueryValuegrammer`Raymond L. KingDCrea@ted OnDSunday, May 17, 1998 11:03:29 AM3Moduly Fi :0.basject9o 1 < ro1.vb pafeters RootKey'The   To Open, EG: HKEY_CURRENT_USER#Name:  /: Example: MySetts\,+ , + DFunctioń _ -(JAs Lo8ng,AI$St2r1, .) VariantDim lRzt ABAAPI Retur n Cod@ = hAV  HandOfBk$`CdataiD@ V"(DWORD)6E sG ?>%.BFRtyp@-TA9DOr istry8.ABP=KgGExig, 0&WREAD,: ()a Check For An Error b If4<> ERROR_SUCCESS!n G  MsgBox.  Clos*e5( `^it LAE If!a!Zc-%ExNULL HPC$ -d"B  xGet ERROR_SUCCESSPn! MsgBox " J "" A7H?N @Ca@ncel_CPktHelpGet. [t@AIDb w ,g #!N`9StVDW3@NumaLoAeH @khh!( c"' get rid of ss !uReceC, "(1),DdA  = ,F If Noeg {id&h(0No, A ) Thedp'Inval`- tetllfuhkaHgaiCa`MsgBox(" kthat yo u typis i ." & vbCrLf _e& "P@F",Exmw"!ExiubDIfchRjHSPSSS<,<0<<<< <$<(<4<8<<<0{14A27217-BEB4-11D7-B659-0004768BFDFA}{14A2720C-BEB4-11D7-B659-0004768BFDFA} < @`d@  8 `x@% %@%H%@@@@ @   B x %pt @p @l @h @d ((x X@ TK ta(1*xz).Yvy).Yvy).Yvz).YvxME@SPSSS (@ @ (@x    ,   . B (@  D (@D7o0@ A@r2EEoAttribute VB_Name = "dlgAbout"  Bas|0{14A27217-BEB4-11D659-0004768BFDFdA}J0CJ dG lobalSpacoFalse CreatablPredec$laIdTru BExpose0TemplateDerivCustomizD' Help  window Option ;licit P.2 Sub UserForm_Initialize() ' PopuE the labels*th items froBm modusng.bas lblTitle.CaC= SSCStatZDescr>iBH  Copyright ! & "@& Company,UK.@C)@(Regi a#IcmnIMessags E ndNRbtnOkay_CZkQ-Unload M鶀0* pHdSSCStat ?0$istical functions and dialog0s - ZFServices Centre@~!tai sc l funco saddi%og5h -S)GS@erv1c ECn-r=y xP@ <stdole> ^dolE* ^\*\G{00020430-C 0046}#2.0#0#C:\WINDOWS\SYSTEM\12.tlb#OLE Autom&aDMSForms>A MSFErtN)modSave1840781212RmodSaveG)dlgLookup1940781212dlgLookupv)dlgOneProp1:40781212dlgOnePropN#modProportion1;40781212modProportion'dlgTwoProp1<40781212dlgTwoProp(3 dlgSummarise1=40781212dlgSummarise=@t modMoments1?40781212t modMomentsX~ dlgUnstackTwoWay2040781212w dlgUnstackTwoWay,p5 dlgColumnPlot2140781212dlgColumnPlotDT modChart2240781212 modChartH#dlgDataArea2340781212dlgDataArea modColumn2440781212& modColumn%modSheet2640781212 modSheet#OmodCommon2740781212 modCommon modTranslate2940781212 modTranslateYmodRegistration2:40781212 modRegistrationy0LmodRegApi2<40781212l modRegApiyHZdlgRegistration2=40781212dlgRegistration*x`dlgAbout2?40781212dlgAboutxi 0`Hx0@(pX P8h`Hx{eXv}eXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXveXvam  *\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*\G{00020813-0000-0000-C000-000000000046}#1.3#0#c:\Program Files\Microsoft Office 2000\Office\EXCEL9.OLB#Microsoft Excel 9.0 Object Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\stdole2.tlb#OLE Automation*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#C:\WINDOWS\SYSTEM\FM20.DLL#Microsoft Forms 2.0 Object Library*\G{0CE13760-64A7-11D5-B656-0004768BFDFA}#2.0#0#c:\windows\TEMP\VBE\MSForms.exd#Microsoft Forms 2.0 Object Library.E .`M *\G{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}#2.1#0#C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\MSO97.DLL#Microsoft Office 8.0 Object Library*\G{00024517-0000-0000-C000-000000000046}#1.0#0#c:\Program Files\Microsoft Office 2000\Office\REFEDIT.DLL#Ref Edit Control*\G{8B19C0B5-802A-11D5-B656-0004768BFDFA}#1.0#0#c:\windows\TEMP\VBE\RefEdit.exd#Ref Edit ControlEF&  ~Statistical functions and dialogs - Statistical Services Centrex@%$#"! 1& Sheet10540781212 Sheet1 Sheet20640781212 Sheet2  Sheet30740781212 Sheet3 0ThisWorkbook0840781212ThisWorkbook HmodMain0940781212 modMain`HdlgUnStack0:40781212qdlgUnStackJx(dlgXYPlot0;40781212dlgXYPlot$S?stats_functions0<40781212stats_functionsE"dlgStack0=40781212{dlgStackmodUtility0>40781212hmodUtility~4modUnStack0?40781212modUnStackvmodStack1040781212fmodStack{'/&dlgDescriptiveStats1140781212&dlgDescriptiveStatsZ `dlgTwoTtest1240781212dlgTwoTtestgO8MdlgBoxPlot1340781212dlgBoxPlotZP_modTtest1440781212modTtestah*dlgOneTtest1540781212dlgOneTtest"1dlgQQPlot1640781212dlgQQPlotv)dlgDenest1740781212dlgDeneseXveXveXveXveXv×eXvŗeXvh@ As bByVal"Const=Dim@DoDElseEElseIfHendifL ErrorTForU Format^Goto_IfmLeftNamenotPublicResumeTextThentoTrueExcel+VBAWin16~Win32MacVBA6#SSCStatstdole`MSFormsCOfficeuRefEditSheet1 _EvaluateSheet2Sheet3 ThisWorkbook|modMain WorksheetMenu ChartMenu Auto_OpenV  BuildSSCMenu Auto_Closew RemoveSSCMenu/ ExcelMenuSSCMenueMenuItemj SubMenuItem0VInsertPositionja Application* CommandBars ControlsKCaptionxAddrmsoControlPopupl)Before Temporary SSCCaption3< AddMenuItemHItemType!i BeginGroupAddIns SSCStatName~Path2SSCStatBookletsDeletexMyMenuH(ItemName[ActionRmsoControlButtonn MyMenuItemCIOnAction DataEntryHelpGetHelp*UnStackDialogShowCheckRegv dlgUnStackShowUnStackTwoWayDialogShowdlgUnstackTwoWayStackDialogShowf'dlgStackLookupDialogShow< dlgLookup<DataManagementHelpkXYStackDialogShow dlgXYPlot3^ColumnPlotDialogShow dlgColumnPlotBoxplotDialogShow' dlgBoxPlot%QQplotDialogShow dlgQQPlotwDenestDialogShowJ2 dlgDenest GraphicsHelpūDescriptiveDialogShowg}dlgDescriptiveStatstSummariseDialogShowB dlgSummarise OneTtestDialogShow dlgOneTtestV[TwoTtestDialogShow dlgTwoTtest0OneProportionDialogShowP dlgOnePropKTwoProportionDialogShow dlgTwoPropStatisticsHelpeDataAreaDialogShow dlgDataAreaU GeneralHelpZ%GoodPracticeHelpTutorialcCNotYetImplemented  TutorialPDF\ apiLaunchFileSSCStatTutorialPDFPAboutSSC:o AboutSSCStatregCheckRegistrationNumberWdlgAboutw RegistrationdlgRegistration RegChecked%iMsgBoxRDefaultSheetNameNoOfVars2,UserForm_activateZsUpdateColumnNames_ cmnDataAreaorInitialiseOutputRangeurefRangeVoptRange  optNewSheet optNewBookQYutRestoreControls= UnstackSave chkCopyDataschkColumnNameschkFactorNamesBchkSort optSortByNameEoptSortByFactorchkIgnoreMissingƀchkIgnoreFactorMissingQ lstVariablelstBy DataAreaɁ InitNamesHPutColumnNamesIntoListbox&(FactorlstVariable_ChangeSetSelectionOrdersNumberSelected:^btnOKdEnabled۪ValueK lstBy_Change chkSort_ClickfraSortoVisibleoptRange_ClicktxtWorkbookNamelblWorkbookNameoptNewSheet_Click9SoptNewBook_Click btnHelp_Click HelpContextIDu"btnCancel_Clicke btnOK_Click" DestinationлRange  NoOfFactorszRowFac$Options OutputRange2txtWorksheetName9Vars  ItemsInBox)colfaccmnIncludeColumnNamecmnIncludeFactorNameN)cmnSortColumns\VcmnSortColumnsByFactorM:UnStack܄ IgnoreMissingmFIgnoreFactorMissingfutSaveControls$O strByColour{ NoOfXVarsy NoOfYVars ChartTypeListchkTrend_ClickUlstXvarAddItem  DummyXvarL:lstYVarʇAddChartTypeToList cboChartType( xlXYScatter)xlXYScatterLinesNoMarkersvxlXYScatterLinesbSxlXYScatterSmoothNoMarkersxlXYScatterSmooth ListIndexQ XYPlotSaveDchkByjchkTrendActiveWorkbookMultiUserEditingwaBoxyControlCode ListCount6lstYvar_ChangeS lstXvar_Clickx2 chkBy_ClickICancelButton_ClickXVarskYvarsMarkers OutputRange NewXYBySeries%(ByColourU TrendlineCopyData XDestination YDestination#XColumnsYColumns(i`XName=YNames FactorName NoOfXColumns NoOfYColumnsQFactorsAsLabelsbd UnstackFactor CarryFactorg DummyFactoru SmallNumber+NA\^ GetColumnName5 NonNumeric:SortCellsOffset CurrentRegion| EntireColumnHidden] MakeChartReplacefstats_functionsuI PowerTransVxoLambdaNrowMNcol Make2DArray[IsNullResulturLn^ZSlopeylNumMMult TransposeDen1MInverse RInterceptresfit!ResLineRSlope PartArray _StartFinishXxpart MedianPart]^Median*nenlg^nsn^mxN^myK^Count0vSlope# Intercept6D ResLineFit,1new_x. vals Data;IsArrayMake2D2tempRlstCarryE  FillOrderBox5 cboOrderData1cboOrderFactor cboOrderRow StackSavee chkStackDataZM txtStackName#XchkStackFactorl  txtFactorNameJ chkMatchLchkOmitetxtOmit chkTrailingqCchkCarry?ComboBox\IndexchkCarry_ClickD7 lblOrderRowFchkStackData_ClickPcboOrderData_ChangechkStackFactor_Click<[cboOrderFactor_Change5OldIndex?NewIndexcboOrderRow_Change ZkbjunkGOutRange NoOfCarriesmOrderACarryYStack modUtility NextField<MessagePos Delimiter~vbTabc9StartPosGEndPosbFieldLen٢Space  ContextId HelpFile SSCStatHelpHelpfAllDataInColumnMaxRow+ ActiveSheet%N UsedRangeȉRowRowsURemoveTrailingBlanksMyRange- SigFigFormatNumber-SigFigs IsNumeric$* FlagErrorErro Description  ReplaceString  ThisString2 OldstringО NewString+Field3FindNamedRangeAddressNonameNamesοRefersTo ValidRangeJri InvalidRange DecimalNumberzStr modUnStackFactors[ RowFactors6FactorAsVarNamefMissing|NoOfRows` NoOfColumns[NoOfFactorCombinationsNoOfRowFactorsFFactorColumnNoemRowNoThisFactorCombinationT ThisRangeName&FFactorCombinationList NextFreeRowRowFactorAddress FactorValueP CurrentCell$ SortRangecDataCellDataCellAddresst OutputColumns's ColumnNamew RangeStartRow AreaOffsetU NewColumnWNoOfOutputRows ThisRange FreeRowFound~ SortByFactorSortKeyHeaderMSortRows MatchFound( RowHasDataFLastRoww LastRowUsedOV DuplNewRow, DuplNewColumnHa DuplIgnoreODuplLastK}DuplMax[DuplMin\CountOccurrences OrigColName ThisColNameSerialNoIncludeColumnNameDIncludeFactorName% DatavalueW ThisFactor ReportErrorŀ IsMissing cmnSortRows:cmnCountK cmnDuplNewRowcmnDuplNewColumnL cmnDuplIgnoreN cmnDuplLastp^ cmnDuplMaxw` cmnDuplMina CalculationhxlManual SelectRange3GetColumnAddress UAreasK EntireRowNextRow58UCase5 externalwFormulaqYColumniColumnsp9key1O Orientationw xlSortColumns }ValTrim@key2Pkey3Q xlSortRows:=AutoFit&  xlAutomatic@modStack9  MaxFactorNo VarStructureOutputFactorCol5OutputFactorValue+ StackDataA StackName StackFactorpMOrigColumnNamev MatchColumns Omit5 OmitValueoTrailingBlanksVarInfo NoOfVarNameszNoOfFactorNamespVarRange< FactorRange CarryRangePos2VnameVarNameYcFNameRFValue DataSheet StackSheetRThisdataytvmnrowsonvarstotrows8ThisVark DataColumny>NoOfStackColumns6NoOfFromColumnsهNoOfFactorColumns}I LastNonBlankYH StackStart FromStartTRowFactorStartwDefaultSigFigs^ ExtraWidth\ DataColumnsЉ CurrentRowSmcboProp cboConditionXDescriptiveSave chkVariablechkCountp chkNonBlankl chkNumericichkMeanˮchkStdevchkTotal; chkAdditionalchkRange chkMaximum chkMinimum\ chkMedian chkQuartilesn chkSkewness:chkSSchkCVchkPercentileschkProportionstxtPercentilesdtxtProportionsFtxtOther chkPercentvchkCumul{chkVariable_ClickEnableStatistics3 FactorOnlychkNonBlank_ClickchkAdditional_Click fraAdditionalwchkPercentiles_ClickchkProportions_Click DataRangeMP txtSigFigsA%SetupDescriptionkStartRowColumnsToInsert7 ColumnData DescStats2Percent^ PercentNumberCondk NonBlankRangeMInsertrxlShiftToRight0 strDescStat strDescStatHdrѝstrDescStatCountAddRow7 strNoOfValues;NoOfBlanksFormulastrNoOfNonBlank@NoOfNonBlankFormulaE9ReferenceStyle9xlR1C1pstrPercentNonBlank~strCumulNonBlankstrNoOfNumericd:NoOfNumericFormulastrTotal TotalFormulaȍstrDescStatMean3strMean MeanFormula^>strDescStatStdevöstrStdevQ StdevFormulaystrRangeA RangeFormulaN strMinimumMinimumFormulaȧstrLQ`QuartileFormula strMedian> MedianFormulaj$strUQb strMaximumMaximumFormulaP strSkewnessSkewnessFormula3 strKurtosisTKurtosisFormulastrCss CssFormula5strUssQ UssFormula strCV~_ CVFormula#PercentFormulai+ strPercentileXProportionFormula1=4ProportionFormula2>4ProportionFormula3?4 strProportion5ProportionFormula4@4 strPercentage,strCountAsArray AutoFormatxlRangeAutoFormatClassic15FontUBoldItalic!Copyƿ PasteSpecialKPaste xlPasteValues"Clear ThisFormula^ FormulaArrayΠ NumberFormatR SampleHeadingL HeaderRangecCell TwoTtestSave$ optTwoColumns  optOneColumn] optSummary. cboSampleg cboSample1 cbosample2cboByJtxtMean_txtStdevtxtSizemtxtMean2u txtStdev2txtSize2 chkUnequalGS chkPairedVtxtCI cboColumn1 cboColumn2cboColumn1_ChangescboColumn2_Change ShowBoxes CountRange MeanRange StdevRangeoptOneColumn_Click8RcboSample_ChangeP cboBy_Change1optTwoColumns_ClickcboSample1_ChangecboSample2_Change<optSummary_ClicktxtMean_ChangeYtxtStdev_Change!UtxtSize_ChangeRtxtMean2_Change+txtStdev2_Change(txtSize2_ChangechkPaired_ClickchkUnequal_Click lblSample1 lblSample2 lblFactorlblMeanlblStdev lblSize lblSummaryu lblSummary2; ColumnLength;Column1N9Column2O9 DifferenceDiffcCol1Col2 MakeTTable$uPaired3UnequalVariances BoxPlotSaveJ chkOutlierchkJoinTchkOutlier_ClicktfUseFactorNamesVarNames FactorNames:uBoxPlotOutliers~ JoinMedians%{ DisplayMeans8\OutlierMultiple-ExtremeMultipleestrBasestrLowerWhisker strLowerBox strUpperBoxk~strUpperWhiskera strOutlier strExtremeN1ncolsVrow1UtheRangebzBoxChartz ChartRangeGQ1^Q2^Q3^MinimumMaximum OverallMinimum"MinRangeIQR LowerOutlier< UpperOutlierjT LowerExtremeY UpperExtremeOThisRowEvaluateTWorksheetFunction&AverageS ChartObjectsH ActiveChart PlotVisibleOnly  SetSourceDataaSourceGPlotBy$xlRows ChartType?xlColumnStackedmpHasTitle{ ChartTitle_Size HasLegendBSeriesCollection;:Border ColorIndexxlColorIndexNoneBInterior;ErrorBar>include`xlErrorBarIncludeMinusValuesIjxlErrorBarTypePercentAmountiColor2FxlErrorBarIncludePlusValuesRxlLineWP xlLineMarkersa MarkerStylexlMarkerStyleDash;dMarkerForegroundColor; LineStylewxlNonexlMarkerStyleStarE\xlMarkerStyleDiamondYMarkerBackgroundColorFPlotAreaWeight1xlThinw xlContinuous[AxesbxlValueXValuesbActivate| AxisTitleMarkerBackgroundColorIndexMarkerForegroundColorIndexSmooth DenestSave!DenestnbinsUq DensityChartSD_ChrK~SpinnersV SmallChange LinkedCellTDisplay3DShading xlPrimaryumodSaveM DataAreaSave[ CollectionWUnstackTwoWaySave LookupSave;ColumnPlotSave?  SummariseSaveOneProportionSave TwoProportionSave<Savedd arrObjects objElement9TarrayobjElementrRemoveϱIsObjectTypeName SaveControlKVarColl)CtrlKeyCtrlTypebSelNoSelectedYList*PreviousWorksheetARestoreControl= NoOfLookupsC: NoOfDatasg? HeaderRowI* FirstDataRow lstColumns_Click^{SetupColumnsListS lstData_ClickdlstData lstLookupL$ lstColumns5 refLookupNextFreeColumnr{GaplstData_ChangebtnDisplay_click LookupTable] LookupRangexColName ExpandToRightHq FindHeaderRow  DataIndex% LookupIndex+DoLookup LookupAddress' DataAddress DataLength2Command] xlToRight|chkArrayi FullRange@ FullEndColumn ThisEndColumnchkExactr chkNormal chkSimpleOptMax optMin optEqual optGreaterloptLess txtSuccessy txtTrialstxtSuccessValuetxtSuccess_ChangetxtTrials_Change$N fraSuccessP optMax_Clickr optMin_Click >optEqual_Click9optGreater_Clickr: optLess_Click Column2RangevSuccessCondition}MakeProportionTable~OExact NormalSimple modProportionR1^R2^P1^P2^SjZstat ZstatAddresscZvalueaXcc\PooledPPooledQNormInvtxtSuccessValue_Changev txtSuccess2I txtTrials2txtSuccess2_ChangetxtTrials2_ChangeColumn3P9Column4Q9Column5R9Column6S9 Column3Range Column4Range% Column5RangeY< Column6RangeS strVariable. CurrentCol SetupSummary FactorValues0 FactorFoundtFactorColumnCount@ DestAddress InsertColumn ParseColumnHeader. AddColumnstrSummNoOfValuesQstrSummNoOfNonBlankzstrSummPercentNonBlankY?strSummCumulNonBlankstrSummNoOfNumericS strSummTotalC_ strSummMean0 strSummStdevT strSummRangeLstrSummMinimum strSummLQe5 strSummMedian strSummUQ6strSummMaximumstrSummSkewnesspstrSummKurtosis strSummCssv strSummUss strSummCV4strSummProportionKstrSummPercentage7 strSummCountColumnToInsertDestAddr modMomentswvSSCMean} CellRange6tSSCVar,Mean@ResidSumKSqDiffSSCStdevSqr( chkSortRowsA optDuplNewRowVmoptDuplNewColumne optDuplIgnoreHoptFirst'optLastlstCarry_ChangeloptDuplIgnore_Click= fraExcept_optDuplNewColumn_ClickoptDuplNewRow_Click ShowLines Frame2_ClickxlColumnClusteredrxlBarClusteredQxlAreaxlPiexlRadar& chkStackedf chk100Percent chkShowPointsEcboChartType_ChangechkStacked_ClickxlColumnStacked100_ xlBarStackedd@xlBarStacked100ixlLineMarkersStackedxlLineMarkersStacked100Ռ xlLineStackedxlLineStacked1006 xlAreaStackedxlAreaStacked100xlRadarMarkers xlDoughnutoo Direction&LinesTop5XYGChart,gXdata܅Ydata3 XColumnName XFactorValuesۮ YColumnName6 YFactorValuesPtr MultipleYs{MincWMaxc.ColH DataSeries6WSeries]RedGreenBlue Charactersrg IgnoreAxesmodChart Trendlines@xlLinearLegendPPoints xlDiamond MarkerSize&~ShadowrefDataa0txtCurrentAreaIoptCurrentFirstY optNoStandard-optStandardFirstT[ optNoCurrentbtnAppend_Click3 CurrentData7OldPosd|SelStartZ SelLengthcmnExpandDataArea chkExpandKcmnIgnoreDataAreav_cmnIgnoreCurrentAreaqcmnDisplayDataAreaFirstv modColumn5 NameArrayTypei RangeName HeaderAddresso2 HeaderSuffix6ColumnNo NameArray ArrayLength0DummyDMaxCol5MaxRowSelectedMaxColSelectedN WorkbooksB vbExclamationProtectContentsProtectfuserinterfaceonlyN RangeIsEmptySetupColumnNames0IsEmpty cnt+Reply / LastDataRow! NameObject ThisName$, ShortNamer QuestionAskedE NextRangeNextcczFindColumnInNameArraysvbYesNovbYesa? GetColumnIdAppendToNameArray.RowRange^OldBook²NewBook,ThisBook-3OldSheet(NewSheet  ThisSheetBookNameFromRange3SheetNameFromRange?uEndSub:FindColumnByName[:FullNameОRight  OldAddress~ NewAddressFindColumnByAddress:AlphabetmdIsFactorx;CommentIndicatesFactorgCommentHsSelectionOrderTag&MaxVar NextSelection\ MinSelection LastSelectionǦmodSheet  SheetExists4found+ WorksheetsGetSheet SheetName6whatCSheet[ targetnamemexists] vbOKCancelx?vbDefaultButton2vbCancel' DisplayAlertsSheets RangeBoxu! RangeOption SheetOption BookOptiondProtectStructurefRngU OutputAddress^Wb_WorkbookkWs_ Worksheet CurrentSheeteBookNameaFindBooke FindSheetBookInStrRevĈ modCommonU ShellExecute"hwnd/ lpOperation8lpFile lpParametersZ lpDirectoryenShowCmd shell32.dll+FileNamejRetVal; vbNullString modTranslate+strUserDefined1strSummUserDefinedstrDescriptiond strCopyrightm strCompany=WstrUK bmodRegistrationZ RegistryKey SerialNumberԿ CustomerNamey strSignatureQLicenceo ArrLicencesfcmnRegistrationMessagecmnRegistrationTexts ConfigTextxregValidateRegistrationRegNonRegText3RegSt,DateStZ^RegNum'  RawRegTextr DiskNumber[a NumericOnlyOUnCombineDateNumE+ValidReg ValidDateapiDiskSerialNumber  SaveSerialNum  EncodedText= CharacteriCstNumLstTextRawTexttGetFromRegistry? DecodedText&stInputstDateArr u NumElementsRetDefineValidLicences UnEncrypt#RegDaterSaveInRegistryg5Encrypt[Asc!uCreateRegistryEntryxVbRegCreateKeyHKEY_LOCAL_MACHINESubKeyP VbRegSetValueREG_SZdDefaultVbRegQueryValueE NumString modRegApizHKEY_CLASSES_ROOT$HKEY_CURRENT_CONFIGxHKEY_CURRENT_USERʝ HKEY_DYN_DATA HKEY_USERSiREG_OPTION_NON_VOLATILE& REG_EXPAND_SZ  REG_DWORD REG_BINARY(>REG_DWORD_BIG_ENDIANPREG_DWORD_LITTLE_ENDIAN; ERROR_SUCCESSjr ERROR_REG$ SYNCHRONIZE READ_CONTROLSTANDARD_RIGHTS_ALLSTANDARD_RIGHTS_READ׾STANDARD_RIGHTS_WRITEe<KEY_QUERY_VALUE KEY_SET_VALUEKEY_CREATE_LINKKEY_CREATE_SUB_KEY4KEY_ENUMERATE_SUB_KEYSw KEY_NOTIFYKEY_READTKEY_ALL_ACCESS< KEY_EXECUTE KEY_WRITE RegOpenKeyEx2|hKey lpSubKey ulOptions[ samDesired( phkResult4 advapi32.dll}0RegCreateKeyExReserved\lpClass2 dwOptionslpSecurityAttributeslpdwDispositionYERegQueryValueExString lpValueName) lpReservedPlpTypelpDatah0lpcbData4RegQueryValueExLongRegQueryValueExNULL8RegSetValueExStringdwTypelpValuecbDataiRegSetValueExLong RegDeleteKeyRegDeleteValue+ RegCloseKeylGetVolumeInformationblpRootPathNamelpVolumeNameBuffer_nVolumeNameSizelpVolumeSerialNumberIlpMaximumComponentLength)lpFileSystemFlags,lpFileSystemNameBuffer5nFileSystemNameSize kernel32.dll]OpenErr DeleteErrԻ CreateErrJQueryErrVbRegDeleteKeyRootKeyKeyNamelRtnj ValueName lCdatalValue܅sValue$lRtypeDKeyType9KeyValueflSizeoVbRegDeleteValue+:strDrivek SerialNumgBRestemp1LCTemp2MCSingleUserRegNow Commandline SavedValuesթDefaultDirectory, Form_Load{Success| txtRegText?fraRegNoVtxtRegNo_Change#btnOkayEtxtRegNo,txtRegText_ChangeZV btnOkay_Click'@vbCrLfUserForm_Initialize5clblTitlelblDescription lblCopyrightlblRegistrationUserFormN InitializeNClickItemz_DefaultjVersion_B_var_Version% VersionNo lblFactorListD btnCancelIV lblVarListLFrame1btnHelpaFrame2Label2,Label3,Frame3Change _B_var_Chr\; _B_var_Space _B_var_UCasea _B_var_Stringӊ _B_str_Chrm# _B_str_String _B_var_LeftQ _B_var_Midp _B_var_Right9Label1,txtExplanation_B_var_btnOkayH_B_var_fraRegNo]UserForm_Click _B_var_DatevLabel4, _B_var_VarsR _B_var_colfacK _B_var_RowFac` _B_var_TrimmT _B_var_StrLabel5,Label6,Frame4Label10@Label8,Label9, _B_var_IfP _B_var_ConstgmsgQ _B_var_msgbr_B_var_NextRow; _B_var_Error) _B_var_CellIsErrorUSSCDate DateStringE CancelButtonlblVariableList/; refSample1T refSample2T refSamples,refBy_ lblConfidence lblColumns܂ btnDisplay4Frame5 CheckBox1Label7,TextBox1S btnAppendLLcCBSDate9_B_var_SSCDate _B_var_GoTo8<StdError _B_var_ElseIfqm MaxColumns_B_var_MaxColumnsMessageDisplayed _B_var_On6 EndOfLoop" _B_var_Call _B_var_forjL cmnDuplAdd DuplAddoptDuplAdd_Click Frame3_Click optDuplAdd(W selectionoderܴ_B_var_selectionoderzslecetionorderp _B_var_slecetionorder_B_var_i  NoOfUsersc ArrNoOfUsers LicenceNames# CommercialstrUnregisteredstrRegisteredTo strLicencestrForNonCommercialUsehstrForCommercialUse=strOneComputer)strUpTo strComputersstrPublicDomain cmnSingleUser SingleUser,; _B_var_SetY!$K   m #/i *u :' (q Aw'{-14 !M68) "Wg C <?+ I >FGSED W%7=XZm3DD452EE1-E08F-101A-8-02608C4D0BB4"FM20.DLL#Microsoft  @. Object Library/;!1?9??00}#0?# 50 rBCE13760-64A7-11D5-B656A4768BFDFA6c:\windows\W@P\VBE\DO.8exd`7.E .`M CXOff@CO@f5Ğ ,,2DF8D04C-5BFAcB-BDE5,AA@42cPROGRAM FILES\MICROSOFT OFFICE\MSO97 i# 8.0Li"ZRefEditGR@XfElt3z,Y4517*Y19,Program Files\F2@\c\RE`FEDIT"@ a CoolI BBI80`8B19C0B5-8023II I`j@ @(EFEAG¬&1SheetD1GSh2eQ12U H1@",b ""V+ 2 2 2Y 2  3 3 3 3  ThisWorkbookG T*AW⥈kbok 2 a lAmodMainGEBmdMim`b2c>-=!b<%= AdlgUnc kgU@Mtc22a zk(y}J' lgXYPlo0tGX(YPo /-j2otS}$ss_G ts_\]ns2E` lgY9 2?1! )UtilityG2!c+Uiip^y4#y_~4#5,5np,q 'v0O5='/{Ic=DescriptivetsG&U"D`ds`;rpp"v# t.OMC2OiOs?v-Z& lgTwoTtes0A Tw>TP er9221MgO? S/pXBoxcJPB xJ)s&d_Zv&>3$(2y&7d*a.6O,neD7O@de9? p)}#"_%bQQdQQdcdiv)vDen+m7n7~tQmcyiNQŃSaveمSЅ?ՅdSave2modSaveDH(1)#$P,GR!( +  dlgLookupG@lgLokup- L2&v*"d xlg@OnePro#OnPrE2FN#F >modEortionGEoIhtiKn2O'O@TwoMKTw?$NKD IKK O#3)O#QK jlgSummariseGABoSmaKis@r4 2 O&t9O&=Q&IqMomentsGŠΊM@Im@#nt@%<K IQ O#~YO#CmECHU@nstackcWayG FIUbs@"acCfW-@y2y5o,r:YColumnPlTot#`d:C'lQ;nP o@N#`Wo)T4D1;`' ;Char@a$5Ch&ri2q/RpH9 6lgDataAreaG"#D*t`A]eM2!~!!5"o u@p䱗%"d.PShee2S2e}mt Zi2g/ٚO/#2Fmm!GAom#&7-!v-1! TransXlatCTCab~lDt"S Y *Registram0"aRgpmIr 5nn2pqɿ L ySS Api-cApi$ `yiZ0P#MAmtt7 _ &*x?15 AboFut7AbZuP5s7=i U$  6}`*(R KQDBTahoma8KEFҋB `EF 0 2<lblFactorListng)__SRP_0)SH~__SRP_1 dlgUnStack0eRivRfO\MICROSOFT OFFICE\OFFICE\MSO97.DLLOffice  ! EFBoxplotDialogShow 9c:\Program Files\Microsoft Office 2000\Office\REFEDIT.DLLRefEdit  *Vvc:\windows\TEMP\VBE\RefEdit.exd !   Auto_Open Auto_Close BuildSSCMenu RemoveSSCMenu AddMenuItem DataEntryHelpUnStackDialogShowUnStackTwoWayDialogShowStackDialogShowLookupDialogShowDataManagementHelpXYStackDialogShowColumnPlotDialogShowQQplotDialogShowDenestDialogShow GraphicsHelpDescriptiveDialogShowSummariseDialogShowOneTtestDialogShowTwoTtestDialogShowOneProportionDialogShowTwoProportionDialogShowStatisticsHelpDataAreaDialogShow GeneralHelpGoodPracticeHelpTutorial TutorialPDFAboutSSC AboutSSCStat RegistrationCheckRegNotYetImplemented GetFromRegistry EncodedText DecodedText 2Software\SSC\SSC-Stat\Reg Reg EncSer Cname" SSC-Stat, Statistical Services Centre, The University of ReadingregValidateRegistration NumericOnlyregCheckRegistrationNumberUnCombineDateNumValidRegDefineValidLicences ValidDate SaveSerialNumEncrypt UnEncryptCreateRegistryEntrySaveInRegistry && }*c/Xv}*c/Xv}*c/Xv{}*c/Xv}*c/Xv"-?@lblRegistration!-6S` yQ @rame2@ ( 4h chkCopyData4%( 8lstVariable $8lstBy@C Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgUnStack Caption = "UnStack" ClientHeight = 5880 ClientLeft = 45 ClientTop = 330 {lFWJObtnOkayȏ[qJ eUserForm}*c/Xv F3Dynamic  PlblTitlelblDescription lblCopyrightUserForm_Initialize btnOkay_Click T $Worksheet Menu Bar Chart Menu BarFFF F FCaption &Window F COUNTBLANK(?) .COUNTA(?)-COUNTBLANK(?) COUNT(?) SUM(?) 8IF(COUNT(?)>0,AVERAGE(?),"") /COUNT(?) :IF(COUNT(?)>1,SSCSTDEV(?),"") MAX(?)-MIN(?) MIN(?) MEDIAN(?) MAX(?) QUARTILE(?, SKEW(?) KURT(?) DEK*mPrU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ YrYv  .&    )Aa )Yy@1Qq 9a)Qqi 9 Sheet1Sheet2Sheet3 ThisWorkbookmodMain dlgUnStack dlgXYPlotstats_functionsdlgStack modUtility modUnStackmodStackdlgDescriptiveStats dlgTwoTtest dlgBoxPlotmodTtest dlgOneTtest dlgQQPlot dlgDenestmodSave dlgLookup dlgOneProp modProportion dlgTwoProp dlgSummarise modMomentsdlgUnstackTwoWay dlgColumnPlotmodChart dlgDataArea modColumnmodSheet modCommon modTranslatemodRegistration modRegApidlgRegistrationdlgAboutSSCStatF@C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA6\VBE6.DLLVBA  0F8c:\Program Files\Microsoft Office 2000\Office\EXCEL9.OLBExcel @0FC:\WINDOWS\SYSTEM\stdole2.tlbstdole 1yP.E .`M C:\WINDOWS\SYSTEM\FM20.DLLMSForms  Q ``7 dVvc:\windows\TEMP\VBE\MSForms.exd  Q pL-[DR 2C:\PROGRAM FILESVSQ(?) <DEVSQ(?)+COUNT(?)*AVERAGE(?)^2 ,SSCSTDEV(?)/AVERAGE(?) PERCENTILE(?, SUM(IF(? ,1.0)) *100 &SSCstat ssc-stat.hlp SSC-Stat V2.0 ,SSCstat tutorial 1.pdf Booklets.hlp SSC_DS_Hdr SSC_DS_Count SSC_DS_Mean SSC_DS_Stdev 1...n ShellExecute shell32.dll ShellExecuteA 'A'p apiLaunchFile  &General "&Define Data Area $DataAreaDialogShow *&Overview of SSC-Stat GeneralHelp &Tutorial (PDF) TutorialPDF &Help on &Data Entry DataEntryHelpWF \ *&Good Practice Guides GoodPracticeHelp 8&Statistical Services Centre AboutSSC &About SSC-Stat AboutSSCStat &Registration Registration &Manipulation &UnStack "UnStackDialogShow "UnStack(&Two-Way) .UnStackTwoWayDialogShow &StackOnAction ] StackDialogShow &Lookup LookupDialogShow &Help $DataManagementHelp &Visualisation "X-Y &Scatter Plot "XYStackDialogShow (&Category-Value Plot (ColumnPlotDialogShow &Boxplot "BoxPlotDialogShowControls 0&Normal Probability Plot QQPlotDialogShow "&Density Estimate DenestDialogShow GraphicsHelp &Analysis .&Descriptive Statistics *DescriptiveDialogShow &&Summary Statistics &SummariseDialogShow &One-Sample tType $OneTtestDialogShow &Two-Sample t $TwoTtestDialogShow ,One-Sample &Proportion .OneProportionDialogShow ,Two-Sample P&roportion .TwoProportionDialogShow StatisticsHelpVBE6.DLL 9;  FAddBeginGroup9BXv9BXv9BXv9BXv9BXvҋB ` txtSigFigs"ҋB `lstByLabel8refRange@7 dVv = Label9?F`Frame3btnOKRҋB `optRange optNewSheet optNewBookBҋB `chkRangetxtWorkbookNamelblWorkbookNametxtWorksheetName9BXv @ ( btnCancelFrame12ҋB `cboProp cboConditionFrame2 chkVariablechkCount chkNonBlank chkNumericchkMeanchkStdevchkTotal chkAdditionalbtnHelp chkMaximum chkMinimum chkMedian chkQuartilesLabel1 chkSkewnesschkSSchkPercentileschkProportionstxtPercentilestxtProportionschkCV chkPercent chkCopyDatachkCumulchkSortchkBytxtOtherFrame4 fraAdditional lstVariableLabel10UserForm_activatechkVariable_ClicklstVariable_Change chkBy_Click lstBy_ChangeEnableStatisticschkNonBlank_ClickchkAdditional_ClickchkPercentiles_ClickchkProportions_ClickoptRange_ClickoptNewSheet_ClickoptNewBook_Click btnHelp_ClickbtnCancel_Click btnOK_Click FlagErrorSetupDescriptionAddRow  8< 1 C:\ 8Error: Opening Registry Key! *Error: Deleteing Key! (Error: Creating Key! ,Error: Querying Value! RegOpenKeyEx advapi32.dll RegOpenKeyExA JJ8RegCreateKeyEx RegCreateKeyExARemoveTrailingBlanks JKXRegQueryValueExString RegQueryValueExA JLxRegQueryValueExLongRegQueryValueExNULLRegSetValueExString RegSetValueExA JMRegSetValueExLong RegDeleteKey RegDeleteKeyA JNRegDeleteValue RegDeleteValueA SigFigFormat JO RegCloseKey RegCloseKey JPGetVolumeInformation kernel32.dll GetVolumeInformationA qQQVbRegDeleteKeyVbRegCreateKeyVbRegQueryValue VbRegSetValueVbRegDeleteValueapiDiskSerialNumber    NextFieldGetHelpAllDataInColumnFF ReplaceStringFindNamedRange ValidRange DecimalNumber 0 licence, registered to  hUnregistered. Non-commercial single machine use only 9;` h 9;  9;  9;_  ,  9;  9;^  9;i ( 9;x H 9; h 9;1  Single user Small group Medium group Site Large site InitNames RangeIsEmptySetupColumnNames FindHeaderRowAppendToNameArrayFindColumnByNameFindColumnInNameArrayFindColumnByAddress GetColumnIdGetColumnAddress GetColumnNamePutColumnNamesIntoListboxƏYl|CommentIndicatesFactorSetSelectionOrder ItemsInBoxNumberSelected ,, !i ĎBW Proportion3ҋB ` Percentage Count Count < <= > >= = <> SheetExistsGetSheetInitialiseOutputRangeNextFreeColumn OutputRange OutputRange2FindBookF FindSheetFSheetNameFromRangeBookNameFromRange SelectRangeutSaveControlsgĤIx8< SaveControlutRestoreControlsRestoreControlUsedRangeRowRows LLH  $(,048<gĤIx8<db Object 9;2 x 9;O  F 6There are no workbooks openProtectContents "userinterfaceonlyProtect Range Cells`F ColumnColumnsCurrentRegion , 9;S  9;.  HiddenexternalAddress TDo you want to treat the first row of data & as column headers? Value Column_ Value_Name $ [ ! ' 9;  ( )AddItem ListBoxListCountSelectedListIndex 9;k ('DFEnabledďYl|TextCҋB ` DescStatҋB ` ""UnStack#=h8+3qG?,2qLoo 9;E `o \The output range that you specified is invalid 9; F   a ,All data in the sheet   will be lost Delete 9;0  $A$1ListfĤIx8< optSummary Missing :Formula =IF(ISNUMBER( ), =IF( ="", Select 9;P  9;  9;e  ,Descriptive Statistics ,Number of blank values 4Number of non-blank values <Percentage of non-blank values >Cumulative% of non-blank values 0Number of numeric values Total Mean $Standard Deviation Minimum Lower Quartile Median Upper Quartile Maximum Skewness Kurtosis 0Corrected sum of squares 4Uncorrected sum of squares 0Coefficient of Variation Percentile (Proportion of values (Percentage of values Number of values User-Defined Blank CountAll %CountAll Cum%All StDev Q1 Q3 CSS USS CV Prop Percent UserDef 6Excel add-in for statistics Copyright 2002: lStatistical Services Centre, The University of Reading United Kingdom NamesRefersTo R[ ]C/SUM( )*100 SUM(R[ ]C2:R[ ]C)/SUM( 1) 3) 0% %  ?EntireColumnFontBold ItalicFormulaArrayNumberFormat 0 0.0 # E+00 #DIV/0!SSCMeanSSCVarSSCStdev 9;f ` TextBox ComboBox RefEdit CheckBox OptionButton Error Unstackc9BXvg9BXvd9BXv9BXvf9BXv lblVarListLabel2Label3fraSortchkColumnNameschkFactorNames optSortByNameoptSortByFactorchkIgnoreMissingchkIgnoreFactorMissinge9BXvփDXv  lblFactorListUpdateColumnNames chkSort_Click 9;/ Tag Colour Gradation Variable PlotSSCDate //f6YXv/f6YXv/f6YXvz/f6YXv/f6YXv/f6YXv 9 P CBSDateZEYXvփDXvPփDXvփDXvZEYXv  Label5Label6 SetupSummary InsertColumn AddColumnParseColumnHeader  8@ ,, !~i @ĎBW Summary RC[ ]/SUM( SUM(R2C[ ]:RC[ ])/SUM( %ZEYXvփDXvփDXvVփDXvփDXv optNoCurrentoptCurrentFirst btnAppendZEYXv ɔ 8  chkExpandrefDatatxtCurrentArea optNoStandardoptStandardFirstbtnAppend_Click x @The Data Area address is invalid.[EYXv8[EYXv/[EYXv~ZEYXv7[EYXv0[EYXv cboSampletxtMean x *[EYXv=[EYXv+[EYXvxZEYXv<[EYXv,[EYXv )   4ABCDEFGHIJKLMNOPQRSTUVWXYZR9YXvփDXvփDXvDփDXvփDXvR9YXv   refSamplelblMeanlblStdevlblSize optOneColumntxtStdevtxtSize lblConfidencetxtCIchkTest txtTestValue cboColumncboColumn_ChangecboSample_ChangeoptOneColumn_ClickoptSummary_ClicktxtMean_ChangetxtStdev_ChangetxtSize_Change ShowBoxes <<<KKT Sample 1 OneTtest =COUNT( =AVERAGE( =SSCSTDEV( -1 - One-Sample t MakeTTable  of difference ,Number of observations Offset $Degrees of freedom 2Pooled standard deviation &Difference of means Standard error % CI T statistic &P-value (one-sided) &P-value (two-sided) =sqrt( * =(( + )^2)/( /( -1)+ -1)) -2 =sqrt((( -1)* +( )/ *SQRT(1/ +1/ TINV( )* =( 0.00 &=ROUNDUP(TDIST(ABS( ,1),4) 0.0000 ,2),4)R9YXv cboColumn1 DDifference of mean from test valueR9YXvփDXvփDXv@փDXvփDXv lblSample1 lblSample2 lblFactor lblSummary lblSummary2 refSample1 refSample2refByR9YXv i P optTwoColumns cboSample1 cbosample2cboBytxtMean2 txtStdev2 chkUnequal chkPairedtxtSize2 cboColumn2cboColumn1_ChangecboColumn2_Change cboBy_ChangeoptTwoColumns_ClickcboSample1_ChangecboSample2_ChangetxtMean2_ChangetxtStdev2_ChangetxtSize2_ChangechkPaired_ClickchkUnequal_Click << <wwwwT Sample 2 TwoTtest =" ","",IF( =" ","", ))  -  Paired t Two-Sample t && T)YXv)YXvU)YXv:)YXv)YXvV)YXv q ` H)YXv)YXvI)YXv)YXv)YXvJ)YXv 0 ,, !<i @ĎBW)YXvE)YXv Med :Too many factor levels found.   DSome factor levels will be ignoredP)YXv؛)YXvQ)YXv0)YXvכ)YXvR)YXv  zZcXvzZcXvzZcXvZzZcXvzZcXvzZcXv a 8azZcXv)YXv)YXvczZcXv Y ezZcXv›)YXv)YXv)YXv)YXvLabel4chkTrendgzZcXv ٹ  CancelButtonlstXvarlstYVar cboChartTypechkTrend_ClickAddChartTypeToListlstYvar_Change lstXvar_ClickCancelButton_Click NewXYBySeries Min 88@ #ҋB ` Data Points only Lines only *Lines and Data Points Curves only ,Curves and Data Points Data Points XYPlot #N/A MakeChartzZcXvܛ)YXv)YXv4)YXvۛ)YXvzZcXv ٿ p chkStacked chk100Percent chkShowPoints Frame2_ClickcboChartType_ChangechkStacked_Click 88@ "$ Column Bar Line Point Area Pie Radar Column Chart Bar Chart Line Chart Point Chart MIN( Area Chart Pie Chart Radar ChartqzZcXvʛ)YXv)YXv")YXvɛ)YXvszZcXv  chkOutlierchkJoinchkOutlier_ClickBoxPlot  Boxplot ,  Base LW LB UB UW Outlier Extreme Max =MIN( QUARTILE( ,1) MEDIAN( ,3) =QUARTILE( =MEDIAN( =MAX( <0, ,0) <0,IF( <0,( )/100, /100),0) ),0) >=0, >=0,IF( >=0,(CopyChartObjectsPlotVisibleOnly chkSortRows Source PlotBySetSourceDataChartTypeHasTitle Boxplot of ChartTitle  by SizeHasLegend  SeriesCollection BorderColorIndexInteriorinclude AmountErrorBar ColorMarkerStyle *MarkerForegroundColorLineStyle *MarkerBackgroundColorPlotArea WeightAxes "HasMajorGridlines "HasMinorGridlinesMinorUnitMajorUnitMinimumScaleCrossesAt "TickLabelPosition 9;L yzZcXvΛ)YXv)YXv&)YXv͛)YXv{zZcXv QQPlot uzZcXv̛)YXvA)YXv$)YXv˛)YXvwzZcXv P <<<TFXValues4MarkerBackgroundColorIndex4MarkerForegroundColorIndexTrendlines Colour plot  of xF  against MFAxisTitleCharactersTFpFMinMaxkFMarkerSize ShadowA fXvڛ)YXv)YXv2)YXvٛ)YXvOptMaxoptMinC fXv a lstCarryoptDuplNewColumn optDuplIgnore optDuplNewRowoptFirstoptLast fraExceptlstCarry_ChangeoptDuplIgnore_ClickoptDuplNewColumn_ClickoptDuplNewRow_Click && \% fXv fXv& fXv fXv fXv' fXv H fXvB fXv fXv fXv Frame3_ClickoptDuplAdd_Click ˜fXv˜fXv˜fXvr˜fXv˜fXv˜fXv I X optDuplAdd Te5!pXvXe5!pXvUe5!pXvd5!pXvWe5!pXvVe5!pXv y$FYv}$FYvz$FYv/$FYv|$FYv{$FYv 1 Yl| .lIYvlIYvlIYv̛lIYvlIYvlIYv ( SSC-Stat V2.1y).Yvy).Yvy).Yvy).Yvy).Yvy).Yv I 8y).Yv Unregistered. Registered to   Licence: .for non-commercial use &for commercial use *on one computer only. on up to   computers. Public DomainL'Yv'Yv'Yv ) h&_'Yvy).Yv' laHM(,Ei0pL Single User Group Departmental Large Site' l0L4'Yv'Yv'Yvpy).Yvy).Yva'Yv Y & ,, !i ĎBDLFLWY9foXZCompObjpi52Wc] n`` ~R ~RoKMTPi81NP n``ivRivRCompObjRpfho/9i183 n``eRnRfo24P ClientWidth = 6150 HelpContextID = 210 StartUpPosition = 1 'CenterOwner TypeInfoVer = 139 End $  \}z*-R KQDBTahoma8KEFҋB `EF (7<btnOK@${*,OKL{w @Tahoma@(Cancel@{uTahoma@$(Column(s) to stackE 5Tahoma@8F     !"$&'()+,o./012l46789:;<=>?@ABCDEGHIJKLMNOPQSUVWXY[\]^_`bdefgijkmnpqrstuwyz{|~rU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~) a?Statistical functions and dialogs - Statistical Services Centre ExcelMenuMyMenuItemNameActionItemType BeginGroupRegNoRegTextstInputstDateRegDateNumTextSubKeyValueDefaultNumber )  9(hwnd lpOperationlpFile lpParameters lpDirectorynShowCmdFileName  =8Options Q=H = =X a>h >x A? 1@9 @HeaderFormulaAsArrayFormathKeylpSubKey ulOptions samDesired phkResultReservedlpClass dwOptionslpSecurityAttributeslpdwDisposition lpValueName lpReservedlpTypelpDatalpcbDatadwTypelpValuecbDatalpRootPathNamelpVolumeNameBuffernVolumeNameSizeSortlpVolumeSerialNumberlpMaximumComponentLengthlpFileSystemFlagslpFileSystemNameBuffernFileSystemNameSizeRootKeyKeyName ValueNameKeyTypeKeyValuestrDriveMessagePos Delimiter ContextIdHelpFile SStartMyRangeSigFigs ThisString Oldstring NewStringNameAddressDummy ThisRange DataRange HeaderRow FirstDataRow ColumnName HeaderAddressSelectedColNamei i ^BoxFactorVars SheetNameNewSheetRangeBox RangeOption SheetOption BookOptionGapNewBook OutputAddressDefaultSheetNameBookName a )b bSaved arrObjectsVarCollIndexFactors RowFactors DestinationCopyDataFactorAsVarName IgnoreMissingIgnoreFactorMissingMissing NonNumeric CellRange 9DataArea DateString a9 9( NoOfFactors FactorNames FactorValues 98 9H Q9X 9h NoOfColumnsConfidenceLevelPairedUnequalVariancesTest TestValue 9x MaxColumns 9 9 A9 9 9 9CodeXVarsYvarsTopByColourMarkers Trendline ChartTypeXColumnsYColumnsXNameYNames FactorName Direction ChartTitleLeft 9Lines 9 DataColumnsVarNamesOutliers JoinMedians DisplayMeans 19 9 9( 98 q9H 9X Y9h 9x q9 Q9 F     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEGHIJMNOQR[TUVWXYZL\]^_`abcdefghijklmnopqrstuvwxyz{|}~i4457 n``eRnRCompObjpfo68f*KoDJ-i63H n``ivRivRfFDlblVariableList=$!XchkCarry5(&24btnHelp1{*$?#Frame2@x$I#Frame1@ ( \h chkCopyData `*("18lstCarry( 8lstVariable={ Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgStack Caption = "Stack" ClientHeight = 6615 ClientLeft = 45 ClientTop = 330 ClientWidth = 6165 HelpContextID = 220 StartUpPosition = 1 'CenterOwner TypeInfoVer = 192 End (H  @U}*r)R KQDBTahoma8KEFҋB `EF (2@Label1@((Factor(s) to unstack by  4(Cancel@{uTahoma@$(Column(s) to unstack  4,OKL{w @Tahoma@(Help{ n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]( gh chkCopyDatap!, (` chkAdditionala~$l# Frame4@( sT chkVariablei(@18lstBy@( *8lstVariable Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgDe{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  /#}(< Output optionsaR KQDBTahoma@,4txtWorksheetNameSO$ 8refRangeS,(4txtWorkbookNameeS()28Label2@#(*2<Label3@0+2<lblWorkbookNamee$,#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4Ffo\^Pi121 _a n`` ~R ~RCompObjpbedded ObjectForms.Frame.19qLF# 40GRemember original data column names5Tahoma@4F O1GSort columns5Tahoma@PF% 40GRemember original factor column names5Tahoma@PF'0GIgnore cases with missing factor values5Tahoma@DFi51gxn n``2R2RfomoCompObjp 0GNew workbook5Tahoma@(H  /}L TR KQDBTahoma$-XoptRange( .XoptNewSheeti( /ToptNewBookL {uTahoma@HF n``Microsoft Forms 2.0 FrameEmCompObjpCompObjB#aVBFrame%@dlgStackaEivR ~R,0GIgnore missing data valuesfa5Tahoma@@H  6}i(Unstack optionsR KQDBTahoma,$lchkColumnNamesa$%TchkSort J$0#fraSortP,3pchkFactorNamesai45pchkIgnoreFactorMissing ,6dchkIgnoreMissing l n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F1GBy name5Tahoma@4F 0GBy factor_L5Tahoma@(H  2}R KQDBTahomad, 1PoptSortByNameaj,2ToptSortByFactor0GValues only (linked by default)5Tahoma@`#* 5Tahoma@`#* 5Tahoma@, :8btnCancelHj%, 28lblVarListH(7<btnOK@ #j%$#Frame1@@(24btnHelp)j%$##F n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@dlgXYPlotC~V ~R2Rf}oU[i46Y n`` ~R ~R 0GRow factor(s)a5Tahoma@(Help{uTahoma@HF0GValues only (lin n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qHF1GCreate stacked data column(s)LO5Tahoma@ @H,HStack@5Tahoma@LF"1GCreate factor(s) from column names5Tahoma@@H,HFrom5Tahoma@@G, 0GMatch column namesE7 @Tahoma@@F G0GOmit cells with value:5Tahoma@H,H5Tahoma@DG, -0GInclude trailing blanks7 @Tahoma@( Output order*5Tahoma@AH,qH5Tahoma@AH,qH5Tahoma@AH,qH5Tahoma@ (Row factor(s):q5Tahoma@( Default name"s5Tahoma@@H  Z %}(o Stack optionsaR KQDBTahoma|( @hchkStackData( A@txtStackNameL,BlchkStackFactoraZ, C<txtFactorNameraLZ(D1dchkMatchm $E`chkOmit $F4txtOmit , G1hchkTrailing(U2<Label4@5( V8 cboOrderData,W8 cboOrderFactorah, X18 cboOrde(2<Label2@("7<btnOK@"@&, #:8CancelButtonc@&((24btnHelp@&$.#Frame2@]$4#Frame1@$~T chkBy@<i( h chkCopyData%$-8lstYVar{(118lstBy@I{$}4 lstXvar srRow, Y0@ lblOrderRow(Z2< Label6@6 n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5oOQcCompObjapCompObjSvaVBFramex<Tahoma@( Book name:N5Tahoma@@H  T#}(" Output optionsaR KQDBTahoma@,J4txtWorksheetNameSO$L8refRangeS,M4txtWorkbookNameeS(N28Label2@#(O2<Label3@0P2<lblWorkbookNamee$Q#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  T}L TR KQDBTahoma$RXoptRange( SXoptNewSheeti( TToptNewBookL {ked by default)5Tahoma@`# 5Tahoma@`# 5Tahoma@, :8btnCancelH{*0 2 Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgXYPlot Caption = "X-Y ScatterPlot" ClientHeight = 6015 ClientLeft = 45 ClientTop = 330 ClientWidth = 6105 HelpContextID = 310 StartUpPosition = 1 'CenterOwner TypeInfoVer = 85 End VBFrameFdlgDescriptiveStats(l2RӎRfofhi108 p|z n``ӎRӎRf%oy{!CompObjp ( Y variable(s) 5Tahoma@( X variableHE5Tahoma@,OKL{w @Tahoma@(Cancel@{uTahoma@(Help{uTahoma@4F n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q( Chart typeN5Tahoma@AH,,5Tahoma@<FL0GShow trend line(s)E5Tahoma@@H  2 }&Chart optionslR KQDBTahoma(/2<Label4@( 08cboChartType2 Z$2\chkTrendXy {,fo`bCompObjpCompObjda@H  |#}(V Output optionsR KQDBTahoma@,r4txtWorksheetNameSO$t8refRangeS,u4txtWorkbookNameeS(v28Label5@#(w2<Label6@0x2<lblWorkbookNamee$y#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  |}L TR KQDBTahoma$zXoptRange( {XoptNewSheeti( |ToptNewBookL { ,0GBy factor(s)5Tahoma@HF0GValues only (linked by default)5Tahoma@`#x 5Tahoma@`# 5Tahoma@`x 5Tahoma@CompObjhpi125  n``RRfzou4i43j n``2R2RfoikCompObjpoCompObjpi63 n``RRfbedded ObjectForms.Frame.19q4F 3 1GSort columns5Tahoma@@H,,4G5Tahoma@$(Number of Sig. Figs. 5Tahoma@DH  o}(<Presentation optionsR KQDBTahoma$mTchkSortq( n<txtSigFigsLi66r n``2R2Rf oqsPi74tv n``2R2R$  s}+*a$R KQDBTahoma8KEFҋB `EF <(7<btnOK@ #d!,OKL{w @Tahoma@(Cancel@{uTahoma@4F n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q<F 1GStandard deviationE5Tahoma@,Fz 1GMean5Tahoma@0F 1GTotal@5Tahoma@8FM 1GNo of non-blanks5Tahoma@4F h 1GNo of blanks5Tahoma@<F 1GNo of numeric values5Tahoma@4F  0GCumulative%5Tahoma@4F 0G% non-blanks5Tahoma@DH  r}CStandard statisticsR KQDBTahomaX$V\chkStdevw $WLchkMeanw $XPchkTotalw( YXchkNonBlankw $ZTchkCountw( j\chkNumericHw(q1CompObj}5aVBFrame7XdlgTwoTtest.ӎRRf=TchkCumulw , r1TchkPercentHw n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F 0GMedian@5Tahoma@4F 0GQuartiles_L5Tahoma@<F 0GSkewness/Kurtosis E5Tahoma@8F 0GSums of squares5Tahoma@<F ,0GCoeff. of variation5Tahoma@0F ,0GRange@5Tahoma@0F",0GMaximum5Tahoma@0F! 0GMinimum5Tahoma@4F 0GPercentiles5Tahoma@4F EF0GProportions5Tahoma@H,f,5Tahoma@H,,5Tahoma@ (Other function:5Tahoma@H, ,5Tahoma@AH,,5Tahoma@@ `5Tahoma@(H  p1}wR"( 4PchkMedianH0( 5TchkQuartilesP( 6\chkSkewnessq $7XchkSS@~ $8\chkCV@;$SPchkRange5( TPchkMaximumH>( UPchkMinimumH],[TchkPercentilesa,\T chkProportionsa+t ]14 ?txtPercentilesa Enter one or more numbers between 0 and 100 separated by spaces ^4 ytxtOtherEnter a valid Excel formula, with a ? character indicating where the column data are to be inserted, e.g. COUNTIF(?,">20)8J(_2@ Label1@ d c14 -txtProportionsaEnter one or more numbers separated by spacesepa, d18cboCondition(p14cboProp  ,0GBy factor(s)5CompObjpfouwCompObjpscriptiveStats Caption = "Descriptive statistics" ClientHeight = 5280 ClientLeft = 45 ClientTop = 330 ClientWidth = 6120 HelpContextID = 410 StartUpPosition = 1 'CenterOwner TypeInfoVer = 165 End (H  @v}*E*R KQDBTahoma8KEFҋB `EF!, .:8btnCancelCompObjspCompObjaVBFrameHdlgBoxPlotRRTahoma@(Help{uTahoma@H n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  i1}( Output optionsaR KQDBTahoma@,C4txtWorksheetNameSO$E8refRangeS,F4txtWorkbookNameeS(G28Label8@#(H2<Label9@0I2<lblWorkbookNamee$J#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  i} R KQ(Cancel@{uTahoma@,OKL{w @Tahoma@@FC,1_LSamples in two columns:5Tahoma@AH, ,5Tahoma@AH, ,5Tahoma@( Sample 1:5Tahoma@( Sample 2:5Tahoma@@F0_LSamples in one column::    ) "#$&'(*+-./01234689:;<>?ABCDEFGHIJKLMNOPQRSTUVWX~Z\]^_`bcdefgiklmnpqrtvwxy{|}DBTahoma$KXoptRange( LXoptNewSheeti( MToptNewBookL {F]{0GValues only (linked by default)5Tahoma@@F 0GAdditional statisticsy d5Tahoma@4F 1GVariable(s) n``Microsoft Forms 2.0 FrameEm(o2DLabel105Tahoma@`#*  5Tahoma@`#* ; 5Tahoma@, :8btnCanceld!$+#Frame2@~, 3!fraAdditionala*Z$9TchkBy@0i(>24btnHelp'd!$B#Frame1@5Tahoma@AH, ,5Tahoma@AH, ,5Tahoma@ ( using factor:5Tahoma@8F 0_LSummary values:5Tahoma@H,,5Tahoma@H,,5Tahoma@H,,5Tahoma@H,,5Tahoma@H,,5Tahoma@H,,5Tahoma@(Mean5Tahoma@ ( Std deviation<5Tahoma@(Size5Tahoma@H$ {5Tahoma@H$ {5Tahoma@H$ {5Tahoma@(Help{uTahoma@H$ {foCompObjpi141  n```ĨR`ĨRo@`i85 n``ӎRӎRfao[PoPi71 n``RRCompObjpfi121  n``ӎRӎRCompObjYpfooj(Sample 25Tahoma@HF0_LValues only (linked by default)5Tahoma@'(/7<btnOK@ #', 0`optTwoColumnsa, 118cboSample1, 318cbosample2, 40<lblSample1O, 50<lblSample2i( 6`optOneColumn , 718cboSample (818cboBy@g , 90@lblFactorqg ( :X optSummary(;14 txtMean (>14 txtStdev (?14txtSize (@14 txtMean2, A14txtStdev2(B14txtSize2(C04lblMean5Tahoma@AH,VF5 n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:5(D0@lblStdev(E04lblSize, M18refSample1, N18refSample2, O18refSample (Q24btnHelp('(R18 refBy@g $U#Frame1@$}#Frame4@}T, 18cboColumn1 ;, 18cboColumn2;, F0Tahoma@@H  |#}(< Output optionsaR KQDBTahoma@,r4txtWorksheetNameSO$t8refRangeS,u4txtWorkbookNameeS(v28Label5@#(w2<Label6@0x2<lblWorkbookNamee$y#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0_LExisting rangea5Tahoma@8F g {1_LNew worksheeta5Tahoma@4F 0_LNew workbook5Tahoma@(H  |}L TR KQ8lblSummary , G08lblSummary2( h chkCopyData' s Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgTwoTtest Caption = "Two-sample t" ClientHeight = 6135 ClientLeft = 5445 ClientTop = DBTahoma$zXoptRange( {XoptNewSheeti( |ToptNewBookH s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F ,0_LPaired@5Tahoma@<F 0_LUnequal variances E5Tahoma@,(Confidence level: xxxx %: 5Tahoma@@H,O,95L5Tahoma@(H  }x ( ~PchkPairedH( \chkUnequalHc0 2LlblConfidencea$<txtCI@ sTahoma@AH,VF5Tahoma@(Sample 15Tahoma@ 330 ClientWidth = 6180 HelpContextID = 430 StartUpPosition = 1 'CenterOwner TypeInfoVer = 118 End (H  L@a}`*R KQDBTahoma8KEFҋB `EF ((7<btnOK@ #,OKG{w @Tahoma@(Cancel@{uTahoma@$(Tahoma@, >:8btnCancelH, ?2@lblVarListH?(C24btnHelp)$H#Frame1@T( ThchkCopyDatap( @8lstVariable s Microsoft Forms 2.0 FormEmbedded Object9qCompObjVaVBFrameXNdlgDenest`ĨReRf^f[oi56 n``RRfHF0GValues only (linked by default)5Tahoma@`#* 5Tahoma@`#* 5Tahoma@, ):8btnCancelH, *2DlblVarListH(.24btnHelp($8#Frame2@u$?#Frame1@$KTchkBy@ v( Lh chkCopyData(=18lstBy@{( +8lstVariable{ s Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgBoxPlot Caption = "Boxplot" ClientHeight = 4350 ClientLeft = 45 ClientTop = 330 ClientWidth = 6150 HelpContextID = 320 StartUpPosition = 1 'CenterOwner TypeInfoVer = 97 End (H  @g}`*cR KQDBTahoma8KEFҋB `EF, Z:8btnCancelG~(Cancel@{uTahoma@,OKL{w @Tahoma@@F1_LSample in one column:y d5fo,CompObj pCompObj%aVariable(s) to plot 5Tahoma@(Help{uTahoma@4F n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F; 0GDisplay outliers5Tahoma@4F a0GJoin medians5Tahoma@8F {0GDisplay meansa5TahoTahoma@AH, ,5Tahoma@8F 0_LSummary values:5Tahoma@H,,5Tahoma@H,,5Tahoma@H,,5Tahoma@(Mean5Tahoma@$(Standard deviationE 5Tahoma@( Sample size5Tahoma@ma@<H  ; }g Plot optionsR KQDBTahoma( 9XchkOutlierL$:TchkJoin$;XchkMean" { n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@oCompObjpCompObjaVBFrame?H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  J#}(" Output optionsR KQDBTahoma@,@4txtWorksheetNameSO$B8refRangeS,C4txtWorkbookNameeS(D28Label2@#(E2<Label3@0F2<lblWorkbookNamee$G#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  J}L TR KQDBTahoma$HXoptRange( IXoptNewSheeti( JToptNewBookL { ,0GBy factor(s)5Tahoma@VERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgQQPlot Caption = "Normal probability plot" ClientHeight = 4485 ClientLeft = 45 ClientTop = 330 ClientWidth = 6150 HelpContextID = 330 StartUpPosition = 1 'CenterOwner TypeInfoVer = 45 End (H  V@%}*R KQDBTahoma8KEFҋB `EdlgOneTtestIR`ĨRfoi125  n``RR0_LValues only (linked by default)5Tahoma@/([7<btnOK@"/( ``optOneColumn, a18cboSampleG( dXoptSummaryG(e14txtMeanq(f14txtStdev (g14txtSizeg (k04 lblMeanq(l0D lblStdev (m0< lblSizegfoPi133  n``RRCompObjp  , v18refSampleG(x24 btnHelp /$}# Frame1@,, 18cboColumnG; $#Frame4@( hchkCopyDataW s Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgOnH$ {5Tahoma@(Help{uTahoma@AH, G n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5VBFrame'FdlgQQPlot`ĨR`ĨRf-o0eTtest Caption = "One-Sample t" ClientHeight = 4410 ClientLeft = 45 ClientTop = 330 ClientWidth = 6150 HelpContextID = 420 StartUpPosition = 1 'CenterOwner TypeInfoVer = 103 End (H  T@-}`*R KQDBTahoma8KEFҋB `EF<(=7<btnOK@ #Tahoma@( Book name:G5Tahoma@@H  (}(! Output optionsaR KQDBTahoma@,~4txtWorksheetNameSO$8refRangeS,4txtWorkbookNameeS(28Label2@#(2<Label3@02<lblWorkbookNameeTahoma@`# 5Tahoma@, 2@lblColumnsb(17<btnOK@>#, 2:8CancelButton(724btnHelp\$:#Frame1@n( IHbtnDisplay]5( J8 refLookupe(2< Label2@$N\ chkAr$#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0_LExisting rangea5Tahoma@8F g {1_LNew worksheeta5Tahoma@4F 0_LNew workbook5Tahoma@Tahoma@`* 5Tahoma@(C7<btnOK@Z#, D:8btnCancelH(E24btnHelpx$J#Frame1@T( VhchkCopyData1( H8lstVariable a s Microsoft Forms 2.0 FormEmboai74 n```ĨR`ĨRfmogP(H  }L TR KQDBTahoma$XoptRange( XoptNewSheeti( ToptNewBookH s5Tahoma@HFw, n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qHF 0_LTest sample mean against valueE5Tahoma@,(Confidence level: xxxx %: 5Tahoma@@H,O,95L5Tahoma@@H,,0_L5Tahoma@(H  }(y $hchkTestI0 2LlblConfidencea/$<txtCI@( <txtTestValue si72 n```ĨR`ĨRf<o6Pi80 n```ĨR`ĨRedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgDenest Caption = "Density estimation" ClientHeight = 4500 ClientLeft = 45 ClientTop = 330 ClientWidth = 6180 HelpContextID = 340 StartUpPosition = 1 'CenterOwner TypeInfoVer = 37 End $  OU}*R KQDBrayC ( Oh chkCopyData$F8lstData, G18 lstLookup2 ( 88lstColumnsbF Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgLookup Caption = "Lookup" ClientHeight = 4500 ClientLeft = 45 ClientTop = 330 CCompObj4pfJoECompObjCplientWidth = 6180 HelpContextID = 230 StartUpPosition = 1 'CenterOwner TypeInfoVer = 85 End (H  @}*%R KQDBTahoma8KEFҋB `EFt, `:8btnCancel(Cancel@{uTahoma@,OKG{w @Tahoma@@F1GSample in one column:y d5foLi58 n``eReRf,OKL{w @Tahoma@(Cancel@{uTahoma@ (Variable to plot 5Tahoma@(Help{uTahoma@HF n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  S#}(V Output optionsaR KQDBTahoma@,I4txtWorksheetNameSO$K8refRangeS,L4txtWorkbookNameeS(M28Label2@#(N2<Label3@0O2<lblWorkbookNamee$P#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  S}L TR KQDBTahoma$QXoptRange( RXoptNewSheeti( SToptNewBookL {0GValues only (linked by default)5Tahoma@`* 5foCompObjpi121  n``@R@RPi82 n```ĨR`ĨRCompObjepf{ov    !"#$&()*+,./Q123N5789:;=>?@ABDFGHIKLMOPRSTUWYZ[\]_`bcdfhijklnopqrsuwxyz|}~Tahoma@AH, ,5Tahoma@8F 0GSummary values:5Tahoma@H,,5Tahoma@H,,5Tahoma@$(Number of successes: 5Tahoma@ (Number of trialsD5Tahoma@(Help{uTahoma@HFF0GValues only (linF<, 2@lblVarListH  (Variable to plot 5Tahoma@,OKL{w @Tahoma@(Cancel@{uTahoma@(Help{uTahoma@HF n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@CompObjtpCompObjaVBFrameIdlgLookupeReRH$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  U#}(< Output optionslR KQDBTahoma@,K4txtWorksheetNameSO$M8refRangeS,N4txtWorkbookNameeS(O28Label2@#(P2<Label3@0Q2<lblWorkbookNamee$R#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  U}L TR KQDBTahoma$SXoptRange( TXoptNewSheeti( UToptNewBookL {0GValues only (linked by default)5mple( dXoptSummary, e14txtSuccess, g14txtTrials (h0DlblMean"q(j0@lblSizeO (o24 btnHelpk"( r# fraSuccess $y# Frame3@$# Frame1@( h chkCopyDataJ]" soPi66 n``eReRCompObjpf Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgOneProp Caption = "One-sample Proportion" ClientHeight = 5445 ClientLeft = 45 ClientTop = 330 ClientWidth = 6180 HelpContextID = 440 StartUpPosition = 1 'CenterOwner TypeInfoVer = 158 End bedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  M,}(< Output optioVBFrame"NdlgTwoProp`.R VRf(#o+Tahoma8KEFҋB `EFl(2<Label1@( Data column 5Tahoma@ (Columns to copyE5Tahoma@,OKG{w @Tahoma@(Cancel@{uTahoma@(Help{uTahoma@((Display lookup c n``Microsoft Forms 2.0 FrameEmoCompObjpCompObjaVBFrame=nslR KQDBTahoma@,;4txtWorksheetNameSO$=8refRangeS,>4txtWorkbookNameeS(?28Label3@#(@2<Label4@0A2<lblWorkbookNamee$B#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 1GExisting rangea5Tahoma@8F g {0GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  E}L TR KQDBTahoma$CXoptRange( DXoptNewSheeti( EToptNewBookL {olumns >uTahoma@H$g 5Tahoma@( Lookup tableE5Tahoma@<F,0GUse a formula array5Tahoma@HF0GValues only (linked by default)5Tahoma@`* 5Tahoma@`* 5dlgOneProp`eR`.Rfoi114  n``@R@Rfo8CompObjpi147  n``@R@RCompObjpi128  n`` VR VRfofoPi155  n``@R@RCompObjp n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q@F1GMaximum, or larger value5Tahoma@DF0GMinimum, or smaller value5Tahoma@0F,0GEqual@5Tahoma@4F {0GGreater than5Tahoma@4F  {0GLess than_L5Tahoma@H,{5Tahoma@HH  (}1 Condition for successR KQDBTahoma$s`optMax@$tdoptMin@$uPoptEqualJ( vToptGreaterL $wToptLess+0x14txtSuccessValue  i142  n```.R`.Rfco]Pi150  n```.R`.R(H  @]}-'R KQDBTahoma8KEFҋB `EF, Z:8 btnCancelH(Cancel@{uTahoma@,OKG{w @Tahoma@@FC,1GSamples in two columns:d5Tahoma@AH, ,5Tahoma@AH, ,5Tahos n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q,(Confidence level: xxxx %}: 5Tahoma@@H,O,95G5Tahoma@0F a1GExact@5Tahoma@<FU {0GNormal approximation5Tahoma@@F{0GSimple normal approx.alu5Tahoma@HFy 0GTest sample mean against valueE5Tahoma@@H,,0.55Tahoma@DH  }]:Confidence intervalR KQDBTahoma40 }2LlblConfidencea$~<txtCI@ q$PchkExact(ma@( Sample 1:H5Tahoma@( Sample 2:H5Tahoma@@F0GSamples in one column::d5Tahoma@AH, ,5Tahoma@AH, ,5Tahoma@ ( using factor:5Tahoma@8F 0GSummary values:5Tahoma@H,, \chkNormalH{( `chkSimpleH"$hchkTest ( <txtTestValue# N  s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@ifo CompObj pCompObj ama@a$([7< btnOK@#&a$, \`optTwoColumnsa, ]18cboSample1H, ^18cbosample2H, _0< lblSample1HO, `0<lblSample2HO( a`optOneColumn , b18cboSampleH (c18cboBy@g , d0@5Tahoma@( Sheet name:5Tahoma@( Book name:N5Tahoma@@H  #}(< Output optionsR KQDBTahoma@,4txtWorksheetNameSO$8refRangeS,4txtWorkbookNameeS(28Label2@#(2<Label3@02<lblWorkbookNamee$#Frame4@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  }L TR KQDBTahoma$XoptRange( XoptNewSheeti( ToptNewBookL sked by default)5Tahoma@k"(a7<btnOK@r#k"( b`optOneColumn, c18cboSa5Tahoma@H,,5Tahoma@H,,5Tahoma@H,,5Tahoma@$(Number of successes 5Tahoma@ (Number of trials 5Tahoma@(Sample 15Tahoma@(Sample 25Tahoma@(Help{uTahoma@HFCompObj[pfqolCompObjjpi124  n```.R`.RfJoBi156  n```.R`.Ri154  n```.R`.Rf{owCompObjupCompObj@pfWoSCompObjQpCompObjpi162  n`` VR VRf o n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q@Fg 1GMaximum, or larger value5Tahoma@DF 0GMinimum, or smaller value5Tahoma@0F,0GEqual@5Tahoma@4F {0GGreater than5Tahoma@4F   !#$%&')*,-./0123456789:;<=>?ACDEFGHIKLMNOPRTUVXYZ\^_`abdefghikmnoprstvxyz|}~  {0GLess than_L5Tahoma@H,y{5Tahoma@HH  ,}p^ Condition for successR KQDBTahoma,$`optMax@$doptMin@$PoptEqualJ( ToptGreaterH$ToptLessq014txtSuccessValuee $#Frame5@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F ,0GPaired@5Tahoma@,(Confidence level: xxxx %: 5Tahoma@@H,O,95G5Tahoma@(H  }R KQo#%#TCompObj!pi55"6( n``@R@RfDlblFactorHDg ( eXoptSummaryH, f14txtSuccessH, h14 txtTrialsH, i14txtSuccess2, k14 txtTrials2H(l0DlblMean"(n0@lblSize", o08lblSummaryH], p08lblSummary2](y24btnHelpAa$( |#fraSuccessH>$#Frame1@$#Frame4@( hchkCopyDataF$ s Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgTwoProp Caption = "Two-sample Proportion" ClientHeight = 5745 ClientLeft = 45 ClientTop DBTahoma( PCheckBox1_L#k(2LLabel7@#?$<TextBox1  s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,S{5Tahoma@H$S{5Tahoma@H,S{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:5Tahoma@@H  #}4+W Output optionsR KQDBTahoma@,4txtWorksheetNameSO$8refRangeS,4txtWorkbookNameeS(28Label5@#(2<Label6@02<lblWorkbookNamee$#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5TahoCompObjaVBFrameMdlgSummarise VR@Rfma@(H  }L TR KQDBTahoma$XoptRange( XoptNewSheeti( ToptNewBookL s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F ,0GPaired@5Tahoma@,(Confidence level: xxxx %: 5Tahoma@@H,O,95G5Tahoma@(H  t}n( tPchkPaired_L#k0 q2LlblConfidencea#?$r<txtCI@  s0GValues only (linked by default)5Taho = 330 ClientWidth = 6660 HelpContextID = 450 StartUpPosition = 1 'CenterOwner TypeInfoVer = 93 End (H  @})a$R KQDBTahoma8KEFҋB `EF <(7<btnOK@"G,OKG{w @Tahoma@(Cancel@{uTahoma@4FCompObjpCompObjaVBFrameMdlgUnstackTwoWay"8e!@RR o i105   n`` VR VRfo  PCompObjpi157  n`` VR VRfoi121   n`` VR VRCompObjpfoTahoma@!, :8btnCancelcG!$VTchkBy@_([24btnHelpG!$i#Frame1@( }hchkCopyData!$#Frame2@, ` chkAdditionala$# Frame4@, ! fraAdditionala*<( T chkVariable(g18lstBy@D( G8lstVariable s Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgSummarise Caption = "Summary statistics" ClientHeight = 5280 ClientLeft = 45 ClientTop = 330 ClientWidth = 6075 HelpContextID = 4 0GBy factor(s)5Tahoma@(Help{uTahoma@H n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:515 StartUpPosition = 1 'CenterOwner TypeInfoVer = 192 End $  U}a'1R KQDBTahoma8KEFҋB `EF <0 24lblFactorLista (Column factor(s)  4(Cancel@{uTahoma@$(Column(s) to unstack  4,OKG{Tahoma@( Book name:N5Tahoma@@H  -}( Output optionsaR KQDBTahoma@,r4txtWorksheetNameSO$t8refRangeS,u4txtWorkbookNameeS(v28Label5@#(w2<Label6@0x2<lblWorkbookNamee$y#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@* 5Tahoma@`#* 5Tahoma@ , :8btnCancel., 28lblVarList(7<btnOK@ .$ #Frame1@#(624btnHelp.$7#Frame2@w(@2@ Label4@I$B# Frame3@B( Mh chkCo(H  }f R KQDBTahoma$zXoptRange( {XoptNewSheeti( |ToptNewBookL {F0GValues only (linked by default)5Tahoma@@F n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q<F 0GStandard deviationE5Tahoma@,Fz 0GMean5Tahoma@0F 0GTotal@5Tahoma@8F 1GNo of non-blanks5Tahoma@4F h 0GNo of blanks5Tahoma@<F 0GNo of numeric values5Tahoma@4F 0G% non-blanks5Tahoma@4F  0GCumulative%5Tahoma@DH  }CStandard statisticsR KQDBTahomaX$\chkStdev] $LchkMean]k $PchkTotal]V( XchkNonBlank]-$TchkCount]] n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F 0GMedian@5Tahoma@4F 0GQuartiles_L5Tahoma@<F 0GSkewness/Kurtosis5Tahoma@8F 0GSums of squares5Tahoma@<F ,( \chkNumericH], 1TchkPercentH]f(1TchkCumul]_  { 0GAdditional statisticsy d5Tahoma@4F 1GVariable(s) n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q4F 3 1GSort columns5Tahoma@@H,,4G5Tahoma@$(Number of Sig. Figs. 5Tahoma@DH  }(<Presentation optionsR KQDBTahoma$TchkSortq( <txtSigFigsL(2DLabel10 {o')9i61*, n``@R@RCompObj7pfQ0GCoeff. of variation5Tahoma@0F ,0GRange@5Tahoma@0F",0GMaximum5Tahoma@0F! 0GMinimum5Tahoma@4F 0GPercentiles5Tahoma@4F *F0GProportions5Tahoma@H,f,5Tahoma@H,,5Tahoma@ (Other function:< s5Tahoma@H, ,5Tahoma@AH,,5Tahoma@@ `5Tahoma@(H  4}\R"( PchkMedianH0( TchkQuartilesP( \chkSkewnessq $pyData.$8lstBy@ ( 8lstVariable$ 8 lstCarry/ Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgUnstackTwoWay Caption = "Two-Way Unstack" ClientHeight = 7215 ClientLeft = 45 ClientTop XchkSS@~ $\chkCV@;$PchkRange5( PchkMaximumH>( PchkMinimumH],TchkPercentilesac,T chkProportionsa+t 14 ?txtPercentilesa Enter one or more numbers between 0 and 100 separated by spaces 4 ytxtOtherEnter a valid Excel formula, with a ? character indicating where the column data are to be inserted, e.g. COUNTIF(?,">20)8J(2@ Label1@ d 14 -txtProportionsaEnter one or more numbers separated by spacesn, 18cboCondition(14cboProp  {5Tahoma@`#* 5Tahoma@`#* 5bedded ObjectForms.Frame.19q4F {1GSort columns5Tahoma@4F W1GSort rows_L5Tahoma@<F 0GCount occurrences5Tahoma@PF% 40GRemember original factor column namescto5Tahoma@LF# 40GRemember original data column nafo &di11$ n``@R@Rf-o+-NCompObjLpi660 n``RRf]]fqo<>hCompObjpi102 ;GA n``RRo/1Wi7824 n``RRCompObjUpfj    r 6"$%&'()*+,./012345T8:;<=>?@ABCEFGHIJKMOPRSnVXYZ[\^_`abdfghiklmopqstuvwxyz|~w @Tahoma@(Help{u n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F {0GNew workbook5Tahoma@H,{5Tahoma@H${5Tahoma@H,{5Tahoma@(Range:@q5Tahoma@( Sheet name:q5Tahoma@( Book name:q5Tahoma@@H  5}& Output optionsaR KQDBTahoma $,XoptRange( -XoptNewSheet4btnOK@ , :8btnCancelHH (24btnHelp $ #Frame1@ ( l chkExpandH#u Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgDataArea Caption = "Define or Change Data Area" fo@BPi110 CE n``RRCompObjp( .ToptNewBookH,/4txtWorksheetNameSO$18refRangeS,24txtWorkbookNameeS(328Label2@(>(42<Label3@(052<lblWorkbookNamee(4 sTahoma@ ( Row factor(s)V 5 n``Microsoft Forms 2.0 FrameEm = 330 ClientWidth = 5715 HelpContextID = 215 StartUpPosition = 1 'CenterOwner TypeInfoVer = 160 End (H  x@}*(R KQDBTahoma8KEFҋB `EF (2DLabel1@$(Value variable(s) 5Tahoma@$(Category variable* 5mese5Tahoma@DF,0GIgnore missing data valuesum5Tahoma@PF'0GIgnore cases with missing factor values5Tahoma@@H  T4}%" Unstack optionsR KQDBTahomap$9TchkSort( ATchkSortRows$G\chkCount,KpchkFactorNameseeT,LlchkColumnNameseem$=#fraSort?,SdchkIgnoreMissing4TpchkIgnoreFactorMissinger n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F1GBy name5Tahoma@4F "0GBy fCompObjLQaVBFrameRdlgRegistration T RRf7actor_L5Tahoma@(H  F} R KQDBTahomad, >PoptSortByNamea6P,?ToptSortByFactorjPTahoma@HF]{0G n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 1GPut in next rowno35e<CompObjcpCompObj.7{aVBFrame}N5Tahoma@<F^ 0GPut in next column5Tahoma@LF$0GIgnore all duplicated values except:5Tahoma@@F0GAdd to existing value va5Tahoma@DH  U}%Duplicate optionsR KQDBTahoma, CXoptDuplNewRowa,D\optDuplNewColumn_ , FloptDuplIgnoreumn\( N!fraExcept_L( U`optDuplAddLi n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q0F1GFirst@5Tahoma@0F<0GMaximum5Tahoma@,Fa0GLast5Tahoma@0F0GMinimum5Tahoma@(H  R }! R KQDBTahoma$OPoptFirst$PPOptMax@x$QLoptLast $RPoptMin@tValues only (linked by default)5Tahoma@`#* 5Tahoma@`#   !#$%&()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdehijklunopqtswdlgColumnPlotR:R Rfo9?i56= n``RRTahoma@(2DLabel2@ (07<btnOK@"j%, 1:8CancelButton;j%(624btnHelpj%$8#Frame2@\$f#Frame1@$wT chkBy@5( xh chkCopyData[%$r4 lstXvarn$78lstYVarz(<18lstBy@E s Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgColumnPlot Caption = "Category-Value Plot" ClientHeight = 5880 ClientLeft = 45 ClientTop = 330 ClientWidth = 6105 HelpContextID = 315 StartUpPosition = 1 'CenterOwner TypeInfoVer VBFrameOdlgDataAreaK R RfKoJPh = 278 End $  } &Y#R KQDBTahoma8KEFҋB `EF $8refData'(H$}${5Tahoma@$(Standard Data Area: 5Tahoma@8(%Current Data Area for this worksheet:a}5Tahoma@H,F$+5Tahoma@,OKG{w @Tahoma@(Cancel@{uTahoma@(Help{uTahoma@4F n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q( Chart typeN5Tahoma@AH,O {5Tahoma@0F0GStacked5Taho(Help{uTahoma@(OKL{uTahoma@(Cancel@{uTahoma@@He$ Registration is free for individual, non-commercial use. To register, visit or send your details by e-mail to Alternatively, print the form on the help page, fill in your details and post it to the Statistical Services Centre. We will then send ma@,F0G100%5Tahoma@8F F1GShow data points5Tahoma@@H  v a}(Chart optionslR KQDBTahoma(92<Label4@#( :8cboChartType, s1PchkStackedLu0 t1Lchk100Percenta0 u1oSYHi02W n`` R RfoVXXchkShowPointsa[u { n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19qH,]{5Tahoma@H$]{5Tahoma@H,]{5Tahoma@(Range:@i5Tahoma@( Sheet name:5Tahoma@( Book name:N5}{smy foDFCompObjpCompObjHaTahoma@@H  q#}(< Output optionsR KQDBTahoma@,g4txtWorksheetNameSO$i8refRangeS,j4txtWorkbookNameeS(k28Label5@#(l2<Label6@0m2<lblWorkbookNamee$n#Frame3@ s n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q8F 0GExisting rangea5Tahoma@8F g {1GNew worksheeta5Tahoma@4F 0GNew workbook5Tahoma@(H  q}L TR KQDBTahoma$oXoptRange( pXoptNewSheeti( qToptNewBookL { ,0GBy factor(s)5Tahoma@HF0GValues only (linked by default)5Tahoma@`x 5Tahoma@`#x 5Tahoma@`# 5i09N n`` R Rf=oMOCompObjpyou a Registration Number to enter below.5Tahoma@( 24btnHelp( 74btnOkay, :8btnCancel_L, txtExplanationa Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgRegistration Caption = "SSC-Stat Registration" ClientHeight = 4365 ClientLeft = 45 ClientTop = 330 ClientWidth = 5475 HelpContextID = 1050 StartUpPosition = 1 'CenterOwner TypeInfoVer = 11 End $  }O%R KQDB MS Sans Serif(2@lblTit(SSC-Stat# @hArial@fNo\^0CompObj_ aVBFrame"(( Description#i @Tahoma@( CopyrightHOuTahoma@ * Registration#@(OKL{uTahoma@le02DlblDescriptiona`, 2<lblCopyright; 02<lblRegistration( 74btnOkayTahoma@4(#Put Current Area into Standard Areas05uTahoma@(OKG{uTahoma@(Cancel@{uTahoma@(Help{uTahoma@L n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q\F45"1GDisplay columns in Current Area before Standard Area5Tahoma@PF%5"0GDisplay columns in Standard Area onlyeas5Tahoma@\F45"0GDisplay columns in Standard Area before Current Area5Tahoma@LF$5"0GDisplay columns in Current Area only5Tahoma@PH   }F$ Order of searching data areasR KQDBTahoma, |optCurrentFirst( poptNoCurrent, |optStandardFirst(, loptNoStandardrst`F"+1GExpand Standard Area automaticallyly5Tahoma@2DLabel1@(2XLabel2@J,4txtCurrentAreaaA ( TbtnAppendH (7    " (,+#/$; '%&*P4-@0:21396!D78?<=I.MANBF_ELGHJOK5TfjQ>)SUVkWYbZ[]`^\gacpdRqCinuloertvzwxXh|~CompObjpCompObjUZ aVBFrameSdlgAbout]RR Root Entry F KAPǴ0Workbooke _VBA_PROJECT_CUR"dTRRVBA@ReR ClientHeight = 5130 ClientLeft = 45 ClientTop = 330 ClientWidth = 5520 HelpContextID = 10 StartUpPosition = 1 'CenterOwner TypeInfoVer = 20 End $  }%R KQDBTahoma$#Frame1@V n``Microsoft Forms 2.0 FrameEmbedded ObjectForms.Frame.19q$(Registration Number5Tahoma@H,S",5Tahoma@ (Registered Name5Tahoma@H,S",5Tahoma@(H  }`$ (2DLabel1@j$4txtRegNo,(2@Label2@P( 4txtRegTextL Microsoft Forms 2.0 FormEmbedded Object9qVERSION 5.00 Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} dlgAbout Caption = "About SSC-Stat" ClientHeight = 3300 ClientLeft = 45 ClientTop = 330 ClientWidth = 5415 StartUpPosition = 1 'CenterOwner TypeInfoVer = 22 End Sheet1Sheet1Sheet2Sheet2Sheet3Sheet3TPROJECTwmb'PROJECT[; PROJECTlkfSummaryInformation(ghisWorkbookThisWorkbookmodMainmodMaindlgUnStackdlgUnStackstats_functionsstats_functionsdlgStackdlgStackmodUtilitymodUtilitymodUnStackmodUnStackmodStackmodStackdlgXYPlotdlgXYPlotdlgDescriptiveStatsdlgDescriptiveStatsdlgTwoTtestdlgTwoTtestdlgBoxPlotdlgBoxPlotmodTtestmodTtestdlgOneTtestdlgOneTtestdlgQQPlotdlgQQPlotdlgDenestdlgDenestmodSavemodSavedlgLookupdlgLookupdlgOnePropdlgOnePropmodProportionmodProportiondlgTwoPropdlgTwoPropdlgSummarisedlgSummarisemodMomentsmodMomentsdlgUnstackTwoWaydlgUnstackTwoWaydlgColumnPlotdlgColumnPlotmodChartmodChartdlgDataAreadlgDataAreamodColumnmodColumnmodSheetmodSheetmodCommonmodCommonmodTranslatemodTranslatemodRegistrationmodRegistrationmodRegApimodRegApidlgRegistrationdlgRegistrationdlgAboutdlgAboutID="{F1BBDC95-802A-11D5-B656-0004768BFDFA}" Document=Sheet1/&H00000000 Document=Sheet2/&H00000000 Document=Sheet3/&H00000000 Document=ThisWorkbook/&H00000000 Module=modMain Package={AC9F2F90-E877-11CE-9F68-00AA00574A4F} BaseClass=dlgUnStack Module=stats_functions BaseClass=dlgStack Module=modUtility Module=modUnStack Module=modStack BaseClass=dlgXYPlot BaseClass=dlgDescriptiveStats BaseClass=dlgTwoTtest BaseClass=dlgBoxPlot Module=modTtest BaseClass=dlgOneTtest BaseClass=dlgQQPlot BaseClass=dlgDenest Module=modSave BaseClass=dlgLookup BaseClass=dlgOneProp Module=modProportion BaseClass=dlgTwoProp BaseClass=dlgSummarise Module=modMoments BaseClass=dlgUnstackTwoWay BaseClass=dlgColumnPlot Module=modChart BaseClass=dlgDataArea Module=modColumn Module=modSheet Module=modCommon Module=modTranslate Module=modRegistration Module=modRegApi BaseClass=dlgRegistration BaseClass=dlgAbout HelpFile="C:\My Documents\Excel macros\Software\SSC-Stat.hlp" Name="SSCStat" HelpContextID="0" Description="Statistical functions and dialogs - Statistical Services Centre" VersionCompatible32="393222000" CMG="C1C330B034B034B034B034" DPB="E9EB18DA1EDA1EB9EE4433C3A1" GC="1113E005E105E105" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace] Sheet1=0, 0, 0, 0, C Sheet2=0, 0, 0, 0, C Sheet3=0, 0, 0, 0, C ThisWorkbook=0, 0, 0, 0, C modMain=0, 0, 601, 436, dlgUnStack=0, 0, 0, 0, C, 66, 66, 667, 502, C stats_functions=0, 0, 0, 0, C dlgStack=0, 0, 0, 0, C, 88, 88, 689, 524, C modUtility=22, 22, 623, 458, modUnStack=0, 0, 0, 0, C modStack=0, 0, 0, 0, C dlgXYPlot=0, 0, 0, 0, C, 110, 110, 711, 546, C dlgDescriptiveStats=0, 0, 0, 0, C, 22, 22, 814, 511, C dlgTwoTtest=0, 0, 0, 0, C, 132, 132, 733, 568, C dlgBoxPlot=0, 0, 0, 0, C, 154, 154, 755, 590, C modTtest=0, 0, 0, 0, C dlgOneTtest=0, 0, 0, 0, C, 176, 176, 777, 612, C dlgQQPlot=0, 0, 0, 0, C, 198, 198, 799, 634, C dlgDenest=0, 0, 0, 0, C, 0, 0, 601, 436, C modSave=0, 0, 0, 0, C dlgLookup=0, 0, 0, 0, C, 22, 22, 623, 458, C dlgOneProp=0, 0, 0, 0, C, 44, 44, 645, 480, C modProportion=0, 0, 0, 0, C dlgTwoProp=0, 0, 0, 0, C, 66, 66, 667, 502, C dlgSummarise=0, 0, 0, 0, C, 88, 88, 689, 524, C modMoments=0, 0, 0, 0, C dlgUnstackTwoWay=0, 0, 0, 0, C, 110, 110, 711, 546, C dlgColumnPlot=0, 0, 0, 0, C, 132, 132, 733, 568, C modChart=0, 0, 0, 0, C dlgDataArea=0, 0, 0, 0, C, 154, 154, 755, 590, C modColumn=0, 0, 0, 0, C modSheet=0, 0, 0, 0, C modCommon=44, 44, 645, 480, modTranslate=66, 66, 667, 502, modRegistration=0, 0, 0, 0, C modRegApi=0, 0, 0, 0, C dlgRegistration=0, 0, 0, 0, C, 176, 176, 777, 612, dlgAbout=198, 198, 799, 634, Z, 44, 44, 836, 533, EF Oh+'0l `h  $08 \SSC-Stat V2.11 Colin Grayerx9Statistical Services Centre Excel macros for statisticsal Statistical Services CentreMicrosoft Excel@@RExcel macros for ՜.+,D՜.+,8 PX|  The University of Reading DocumentSummaryInformation8cfmlCompObjrfSebiesnrMkudrfcoIaamtykdDa8vx Sheet1Sheet2Sheet3  Worksheets4 FMicrosoft Excel WorksheetBiff8Excel.Sheet.89q $,  statistics2.11DdLp60H(08 SSC