OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 2: Recalculated Formula (OpenFormula) Format @page { } table { border-collapse:collapse; border-spacing:0; empty-cells:show } td, th { vertical-align:top; font-size:12pt;} h1, h2, h3, h4, h5, h6 { clear:both } ol, ul { margin:0; padding:0;} li { list-style: none; margin:0; padding:0;} li span. { clear: both; line-height:0; width:0; height:0; margin:0; padding:0; } span.footnodeNumber { padding-right:1em; } span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; } * { margin:0;} .Formula { font-size:12pt; writing-mode:lr-tb; vertical-align:top; } .fr1 { font-size:12pt; text-align:center; vertical-align:top; writing-mode:lr-tb; } .fr2 { font-size:12pt; text-align:center; vertical-align:top; writing-mode:lr-tb; } .fr3 { font-size:12pt; vertical-align:top; writing-mode:lr-tb; background-color:#ffff00; } .fr4 { font-size:12pt; text-align:center; vertical-align:top; writing-mode:lr-tb; background-color:#ffff00; } .fr5 { font-size:12pt; vertical-align:top; writing-mode:lr-tb; } .fr6 { font-size:12pt; vertical-align:top; writing-mode:lr-tb; } .fr7 { font-size:12pt; vertical-align:middle; writing-mode:lr-tb; } .Appendix_20_Heading_borderStart { border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; color:#333399; font-size:18pt; font-weight:bold; margin-left:0in; margin-right:0in; margin-top:0.1945in; padding-left:0in; padding-right:0in; padding-top:0.0835in; text-indent:0in; font-family:Arial; writing-mode:page; padding-bottom:0.1945in; border-bottom-style:none; } .Appendix_20_Heading { border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; margin-left:0in; margin-right:0in; padding-left:0in; padding-right:0in; text-indent:0in; font-family:Arial; writing-mode:page; padding-bottom:0.1945in; padding-top:0.1945in; border-top-style:none; border-bottom-style:none; } .Appendix_20_Heading_borderEnd { border-bottom-style:none; border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; margin-bottom:0.1945in; margin-left:0in; margin-right:0in; padding-bottom:0in; padding-left:0in; padding-right:0in; text-indent:0in; font-family:Arial; writing-mode:page; padding-top:0.1945in; border-top-style:none;} .Bibliography_20_1 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .Bullet_20_List { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .Code_borderStart { font-size:9pt; margin-top:0in; font-family:Courier New; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; background-color:#d9d9d9; padding-left:0in; padding-right:0in; padding-top:0.0417in; border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; padding-bottom:0in; border-bottom-style:none; } .Code { font-size:9pt; font-family:Courier New; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; background-color:#d9d9d9; padding-left:0in; padding-right:0in; border-left-style:none; border-right-style:none; padding-bottom:0in; padding-top:0in; border-top-style:none; border-bottom-style:none; } .Code_borderEnd { font-size:9pt; margin-bottom:0in; font-family:Courier New; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; background-color:#d9d9d9; padding-left:0in; padding-right:0in; padding-bottom:0.0417in; border-left-style:none; border-right-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; padding-top:0in; border-top-style:none;} .Contents_20_1 { font-size:10pt; margin-bottom:0.0417in; margin-top:0.0417in; font-family:Arial; writing-mode:page; } .Contents_20_10 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:1.7689in; margin-right:0in; text-indent:0in; } .Contents_20_2 { font-size:10pt; margin-bottom:0.0417in; margin-top:0.0417in; font-family:Arial; writing-mode:page; margin-left:0.1665in; margin-right:0in; text-indent:0.0008in; } .Contents_20_3 { font-size:10pt; margin-bottom:0.0417in; margin-top:0.0417in; font-family:Arial; writing-mode:page; margin-left:0.3335in; margin-right:0in; text-indent:0.0008in; } .Contents_20_4 { font-size:9pt; margin-bottom:0.0417in; margin-left:0.5in; margin-right:0in; margin-top:0.0417in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .Contents_20_5 { font-size:9pt; margin-bottom:0.0417in; margin-left:0.6665in; margin-right:0in; margin-top:0.0417in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .Contents_20_6 { font-size:9pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0.8335in; margin-right:0in; text-indent:0.0008in; } .Contents_20_7 { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; margin-left:1in; margin-right:0in; text-indent:0.0008in; } .Contents_20_8 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:1.3756in; margin-right:0in; text-indent:0in; } .Contents_20_9 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:1.572in; margin-right:0in; text-indent:0in; } .Contents_20_Heading { color:#000099; font-size:16pt; font-weight:bold; margin-bottom:0.0835in; margin-top:0.1665in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .Contributor { color:#000000; font-size:10pt; font-weight:normal; margin-bottom:0in; margin-left:0.5in; margin-right:0in; margin-top:0in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .Formula { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; } .Heading_20_1_borderStart { color:#000099; font-size:18pt; font-weight:bold; margin-top:0.3335in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; padding-left:0in; padding-right:0in; padding-top:0.0835in; border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; padding-bottom:0.0835in; border-bottom-style:none; } .Heading_20_1 { color:#000099; font-size:18pt; font-weight:bold; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; padding-left:0in; padding-right:0in; border-left-style:none; border-right-style:none; padding-bottom:0.0835in; padding-top:0.3335in; border-top-style:none; border-bottom-style:none; } .Heading_20_1_borderEnd { color:#000099; font-size:18pt; font-weight:bold; margin-bottom:0.0835in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; padding-left:0in; padding-right:0in; padding-bottom:0in; border-left-style:none; border-right-style:none; border-bottom-style:none; padding-top:0.3335in; border-top-style:none;} .Heading_20_2_borderStart { color:#000099; font-size:14pt; font-weight:bold; margin-top:0.1665in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; padding:0in; border-style:none; padding-bottom:0.0835in; border-bottom-style:none; } .Heading_20_2 { color:#000099; font-size:14pt; font-weight:bold; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; padding:0in; border-style:none; padding-bottom:0.0835in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .Heading_20_2_borderEnd { color:#000099; font-size:14pt; font-weight:bold; margin-bottom:0.0835in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; padding:0in; border-style:none; padding-top:0.1665in; border-top-style:none;} .Heading_20_3 { color:#000099; font-size:13pt; font-weight:bold; margin-bottom:0.0835in; margin-top:0.1665in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .Heading_20_4 { color:#000099; font-size:12pt; font-weight:bold; margin-bottom:0.0835in; margin-top:0.1665in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .Note { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .Numbering_20_1 { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; margin-left:0.25in; margin-right:0in; text-indent:-0.25in; } .P1 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .P10 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:left ! important; font-style:normal; } .P100 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P101 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P102 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P103 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:left ! important; } .P104 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; } .P105 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P106 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .P107 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; font-weight:normal; } .P108 { font-size:10pt; margin-bottom:0in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P109 { font-size:10pt; margin-bottom:0in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P11 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; font-style:normal; } .P110 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; } .P111 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; } .P12 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-weight:normal; } .P13 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:left ! important; } .P14 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:normal; } .P15 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:normal; font-weight:normal; } .P16 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:normal; } .P17 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-weight:normal; } .P18 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; font-weight:normal; } .P19 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P2 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0in; margin-right:0in; text-indent:0in; } .P20 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:italic; } .P21 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:italic; } .P22 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; } .P23 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P24 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-weight:normal; } .P25 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; font-style:normal; } .P26_borderStart { border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; color:#333399; font-size:18pt; font-weight:bold; margin-top:0.1665in; padding-left:0in; padding-right:0in; padding-top:0.0138in; font-family:Arial; writing-mode:page; padding-bottom:0.25in; border-bottom-style:none; } .P26 { border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; padding-left:0in; padding-right:0in; font-family:Arial; writing-mode:page; padding-bottom:0.25in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .P26_borderEnd { border-bottom-style:none; border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; margin-bottom:0.25in; padding-bottom:0in; padding-left:0in; padding-right:0in; font-family:Arial; writing-mode:page; padding-top:0.1665in; border-top-style:none;} .P27 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; } .P28 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; font-style:normal; font-weight:normal; } .P29 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; font-style:normal; } .P3_borderStart { background-color:#ccccff; font-size:10pt; margin-left:0in; margin-right:0in; margin-top:0.0555in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-bottom:0in; border-bottom-style:none; } .P3 { background-color:#ccccff; font-size:10pt; margin-left:0in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-bottom:0in; padding-top:0.0555in; border-top-style:none; border-bottom-style:none; } .P3_borderEnd { background-color:#ccccff; font-size:10pt; margin-bottom:0in; margin-left:0in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-top:0.0555in; border-top-style:none;} .P30 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; } .P31 { font-size:10pt; font-style:italic; font-weight:bold; margin-bottom:0.0555in; margin-top:0.0555in; text-align:center ! important; font-family:Arial; writing-mode:lr-tb; } .P32 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; } .P33 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; text-align:left ! important; font-family:Arial; writing-mode:lr-tb; } .P34_borderStart { background-color:#ccccff; font-size:10pt; margin-left:0.2in; margin-right:0in; margin-top:0.0555in; text-indent:0in; font-family:Cumberland; writing-mode:page; padding-bottom:0in; border-bottom-style:none; } .P34 { background-color:#ccccff; font-size:10pt; margin-left:0.2in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; padding-bottom:0in; padding-top:0.0555in; border-top-style:none; border-bottom-style:none; } .P34_borderEnd { background-color:#ccccff; font-size:10pt; margin-bottom:0in; margin-left:0.2in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; padding-top:0.0555in; border-top-style:none;} .P35_borderStart { background-color:#ccccff; font-size:10pt; margin-left:0.2in; margin-right:0in; margin-top:0.0555in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-bottom:0in; border-bottom-style:none; } .P35 { background-color:#ccccff; font-size:10pt; margin-left:0.2in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-bottom:0in; padding-top:0.0555in; border-top-style:none; border-bottom-style:none; } .P35_borderEnd { background-color:#ccccff; font-size:10pt; margin-bottom:0in; margin-left:0.2in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-top:0.0555in; border-top-style:none;} .P36 { font-size:10pt; font-style:italic; margin-bottom:0.0835in; margin-top:0.0835in; text-align:center ! important; font-family:Arial; writing-mode:page; } .P37 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; } .P38 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:normal; } .P39 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:right ! important; } .P4 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:lr-tb; margin-left:0in; margin-right:0in; text-indent:0in; } .P40 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P41 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; font-style:italic; } .P42 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; vertical-align:sub; font-size:58%;font-style:italic; } .P43 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; vertical-align:sub; font-size:58%;} .P44 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; vertical-align:sub; font-size:58%;font-style:italic; } .P45 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; vertical-align:super; font-size:58%;font-style:italic; } .P46 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; text-align:left ! important; font-family:Arial; writing-mode:page; } .P47 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; text-align:center ! important; font-family:Arial; writing-mode:page; font-style:normal; } .P48 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; text-align:center ! important; font-family:Arial; writing-mode:page; font-style:normal; } .P49 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; text-align:center ! important; font-family:Arial; writing-mode:page; } .P5 { font-size:10pt; margin-bottom:0in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P50_borderStart { border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; color:#333399; font-size:18pt; font-weight:bold; margin-top:0.1665in; padding-left:0in; padding-right:0in; padding-top:0.0138in; font-family:Arial; writing-mode:page; padding-bottom:0.25in; border-bottom-style:none; } .P50 { border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; padding-left:0in; padding-right:0in; font-family:Arial; writing-mode:page; padding-bottom:0.25in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .P50_borderEnd { border-bottom-style:none; border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; margin-bottom:0.25in; padding-bottom:0in; padding-left:0in; padding-right:0in; font-family:Arial; writing-mode:page; padding-top:0.1665in; border-top-style:none;} .P51 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; margin-left:0.4925in; margin-right:0in; text-indent:0in; } .P52 { font-size:10pt; margin-bottom:0.1965in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P53 { color:#000000; font-size:10pt; font-weight:normal; margin-bottom:0.0555in; margin-left:0in; margin-right:0in; margin-top:0.0555in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .P54 { font-size:10pt; font-style:italic; font-weight:bold; margin-bottom:0.0555in; margin-top:0.0555in; text-align:center ! important; font-family:Arial; writing-mode:page; } .P55 { font-size:10pt; margin-bottom:0.0417in; margin-top:0.0102in; font-family:Arial; writing-mode:page; } .P56 { font-size:10pt; margin-bottom:0.0417in; margin-top:0.0102in; font-family:Arial; writing-mode:page; font-style:normal; } .P57_borderStart { font-size:10pt; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; background-color:transparent; padding-bottom:0.0555in; border-bottom-style:none; } .P57 { font-size:10pt; font-family:Arial; writing-mode:page; text-align:center ! important; background-color:transparent; padding-bottom:0.0555in; padding-top:0.0555in; border-top-style:none; border-bottom-style:none; } .P57_borderEnd { font-size:10pt; margin-bottom:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; background-color:transparent; padding-top:0.0555in; border-top-style:none;} .P58 { font-size:10pt; margin-bottom:0.0555in; margin-left:0in; margin-right:0in; margin-top:0.0555in; text-indent:0in; font-family:Arial; writing-mode:page; } .P59 { font-size:10pt; margin-bottom:0.0417in; margin-left:0.1665in; margin-right:0in; margin-top:0.0417in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .P6 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P60 { font-size:10pt; margin-bottom:0.0417in; margin-left:0.3335in; margin-right:0in; margin-top:0.0417in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .P61 { font-size:10pt; margin-bottom:0.0417in; margin-top:0.0417in; font-family:Arial; writing-mode:page; } .P62 { color:#000000; font-size:10pt; font-weight:normal; margin-bottom:0.0555in; margin-left:0.5in; margin-right:0in; margin-top:0in; text-indent:0.0008in; font-family:Arial; writing-mode:page; } .P63 { color:#000000; font-size:10pt; font-weight:bold; margin-bottom:0.0555in; margin-left:0.5in; margin-right:0in; margin-top:0in; text-indent:0.0008in; font-family:Arial; writing-mode:page; letter-spacing:normal; font-style:normal; } .P64 { color:#333399; font-size:12pt; font-weight:bold; margin-bottom:0in; margin-top:0.0835in; font-family:Arial; writing-mode:page; } .P65 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P66 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P67 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P68 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P69 { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; } .P7 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P70 { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; } .P71 { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; } .P72 { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; } .P73_borderStart { background-color:#ccccff; font-size:10pt; margin-left:0in; margin-right:0in; margin-top:0.0555in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-bottom:0in; border-bottom-style:none; } .P73 { background-color:#ccccff; font-size:10pt; margin-left:0in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-bottom:0in; padding-top:0.0555in; border-top-style:none; border-bottom-style:none; } .P73_borderEnd { background-color:#ccccff; font-size:10pt; margin-bottom:0in; margin-left:0in; margin-right:0in; text-indent:0in; font-family:Cumberland; writing-mode:page; font-weight:normal; padding-top:0.0555in; border-top-style:none;} .P74 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P75 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; text-align:center ! important; font-family:Arial; writing-mode:page; } .P76 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P77 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P78 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-weight:normal; } .P79 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P8 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:italic; } .P80 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; } .P81 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:normal; } .P82_borderStart { border-style:none; color:#000099; font-size:14pt; font-weight:bold; margin-left:0in; margin-right:0in; margin-top:0.1665in; padding:0in; text-indent:0in; font-family:Arial; writing-mode:page; padding-bottom:0.0835in; border-bottom-style:none; } .P82 { border-style:none; color:#000099; font-size:14pt; font-weight:bold; margin-left:0in; margin-right:0in; padding:0in; text-indent:0in; font-family:Arial; writing-mode:page; padding-bottom:0.0835in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .P82_borderEnd { border-style:none; color:#000099; font-size:14pt; font-weight:bold; margin-bottom:0.0835in; margin-left:0in; margin-right:0in; padding:0in; text-indent:0in; font-family:Arial; writing-mode:page; padding-top:0.1665in; border-top-style:none;} .P83_borderStart { border-style:none; color:#000099; font-size:14pt; font-weight:bold; margin-left:0in; margin-right:0in; margin-top:0.1665in; padding:0in; text-indent:0in; font-family:Arial; writing-mode:page; font-style:normal; padding-bottom:0.0835in; border-bottom-style:none; } .P83 { border-style:none; color:#000099; font-size:14pt; font-weight:bold; margin-left:0in; margin-right:0in; padding:0in; text-indent:0in; font-family:Arial; writing-mode:page; font-style:normal; padding-bottom:0.0835in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .P83_borderEnd { border-style:none; color:#000099; font-size:14pt; font-weight:bold; margin-bottom:0.0835in; margin-left:0in; margin-right:0in; padding:0in; text-indent:0in; font-family:Arial; writing-mode:page; font-style:normal; padding-top:0.1665in; border-top-style:none;} .P84 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P85 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P86 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P87 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P88 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P89 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P9 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-style:normal; } .P90 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P91 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; font-weight:normal; } .P92 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P93 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P94 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P95 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P96 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P97 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P98 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .P99 { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .Subtitle_borderStart { border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; color:#333399; font-size:18pt; font-weight:bold; margin-top:0.1665in; padding-left:0in; padding-right:0in; padding-top:0.0138in; font-family:Arial; writing-mode:page; padding-bottom:0.25in; border-bottom-style:none; } .Subtitle { border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; padding-left:0in; padding-right:0in; font-family:Arial; writing-mode:page; padding-bottom:0.25in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .Subtitle_borderEnd { border-bottom-style:none; border-left-style:none; border-right-style:none; color:#333399; font-size:18pt; font-weight:bold; margin-bottom:0.25in; padding-bottom:0in; padding-left:0in; padding-right:0in; font-family:Arial; writing-mode:page; padding-top:0.1665in; border-top-style:none;} .SyntaxBNF_borderStart { font-size:10pt; margin-top:0.0555in; font-family:Cumberland; writing-mode:page; margin-left:0.2in; margin-right:0in; text-indent:0in; background-color:#ccccff; padding-bottom:0in; border-bottom-style:none; } .SyntaxBNF { font-size:10pt; font-family:Cumberland; writing-mode:page; margin-left:0.2in; margin-right:0in; text-indent:0in; background-color:#ccccff; padding-bottom:0in; padding-top:0.0555in; border-top-style:none; border-bottom-style:none; } .SyntaxBNF_borderEnd { font-size:10pt; margin-bottom:0in; font-family:Cumberland; writing-mode:page; margin-left:0.2in; margin-right:0in; text-indent:0in; background-color:#ccccff; padding-top:0.0555in; border-top-style:none;} .Table { font-size:10pt; font-style:italic; margin-bottom:0.0835in; margin-top:0.0835in; text-align:center ! important; font-family:Arial; writing-mode:page; } .Table_20_Contents { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .Table_20_Heading { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; text-align:center ! important; font-style:italic; font-weight:bold; } .Text_20_Body_20_Single { font-size:10pt; margin-bottom:0.0835in; margin-top:0in; font-family:Arial; writing-mode:page; } .Text_20_body { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .Text_20_body_20_keep_20_with_20_next_20_paragraph { font-size:10pt; margin-bottom:0.0555in; margin-top:0.0555in; font-family:Arial; writing-mode:page; } .Title_borderStart { font-size:24pt; margin-top:0.1665in; font-family:Arial; writing-mode:page; padding-left:0in; padding-right:0in; padding-top:0.0138in; border-left-style:none; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; color:#333399; font-weight:bold; padding-bottom:0.1665in; border-bottom-style:none; } .Title { font-size:24pt; font-family:Arial; writing-mode:page; padding-left:0in; padding-right:0in; border-left-style:none; border-right-style:none; color:#333399; font-weight:bold; padding-bottom:0.1665in; padding-top:0.1665in; border-top-style:none; border-bottom-style:none; } .Title_borderEnd { font-size:24pt; margin-bottom:0.1665in; font-family:Arial; writing-mode:page; padding-left:0in; padding-right:0in; padding-bottom:0in; border-left-style:none; border-right-style:none; border-bottom-style:none; color:#333399; font-weight:bold; padding-top:0.1665in; border-top-style:none;} .Title_20_page_20_info { font-size:10pt; margin-bottom:0in; margin-top:0.0835in; font-family:Arial; writing-mode:page; color:#333399; font-weight:bold; } .Title_20_page_20_info_20_description { color:#000000; font-size:10pt; font-weight:normal; margin-bottom:0.0555in; margin-top:0in; font-family:Arial; writing-mode:page; margin-left:0.5in; margin-right:0in; text-indent:0.0008in; } .ASC-conversion { width:6.0014in; margin-top:0in; margin-bottom:0.1in; float:none; } .Date-Bases { width:6.0014in; float:none; } .JIS-conversion { width:6.0014in; margin-top:0in; margin-bottom:0.1in; float:none; } .RomanNumerals { width:3.0785in; margin-top:0.05in; margin-bottom:0.2in; } .SUBTOTAL { width:6.0014in; float:none; } .Table153 { width:6.0014in; } .Table168 { width:2.8486in; float:none; background-color:transparent; writing-mode:lr-tb; } .Table213 { width:5.7597in; } .Table216 { width:6.0014in; } .Table217 { width:6.0014in; } .Table242 { width:2.4688in; } .Table243 { width:2.4688in; } .Table244 { width:6.0014in; } .Table285 { width:6.0014in; float:none; } .Table288 { width:6.0014in; float:none; } .Table300 { width:4.2715in; margin-top:0.1in; margin-bottom:0.2in; float:none; } .Table333 { width:6.0014in; float:none; } .Table336 { width:6.0014in; float:none; } .Table339 { width:6.0014in; float:none; } .Table342 { width:6.0014in; float:none; } .Table345 { width:6.0014in; float:none; } .Table364 { width:4.725in; } .Table366 { width:6.0014in; float:none; } .Table440 { width:6.0014in; float:none; } .Table444 { width:5.0007in; } .Table452 { width:6.0014in; float:none; } .Table453 { width:3.6139in; float:none; } .Table454 { width:5.8625in; float:none; } .Table456 { width:6.0014in; float:none; } .Table469 { width:4.4889in; margin-top:0.05in; margin-bottom:0in; } .Table480 { width:5.7361in; float:none; writing-mode:lr-tb; } .Table481 { width:3.1104in; float:none; writing-mode:lr-tb; } .Table53 { width:4.2215in; margin-left:0.8889in; margin-right:0.891in; float:none; } .Table56 { width:6.0014in; float:none; } .Table83 { width:6.0014in; } .ASC-conversion_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .ASC-conversion_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .ASC-conversion_C1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .ASC-conversion_C2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Date-Bases_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Date-Bases_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Date-Bases_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Date-Bases_D1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Date-Bases_D2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .JIS-conversion_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .JIS-conversion_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .JIS-conversion_C1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .JIS-conversion_C2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .RomanNumerals_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .RomanNumerals_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .RomanNumerals_C1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .RomanNumerals_C2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .SUBTOTAL_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .SUBTOTAL_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .SUBTOTAL_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .SUBTOTAL_C1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .SUBTOTAL_C2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table153_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table153_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table153_C1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table153_C2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table168_A1 { vertical-align:top; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; } .Table168_A2 { vertical-align:top; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; } .Table168_B1 { vertical-align:top; background-color:transparent; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; writing-mode:lr-tb; } .Table168_B2 { vertical-align:top; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; } .Table213_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table213_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table213_B2_2_1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table213_C1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table216_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table216_A2_1_1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table216_E1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table216_E2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table217_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table217_A2_1_1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table217_E1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table217_E2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table242_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table242_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table242_E1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table242_E2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table243_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table243_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table243_E1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table243_E2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table244_A1 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table244_A2 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table244_B1 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table244_B2 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table285_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table285_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table285_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table285_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table288_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table288_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table288_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table288_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table300_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table300_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table300_E1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table300_E2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table333_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table333_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table333_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table333_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table336_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table336_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table336_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table336_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table339_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table339_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table339_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table339_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table342_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table342_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table342_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table342_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table345_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table345_A2 { vertical-align:top; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table345_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table345_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table364_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table364_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table364_B1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table364_B2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table366_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table366_A2 { vertical-align:top; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table366_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table366_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table440_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table440_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table440_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table440_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table444_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table444_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table444_D1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table444_D2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table452_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table452_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table452_C1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table452_C2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table453_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table453_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table453_C1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table453_C2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table454_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table454_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table454_D1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table454_D2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table456_A1 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table456_A2 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table456_B1 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table456_B2 { vertical-align:middle; background-color:transparent; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table469_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table469_A2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table469_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table469_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table480_A1 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table480_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table480_F1 { vertical-align:bottom; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table480_F2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table481_A1 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table481_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table481_F1 { vertical-align:bottom; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table481_F2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table53_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table53_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table53_D1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table53_D2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table56_A1 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table56_A2 { vertical-align:bottom; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table56_B1 { padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table56_B2 { padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table83_A1 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0.0133cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table83_A2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .Table83_C1 { vertical-align:middle; padding:0.0382in; border-width:0.0133cm; border-style:solid; border-color:#000000; } .Table83_C2 { vertical-align:middle; padding:0.0382in; border-left-width:0.0133cm; border-left-style:solid; border-left-color:#000000; border-right-width:0.0133cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0.0133cm; border-bottom-style:solid; border-bottom-color:#000000; } .ASC-conversion_A { width:2.0007in; } .Date-Bases_A { width:0.9688in; } .Date-Bases_B { width:2.0313in; } .Date-Bases_C { width:1.5in; } .Date-Bases_D { width:1.5014in; } .JIS-conversion_A { width:2.0007in; } .RomanNumerals_A { width:1.1347in; } .RomanNumerals_B { width:0.9722in; } .RomanNumerals_C { width:0.9715in; } .SUBTOTAL_A { width:2.0007in; } .Table153_A { width:0.9896in; } .Table153_B { width:0.9319in; } .Table153_C { width:4.0799in; } .Table168_A { width:0.5264in; } .Table168_B { width:2.3222in; } .Table213_A { width:0.9681in; } .Table213_B { width:1.3035in; } .Table213_C { width:3.4882in; } .Table216_A { width:0.6021in; } .Table216_B { width:0.9021in; } .Table216_C { width:1.8049in; } .Table216_D { width:0.9028in; } .Table216_E { width:1.7903in; } .Table217_A { width:0.6021in; } .Table217_B { width:0.9021in; } .Table217_C { width:1.8049in; } .Table217_D { width:0.9028in; } .Table217_E { width:1.7903in; } .Table242_A { width:0.5521in; } .Table242_B { width:0.6042in; } .Table242_C { width:0.3438in; } .Table242_D { width:0.5in; } .Table242_E { width:0.4688in; } .Table243_A { width:0.5521in; } .Table243_B { width:0.6042in; } .Table243_C { width:0.3438in; } .Table243_D { width:0.5in; } .Table243_E { width:0.4688in; } .Table244_A { width:0.6597in; } .Table244_B { width:5.3417in; } .Table285_A { width:3.0007in; } .Table285_B { width:3.0007in; } .Table288_A { width:3.0007in; } .Table288_B { width:3.0007in; } .Table300_A { width:0.5951in; } .Table300_B { width:0.6368in; } .Table300_C { width:0.9326in; } .Table300_D { width:1.3375in; } .Table300_E { width:0.7694in; } .Table333_A { width:3.0007in; } .Table333_B { width:3.0007in; } .Table336_A { width:3.0007in; } .Table336_B { width:3.0007in; } .Table339_A { width:3.0007in; } .Table339_B { width:3.0007in; } .Table342_A { width:3.0007in; } .Table342_B { width:3.0007in; } .Table345_A { width:3.0007in; } .Table345_B { width:3.0007in; } .Table364_A { width:1.6868in; } .Table364_B { width:3.0382in; } .Table366_A { width:3.0007in; } .Table366_B { width:3.0007in; } .Table440_A { width:1.0424in; } .Table440_B { width:4.959in; } .Table444_A { width:1.0007in; } .Table444_B { width:2.0035in; } .Table444_C { width:1.0014in; } .Table444_D { width:0.9951in; } .Table452_A { width:1.4069in; } .Table452_B { width:3.4576in; } .Table452_C { width:1.1361in; } .Table453_A { width:1.3424in; } .Table453_B { width:1.1764in; } .Table453_C { width:1.0951in; } .Table454_A { width:0.8542in; } .Table454_B { width:0.9583in; } .Table454_C { width:3.0396in; } .Table454_D { width:1.0104in; } .Table456_A { width:1.5917in; } .Table456_B { width:4.4097in; } .Table469_A { width:0.791in; } .Table469_B { width:3.6979in; } .Table480_A { width:0.5326in; } .Table480_B { width:0.8215in; } .Table480_C { width:0.4833in; } .Table480_D { width:1.3028in; } .Table480_F { width:1.2931in; } .Table481_A { width:0.5653in; } .Table481_B { width:0.5132in; } .Table481_E { width:0.5049in; } .Table481_F { width:0.5007in; } .Table53_A { width:0.9646in; } .Table53_B { width:1.0639in; } .Table53_C { width:1.0854in; } .Table53_D { width:1.1076in; } .Table56_A { width:3.0007in; } .Table56_B { width:3.0007in; } .Table83_A { width:0.9292in; } .Table83_B { width:0.8639in; } .Table83_C { width:4.2083in; } .Attribute { font-family:Courier New; font-size:10pt; background-color:transparent; } .Attribute_20_Value { font-family:Courier New; font-size:10pt; background-color:transparent; } .Bullet_20_Symbols { font-family:StarSymbol; font-size:9pt; } .Def { font-style:italic; background-color:transparent; } .Element { font-family:Courier New; font-size:10pt; background-color:transparent; } .Emphasis { font-style:italic; background-color:transparent; } .Formula { font-style:italic; } .GroupDefinition { background-color:transparent; } .ISO_20_Keyword { background-color:transparent; } .Label { font-weight:bold; background-color:transparent; } .Note_20_Label { background-color:transparent; font-weight:bold; } .Strong_20_Emphasis { font-weight:bold; background-color:transparent; } .SyntaxRule { font-family:Cumberland; font-size:10pt; font-style:normal; } .T10 { font-family:Arial; font-size:10pt; } .T11 { font-family:Arial; font-size:10pt; } .T12 { font-family:Arial; font-size:10pt; } .T13 { font-family:Arial; font-size:10pt; font-style:normal; } .T14 { font-family:Arial; font-size:10pt; font-style:normal; font-weight:normal; } .T15 { font-family:Arial; font-size:10pt; font-weight:normal; } .T16 { font-family:Arial; font-size:10pt; background-color:transparent; } .T17 { font-family:Arial; font-size:10pt; font-style:italic; } .T18 { font-family:Arial; font-size:10pt; font-style:italic; font-weight:bold; } .T19 { font-family:Arial; font-size:10pt; } .T2 { font-weight:normal; } .T20 { font-family:Courier New; font-size:10pt; background-color:transparent; } .T21 { font-weight:normal; } .T22 { font-weight:normal; } .T23 { font-style:normal; } .T24 { font-style:normal; } .T25 { font-style:normal; } .T26 { font-style:normal; font-weight:normal; } .T27 { font-style:normal; font-weight:normal; } .T28 { font-style:normal; text-decoration:underline; } .T29 { font-style:normal; } .T3 { font-style:normal; } .T30 { font-style:normal; } .T31 { font-style:italic; } .T32 { font-style:italic; } .T33 { font-style:italic; } .T34 { font-style:italic; } .T35 { font-style:italic; text-decoration:none ! important; } .T36 { font-style:italic; font-weight:normal; } .T37 { font-style:italic; } .T38 { font-style:italic; } .T39 { text-decoration:underline; } .T4 { font-style:normal; } .T40 { font-family:Arial; } .T41 { font-family:Arial; } .T42 { font-family:Arial; } .T43 { font-family:Arial; } .T44 { font-family:Arial; font-weight:normal; } .T45 { font-family:Arial; font-weight:normal; } .T46 { font-family:Arial; font-style:normal; font-weight:normal; } .T47 { font-family:Arial; font-style:italic; } .T48 { font-family:Arial; font-style:italic; } .T49 { font-family:Arial; font-style:normal; } .T5 { font-style:normal; font-weight:normal; } .T50 { font-family:Arial; font-size:10pt; } .T51 { font-family:Arial; font-size:10pt; font-style:italic; } .T53 { vertical-align:super; font-size:58%;} .T54 { vertical-align:super; font-size:58%;background-color:transparent; } .T55 { vertical-align:super; font-size:58%;font-weight:normal; } .T56 { vertical-align:super; font-size:58%;font-style:italic; } .T57 { vertical-align:super; font-size:58%;font-style:normal; } .T58 { vertical-align:super; font-size:58%;font-size:10pt; } .T59 { vertical-align:super; font-size:58%;font-family:Standard Symbols L; } .T6 { font-style:italic; } .T60 { vertical-align:super; font-size:58%;font-family:Arial; } .T61 { vertical-align:sub; font-size:58%;} .T62 { vertical-align:sub; font-size:58%;font-style:italic; } .T63 { vertical-align:sub; font-size:58%;font-style:normal; } .T64 { vertical-align:sub; font-size:58%;font-family:Arial; } .T66 { font-style:italic; } .T67 { font-style:normal; } .T68 { font-size:10pt; } .T69 { font-weight:bold; } .T73 { font-family:Arial; } .T75 { font-style:italic; } .T76 { font-size:10pt; } .T77 { font-size:10pt; } .T78 { font-family:Standard Symbols L; } .T79 { font-family:Standard Symbols L; } .T83 { font-family:Arial, sans-serif; font-weight:normal; } .T85 { color:#000000; font-family:Arial; letter-spacing:normal; font-style:normal; font-weight:normal; } .T86 { color:#000000; font-family:Arial; letter-spacing:normal; font-style:normal; font-weight:normal; } .T87 { color:#000000; font-family:Arial; letter-spacing:normal; font-style:italic; font-weight:normal; } .T88 { color:#0000ff; font-family:Arial; letter-spacing:normal; font-style:normal; text-decoration:none ! important; font-weight:normal; } .T9 { font-family:Arial; font-size:10pt; } .Teletype { font-family:Cumberland; } .Variable { font-style:italic; } .code { font-family:Cumberland; font-weight:bold; } .Sect1 .Table168.1 .Table213.1 .Table216.1 .Table217.1 .Table444.1 .Table480.1 .Table481.1 .Table53.8 .Definition .Numbering_20_Symbols .T1 .T52 .T65 .T7 .T70 .T71 .T72 .T74 .T8 .T80 .T81 .T82 .T84 { } Open Document Format for Office Applications (OpenDocument) Version 1.2 Part 2: Recalculated Formula (OpenFormula) Format OASIS Standard 29 September 2011 Specification URIs: This version: http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.odt http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.pdf http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html Previous version: http://docs.oasis-open.org/office/v1.2/csd06/OpenDocument-v1.2-csd06-part2.odt http://docs.oasis-open.org/office/v1.2/csd06/OpenDocument-v1.2-csd06-part2.pdf http://docs.oasis-open.org/office/v1.2/csd06/OpenDocument-v1.2-csd06-part2.html Latest version: http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part2.odt http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part2.pdf http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part2.html Technical Committee: OASIS Open Document Format for Office Applications (OpenDocument) TC Chairs: Rob Weir IBM Michael Brauer Oracle Corporation Editors: David A. Wheeler Patrick Durusau Eike Rathke Oracle Corporation Rob Weir IBM Related work: This document is part of the OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 The OpenDocument v1.2 specification has these parts: OpenDocument v1.2 part 1: OpenDocument Schema OpenDocument v1.2 part 2: Recalculated Formula (OpenFormula) Format (this part) OpenDocument v1.2 part 3: Packages Declared XML namespaces: None. Abstract: This document is part of the Open Document Format for Office Applications (OpenDocument) Version 1.2 specification. It defines a formula language to be used in OpenDocument documents. Status: This document was last revised or approved by the OASIS Open Document Format for Office Applications (OpenDocument) TC on the above date. The level of approval is also listed above. Check the "Latest version" location noted above for possible later revisions of this document. Technical Committee members should send comments on this specification to the Technical Committee’s email list. Others should send comments to the Technical Committee by using the “ Send A Comment ” button on the Technical Committee’s web page at http://www.oasis-open.org/committees/office/ . For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page ( http://www.oasis-open.org/committees/office/ipr.php ). Citation format: When referencing this specification the following citation format should be used: OpenDocument-v1.2-part2 Open Document Format for Office Applications ( OpenDocument ) Version 1.2 Part 2 : Recalculated Formula (OpenFormula) Format. 29 September 2011. OASIS Standard. http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html Notices Copyright © OASIS Open 2002–2011. All Rights Reserved. All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so. OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims. The names "OASIS", “OpenDocument”, “Open Document Format”, and “ODF” are trademarks of OASIS http://www.oasis-open.org/who/trademark.php Table of Contents 1 Introduction 1.1 Introduction 1.2 Terminology 1.3 Purpose 1.4 Normative References 1.5 Non-Normative References 2 Expressions and Evaluators 2.1 Introduction 2.2 OpenDocument Formula Expression 2.3 Evaluators 2.3.1 OpenDocument Formula Evaluator 2.3.2 OpenDocument Formula Small Group Evaluator 2.3.3 OpenDocument Formula Medium Group Evaluator 2.3.4 OpenDocument Formula Large Group Evaluator 2.4 Variances (Implementation-defined, Unspecified, and Behavioral Changes) 3 Formula Processing Model 3.1 General 3.2 Expression Evaluation 3.2.1 General 3.2.2 Expression Calculation 3.2.3 Operator and Function Evaluation 3.3 Non-Scalar Evaluation (aka 'Array expressions') 3.4 Host-Defined Behaviors 3.5 When recalculation occurs 3.6 Numerical Models 3.7 Basic Limits 4 Types 4.1 General 4.2 Text (String) 4.3 Number 4.3.1 General 4.3.2 Time 4.3.3 Date 4.3.4 DateTime 4.3.5 Percentage 4.3.6 Currency 4.3.7 Logical (Number) 4.4 Complex Number 4.5 Logical (Boolean) 4.6 Error 4.7 Empty Cell 4.8 Reference 4.9 ReferenceList 4.10 Array 4.11 Pseudotypes 4.11.1 General 4.11.2 Scalar 4.11.3 DateParam 4.11.4 TimeParam 4.11.5 Integer 4.11.6 TextOrNumber 4.11.7 Basis 4.11.8 Criterion 4.11.9 Database 4.11.10 Field 4.11.11 Criteria 4.11.12 Sequences (NumberSequence, NumberSequenceList, DateSequence, LogicalSequence, and ComplexSequence) 4.11.13 Any 5 Expression Syntax 5.1 General 5.2 Basic Expressions 5.3 Constant Numbers 5.4 Constant Strings 5.5 Operators 5.6 Functions and Function Parameters 5.7 Nonstandard Function Names 5.8 References 5.9 Reference List 5.10 Quoted Label 5.10.1 General 5.10.2 Lookup of Defined Labels 5.10.3 Automatic Lookup of Labels 5.10.4 Implicit Intersection 5.10.5 Automatic Range 5.10.6 Automatic Intersection 5.11 Named Expressions 5.12 Constant Errors 5.13 Inline Arrays 5.14 Whitespace 6 Standard Operators and Functions 6.1 General 6.2 Common Template for Functions and Operators 6.3 Implicit Conversion Operators 6.3.1 General 6.3.2 Conversion to Scalar 6.3.3 Implied intersection 6.3.4 Force to array context (ForceArray) 6.3.5 Conversion to Number 6.3.6 Conversion to Integer 6.3.7 Conversion to NumberSequence 6.3.8 Conversion to NumberSequenceList 6.3.9 Conversion to DateSequence 6.3.10 Conversion to Complex Number 6.3.11 Conversion to ComplexSequence 6.3.12 Conversion to Logical 6.3.13 Conversion to LogicalSequence 6.3.14 Conversion to Text 6.3.15 Conversion to DateParam 6.3.16 Conversion to TimeParam 6.4 Standard Operators 6.4.1 General 6.4.2 Infix Operator "+" 6.4.3 Infix Operator "-" 6.4.4 Infix Operator "*" 6.4.5 Infix Operator "/" 6.4.6 Infix Operator "^" 6.4.7 Infix Operator "=" 6.4.8 Infix Operator "<>" 6.4.9 Infix Operator Ordered Comparison ("<", "<=", ">", ">=") 6.4.10 Infix Operator "&" 6.4.11 Infix Operator Reference Range (":") 6.4.12 Infix Operator Reference Intersection ("!") 6.4.13 Infix Operator Reference Concatenation ("~") (aka Union) 6.4.14 Postfix Operator "%" 6.4.15 Prefix Operator "+" 6.4.16 Prefix Operator "-" 6.5 Matrix Functions 6.5.1 General 6.5.2 MDETERM 6.5.3 MINVERSE 6.5.4 MMULT 6.5.5 MUNIT 6.5.6 TRANSPOSE 6.6 Bit operation functions 6.6.1 General 6.6.2 BITAND 6.6.3 BITLSHIFT 6.6.4 BITOR 6.6.5 BITRSHIFT 6.6.6 BITXOR 6.7 Byte-position text functions 6.7.1 General 6.7.2 FINDB 6.7.3 LEFTB 6.7.4 LENB 6.7.5 MIDB 6.7.6 REPLACEB 6.7.7 RIGHTB 6.7.8 SEARCHB 6.8 Complex Number Functions 6.8.1 General 6.8.2 COMPLEX 6.8.3 IMABS 6.8.4 IMAGINARY 6.8.5 IMARGUMENT 6.8.6 IMCONJUGATE 6.8.7 IMCOS 6.8.8 IMCOSH 6.8.9 IMCOT 6.8.10 IMCSC 6.8.11 IMCSCH 6.8.12 IMDIV 6.8.13 IMEXP 6.8.14 IMLN 6.8.15 IMLOG10 6.8.16 IMLOG2 6.8.17 IMPOWER 6.8.18 IMPRODUCT 6.8.19 IMREAL 6.8.20 IMSIN 6.8.21 IMSINH 6.8.22 IMSEC 6.8.23 IMSECH 6.8.24 IMSQRT 6.8.25 IMSUB 6.8.26 IMSUM 6.8.27 IMTAN 6.9 Database Functions 6.9.1 General 6.9.2 DAVERAGE 6.9.3 DCOUNT 6.9.4 DCOUNTA 6.9.5 DGET 6.9.6 DMAX 6.9.7 DMIN 6.9.8 DPRODUCT 6.9.9 DSTDEV 6.9.10 DSTDEVP 6.9.11 DSUM 6.9.12 DVAR 6.9.13 DVARP 6.10 Date and Time Functions 6.10.1 General 6.10.2 DATE 6.10.3 DATEDIF 6.10.4 DATEVALUE 6.10.5 DAY 6.10.6 DAYS 6.10.7 DAYS360 6.10.8 EDATE 6.10.9 EOMONTH 6.10.10 HOUR 6.10.11 ISOWEEKNUM 6.10.12 MINUTE 6.10.13 MONTH 6.10.14 NETWORKDAYS 6.10.15 NOW 6.10.16 SECOND 6.10.17 TIME 6.10.18 TIMEVALUE 6.10.19 TODAY 6.10.20 WEEKDAY 6.10.21 WEEKNUM 6.10.22 WORKDAY 6.10.23 YEAR 6.10.24 YEARFRAC 6.11 External Access Functions 6.11.1 General 6.11.2 DDE 6.11.3 HYPERLINK 6.12 Financial Functions 6.12.1 General 6.12.2 ACCRINT 6.12.3 ACCRINTM 6.12.4 AMORLINC 6.12.5 COUPDAYBS 6.12.6 COUPDAYS 6.12.7 COUPDAYSNC 6.12.8 COUPNCD 6.12.9 COUPNUM 6.12.10 COUPPCD 6.12.11 CUMIPMT 6.12.12 CUMPRINC 6.12.13 DB 6.12.14 DDB 6.12.15 DISC 6.12.16 DOLLARDE 6.12.17 DOLLARFR 6.12.18 DURATION 6.12.19 EFFECT 6.12.20 FV 6.12.21 FVSCHEDULE 6.12.22 INTRATE 6.12.23 IPMT 6.12.24 IRR 6.12.25 ISPMT 6.12.26 MDURATION 6.12.27 MIRR 6.12.28 NOMINAL 6.12.29 NPER 6.12.30 NPV 6.12.31 ODDFPRICE 6.12.32 ODDFYIELD 6.12.33 ODDLPRICE 6.12.34 ODDLYIELD 6.12.35 PDURATION 6.12.36 PMT 6.12.37 PPMT 6.12.38 PRICE 6.12.39 PRICEDISC 6.12.40 PRICEMAT 6.12.41 PV 6.12.42 RATE 6.12.43 RECEIVED 6.12.44 RRI 6.12.45 SLN 6.12.46 SYD 6.12.47 TBILLEQ 6.12.48 TBILLPRICE 6.12.49 TBILLYIELD 6.12.50 VDB 6.12.51 XIRR 6.12.52 XNPV 6.12.53 YIELD 6.12.54 YIELDDISC 6.12.55 YIELDMAT 6.13 Information Functions 6.13.1 General 6.13.2 AREAS 6.13.3 CELL 6.13.4 COLUMN 6.13.5 COLUMNS 6.13.6 COUNT 6.13.7 COUNTA 6.13.8 COUNTBLANK 6.13.9 COUNTIF 6.13.10 COUNTIFS 6.13.11 ERROR.TYPE 6.13.12 FORMULA 6.13.13 INFO 6.13.14 ISBLANK 6.13.15 ISERR 6.13.16 ISERROR 6.13.17 ISEVEN 6.13.18 ISFORMULA 6.13.19 ISLOGICAL 6.13.20 ISNA 6.13.21 ISNONTEXT 6.13.22 ISNUMBER 6.13.23 ISODD 6.13.24 ISREF 6.13.25 ISTEXT 6.13.26 N 6.13.27 NA 6.13.28 NUMBERVALUE 6.13.29 ROW 6.13.30 ROWS 6.13.31 SHEET 6.13.32 SHEETS 6.13.33 TYPE 6.13.34 VALUE 6.14 Lookup Functions 6.14.1 General 6.14.2 ADDRESS 6.14.3 CHOOSE 6.14.4 GETPIVOTDATA 6.14.5 HLOOKUP 6.14.6 INDEX 6.14.7 INDIRECT 6.14.8 LOOKUP 6.14.9 MATCH 6.14.10 MULTIPLE.OPERATIONS 6.14.11 OFFSET 6.14.12 VLOOKUP 6.15 Logical Functions 6.15.1 General 6.15.2 AND 6.15.3 FALSE 6.15.4 IF 6.15.5 IFERROR 6.15.6 IFNA 6.15.7 NOT 6.15.8 OR 6.15.9 TRUE 6.15.10 XOR 6.16 Mathematical Functions 6.16.1 General 6.16.2 ABS 6.16.3 ACOS 6.16.4 ACOSH 6.16.5 ACOT 6.16.6 ACOTH 6.16.7 ASIN 6.16.8 ASINH 6.16.9 ATAN 6.16.10 ATAN2 6.16.11 ATANH 6.16.12 BESSELI 6.16.13 BESSELJ 6.16.14 BESSELK 6.16.15 BESSELY 6.16.16 COMBIN 6.16.17 COMBINA 6.16.18 CONVERT 6.16.19 COS 6.16.20 COSH 6.16.21 COT 6.16.22 COTH 6.16.23 CSC 6.16.24 CSCH 6.16.25 DEGREES 6.16.26 DELTA 6.16.27 ERF 6.16.28 ERFC 6.16.29 EUROCONVERT 6.16.30 EVEN 6.16.31 EXP 6.16.32 FACT 6.16.33 FACTDOUBLE 6.16.34 GAMMA 6.16.35 GAMMALN 6.16.36 GCD 6.16.37 GESTEP 6.16.38 LCM 6.16.39 LN 6.16.40 LOG 6.16.41 LOG10 6.16.42 MOD 6.16.43 MULTINOMIAL 6.16.44 ODD 6.16.45 PI 6.16.46 POWER 6.16.47 PRODUCT 6.16.48 QUOTIENT 6.16.49 RADIANS 6.16.50 RAND 6.16.51 RANDBETWEEN 6.16.52 SEC 6.16.53 SERIESSUM 6.16.54 SIGN 6.16.55 SIN 6.16.56 SINH 6.16.57 SECH 6.16.58 SQRT 6.16.59 SQRTPI 6.16.60 SUBTOTAL 6.16.61 SUM 6.16.62 SUMIF 6.16.63 SUMIFS 6.16.64 SUMPRODUCT 6.16.65 SUMSQ 6.16.66 SUMX2MY2 6.16.67 SUMX2PY2 6.16.68 SUMXMY2 6.16.69 TAN 6.16.70 TANH 6.17 Rounding Functions 6.17.1 CEILING 6.17.2 INT 6.17.3 FLOOR 6.17.4 MROUND 6.17.5 ROUND 6.17.6 ROUNDDOWN 6.17.7 ROUNDUP 6.17.8 TRUNC 6.18 Statistical Functions 6.18.1 General 6.18.2 AVEDEV 6.18.3 AVERAGE 6.18.4 AVERAGEA 6.18.5 AVERAGEIF 6.18.6 AVERAGEIFS 6.18.7 BETADIST 6.18.8 BETAINV 6.18.9 BINOM.DIST.RANGE 6.18.10 BINOMDIST 6.18.11 LEGACY.CHIDIST 6.18.12 CHISQDIST 6.18.13 LEGACY.CHIINV 6.18.14 CHISQINV 6.18.15 LEGACY.CHITEST 6.18.16 CONFIDENCE 6.18.17 CORREL 6.18.18 COVAR 6.18.19 CRITBINOM 6.18.20 DEVSQ 6.18.21 EXPONDIST 6.18.22 FDIST 6.18.23 LEGACY.FDIST 6.18.24 FINV 6.18.25 LEGACY.FINV 6.18.26 FISHER 6.18.27 FISHERINV 6.18.28 FORECAST 6.18.29 FREQUENCY 6.18.30 FTEST 6.18.31 GAMMADIST 6.18.32 GAMMAINV 6.18.33 GAUSS 6.18.34 GEOMEAN 6.18.35 GROWTH 6.18.36 HARMEAN 6.18.37 HYPGEOMDIST 6.18.38 INTERCEPT 6.18.39 KURT 6.18.40 LARGE 6.18.41 LINEST 6.18.42 LOGEST 6.18.43 LOGINV 6.18.44 LOGNORMDIST 6.18.45 MAX 6.18.46 MAXA 6.18.47 MEDIAN 6.18.48 MIN 6.18.49 MINA 6.18.50 MODE 6.18.51 NEGBINOMDIST 6.18.52 NORMDIST 6.18.53 NORMINV 6.18.54 LEGACY.NORMSDIST 6.18.55 LEGACY.NORMSINV 6.18.56 PEARSON 6.18.57 PERCENTILE 6.18.58 PERCENTRANK 6.18.59 PERMUT 6.18.60 PERMUTATIONA 6.18.61 PHI 6.18.62 POISSON 6.18.63 PROB 6.18.64 QUARTILE 6.18.65 RANK 6.18.66 RSQ 6.18.67 SKEW 6.18.68 SKEWP 6.18.69 SLOPE 6.18.70 SMALL 6.18.71 STANDARDIZE 6.18.72 STDEV 6.18.73 STDEVA 6.18.74 STDEVP 6.18.75 STDEVPA 6.18.76 STEYX 6.18.77 LEGACY.TDIST 6.18.78 TINV 6.18.79 TREND 6.18.80 TRIMMEAN 6.18.81 TTEST 6.18.82 VAR 6.18.83 VARA 6.18.84 VARP 6.18.85 VARPA 6.18.86 WEIBULL 6.18.87 ZTEST 6.19 Number Representation Conversion Functions 6.19.1 General 6.19.2 ARABIC 6.19.3 BASE 6.19.4 BIN2DEC 6.19.5 BIN2HEX 6.19.6 BIN2OCT 6.19.7 DEC2BIN 6.19.8 DEC2HEX 6.19.9 DEC2OCT 6.19.10 DECIMAL 6.19.11 HEX2BIN 6.19.12 HEX2DEC 6.19.13 HEX2OCT 6.19.14 OCT2BIN 6.19.15 OCT2DEC 6.19.16 OCT2HEX 6.19.17 ROMAN 6.20 Text Functions 6.20.1 General 6.20.2 ASC 6.20.3 CHAR 6.20.4 CLEAN 6.20.5 CODE 6.20.6 CONCATENATE 6.20.7 DOLLAR 6.20.8 EXACT 6.20.9 FIND 6.20.10 FIXED 6.20.11 JIS 6.20.12 LEFT 6.20.13 LEN 6.20.14 LOWER 6.20.15 MID 6.20.16 PROPER 6.20.17 REPLACE 6.20.18 REPT 6.20.19 RIGHT 6.20.20 SEARCH 6.20.21 SUBSTITUTE 6.20.22 T 6.20.23 TEXT 6.20.24 TRIM 6.20.25 UNICHAR 6.20.26 UNICODE 6.20.27 UPPER 7 Other Capabilities 7.1 General 7.2 Inline constant arrays 7.3 Inline non-constant arrays 7.4 Year 1583 8 Non-portable Features 8.1 General 8.2 Distinct Logical 1 1.1 This document is part of the Open Document Format for Office Applications (OpenDocument) Version 1.2 specification. It defines a formula language for OpenDocument documents, which is also called OpenFormula. OpenFormula is a specification of an open format for exchanging recalculated formulas between office applications, in particular, formulas in spreadsheet documents. OpenFormula defines data types, syntax, and semantics for recalculated formulas, including Using OpenFormula allows document creators to change the office application they use, exchange formulas with others (who may use a different application), and access formulas far in the future, with confidence that the recalculated formulas in their documents will produce equivalent results if given equivalent inputs. OpenFormula is intended to be a supporting document to the Open Document Format for Office Applications (OpenDocument) format, particularly for defining its attributes table:formula text:formula 1.2 All text is normative unless otherwise labeled. Within the normative text of this specification, the terms " shall shall not should should not may [ISO/IEC Directives] 1.3 Open Formula defines: 1. 2. 3. for recalculated formulas. OpenFormula also defines functions. OpenFormula does not define: 1. 2. 1.4 [ CharModel Character Model for the World Wide Web 1.0: Fundamentals http://www.w3.org/TR/2005/REC-charmod-20050215/ [ ISO/IEC Directives Rules for the structure and drafting of International Standards [ ISO4217 Codes for the representation of currencies and funds [ ISO8601 Data elements and interchange formats -- Information interchange -- Representation of dates and times [ RFC3986 Uniform Resource Identifier (URI): Generic Syntax http://www.ietf.org/rfc/rfc3986.txt [ RFC3987 Internationalized Resource Identifiers (IRIs) http://www.ietf.org/rfc/rfc3987.txt [ UNICODE The Unicode Standard, Version 5.2 http://www.unicode.org/versions/Unicode5.2.0/) [ UTR15 Unicode Normalization Forms http://www.unicode.org/reports/tr15/tr15-25.html [ XML1.0 Extensible Markup Language (XML) 1.0 (Fourth Edition) http://www.w3.org/TR/2006/REC-xml-20060816/ 1.5 [ JISX0201 JIS X 0201 (1976) to Unicode 1.1 Table http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0201.TXT [ JISX0208 JIS X 0208 (1990) to Unicode http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT [ UAX11 East Asian Width http://www.unicode.org/reports/tr11/tr11-19.html 2 2.1 The OpenDocument specification defines conformance for formula expressions and evaluators. For evaluators, there are three groups of features that an evaluator may support. This chapter defines the basic requirements for the individual conformance targets. 2.2 An OpenDocument formula expression shall may 2.3 2.3.1 An OpenDocument Formula Evaluator A) may B) shall conform to one of: C) may may D) should Note 1: may Reference to or dependence upon functions or behavior not defined by this standard may impair the interoperability of the resulting expression(s). Note 2 : f shall space defined by [UNICODE] thus, “A” is U+0041, “Z” is U+005A, and the range of characters “A-Z” is the range U+0041 through U+005A inclusive. 2.3.2 An OpenDocument Formula Small Group Evaluator A) Basic Limits B) It shall implement the syntax defined in these sections on syntax: Criteria; Basic Expressions; Constant Numbers; Constant Strings; Operators; Functions and Function Parameters; Nonstandard Function Names; References; Simple Named Expressions ; Errors; Whitespace. C) Conversion to Number Conversion to Logical D) It shall implement the following operators (which are all the operators except reference union (~)): Infix Operator Ordered Comparison ("<", "<=", ">", ">="); Infix Operator "&”; Infix Operator "+”; Infix Operator "-”; Infix Operator "*”; Infix Operator "/”; Infix Operator "^”; Infix Operator "=”; Infix Operator "<>”; Postfix Operator “%”; Prefix Operator “+”; Prefix Operator “-”; Infix Operator Reference Intersection ("!"); Infix Operator Range (":"). E) It shall implement at least the following functions as defined in this specification: ABS 6.16.2 ; ACOS 6.16.3 ; AND 6.15.2 ; ASIN 6.16.7 ; ATAN 6.16.9 ; ATAN2 6.16.10 ; AVERAGE 6.18.3 ; AVERAGEIF 6.18.5 ; CHOOSE 6.14.3 ; COLUMNS 6.13.5 ; COS 6.16.19 ; COUNT 6.13.6 ; COUNTA 6.13.7 ; COUNTBLANK 6.13.8 ; COUNTIF 6.13.9 ; DATE 6.10.2 ; DAVERAGE 6.9.2 ; DAY 6.10.5 ; DCOUNT 6.9.3 ; DCOUNTA 6.9.4 ; DDB 6.12.14 ; DEGREES 6.16.25 ; DGET 6.9.5 ; DMAX 6.9.6 ; DMIN 6.9.7 ; DPRODUCT 6.9.8 ; DSTDEV 6.9.9 ; DSTDEVP 6.9.10 ; DSUM 6.9.11 ; DVAR 6.9.12 ; DVARP 6.9.13 ; EVEN 6.16.30 ; EXACT 6.20.8 ; EXP 6.16.31 ; FACT 6.16.32 ; FALSE 6.15.3 ; FIND 6.20.9 ; FV 6.12.20 ; HLOOKUP 6.14.5 ; HOUR 6.10.10 ; IF 6.15.4 ; INDEX 6.14.6 ; INT 6.17.2 ; IRR 6.12.24 ; ISBLANK 6.13.14 ; ISERR 6.13.15 ; ISERROR 6.13.16 ; ISLOGICAL 6.13.19 ; ISNA 6.13.20 ; ISNONTEXT 6.13.21 ; ISNUMBER 6.13.22 ; ISTEXT 6.13.25 ; LEFT 6.20.12 ; LEN 6.20.13 ; LN 6.16.39 ; LOG 6.16.40 ; LOG10 6.16.41 ; LOWER 6.20.14 ; MATCH 6.14.9 ; MAX 6.18.45 ; MID 6.20.15 ; MIN 6.18.48 ; MINUTE 6.10.12 ; MOD 6.16.42 ; MONTH 6.10.13 ; N 6.13.26 ; NA 6.13.27 ; NOT 6.15.7 ; NOW 6.10.15 ; NPER 6.12.29 ; NPV 6.12.30 ; ODD 6.16.44 ; OR 6.15.8 ; PI 6.16.45 ; PMT 6.12.36 ; POWER 6.16.46 ; PRODUCT 6.16.47 ; PROPER 6.20.16 ; PV 6.12.41 ; RADIANS 6.16.49 ; RATE 6.12.42 ; REPLACE 6.20.17 ; REPT 6.20.18 ; RIGHT 6.20.19 ; ROUND 6.17.5 ; ROWS 6.13.30 ; SECOND 6.10.16 ; SIN 6.16.55 ; SLN 6.12.45 ; SQRT 6.16.58 ; STDEV 6.18.72 ; STDEVP 6.18.74 ; SUBSTITUTE 6.20.21 ; SUM 6.16.61 ; SUMIF 6.16.62 ; SYD 6.12.46 ; T 6.20.22 ; TAN 6.16.69 ; TIME 6.10.17 ; TODAY 6.10.19 ; TRIM 6.20.24 ; TRUE 6.15.9 ; TRUNC 6.17.8 ; UPPER 6.20.27 ; VALUE 6.13.34 ; VAR 6.18.82 ; VARP 6.18.84 ; VLOOKUP 6.14.12 ; WEEKDAY 6.10.20 ; YEAR 6.10.23 F) G) Note: This specification does not mandate a user interface for international characters, so a resource-constrained application may choose to not show the traditional glyp h (e.g., it may show the [UNICODE] numeric code instead). 2.3.3 An OpenDocument Formula Medium Group Evaluator A) It shall implement the following functions as defined in this specification: ACCRINT 6.12.2 ; ACCRINTM 6.12.3 ; ACOSH 6.16.4 ; ACOT 6.16.5 ; ACOTH 6.16.6 ; ADDRESS 6.14.2 ; ASINH 6.16.8 ; ATANH 6.16.11 ; AVEDEV 6.18.2 ; BESSELI 6.16.12 ; BESSELJ 6.16.13 ; BESSELK 6.16.14 ; BESSELY 6.16.15 ; BETADIST 6.18.7 ; BETAINV 6.18.8 ; BINOMDIST 6.18.10 ; CEILING 6.17.1 ; CHAR 6.20.3 ; CLEAN 6.20.4 ; CODE 6.20.5 ; COLUMN 6.13.4 ; COMBIN 6.16.16 ; CONCATENATE 6.20.6 ; CONFIDENCE 6.18.16 ; CONVERT 6.16.18 ; CORREL 6.18.17 ; COSH 6.16.20 ; COT 6.16.21 ; COTH 6.16.22 ; COUPDAYBS 6.12.5 ; COUPDAYS 6.12.6 ; COUPDAYSNC 6.12.7 ; COUPNCD 6.12.7 ; COUPNUM 6.12.9 ; COUPPCD 6.12.10 ; COVAR 6.18.18 ; CRITBINOM 6.18.19 ; CUMIPMT 6.12.11 ; CUMPRINC 6.12.12 ; DATEVALUE 6.10.4 ; DAYS360 6.10.7 ; DB 6.12.13 ; DEVSQ 6.18.20 ; DISC 6.12.15 ; DOLLARDE 6.12.16 ; DOLLARFR 6.12.17 ; DURATION 6.12.18 ; EFFECT 6.12.19 ; EOMONTH 6.10.9 ; ERF 6.16.27 ; ERFC 6.16.28 ; EXPONDIST 6.18.21 ; FISHER 6.18.26 ; FISHERINV 6.18.27 ; FIXED 6.20.10 ; FLOOR 6.17.3 ; FORECAST 6.18.28 ; FTEST 6.18.30 ; GAMMADIST 6.18.31 ; GAMMAINV 6.18.32 ; GAMMALN 6.16.35 ; GCD 6.16.36 ; GEOMEAN 6.18.34 ; HARMEAN 6.18.36 ; HYPGEOMDIST 6.18.37 ; INTERCEPT 6.18.38 ; INTRATE 6.12.22 ; ISEVEN 6.13.17 ; ISODD 6.13.23 ; ISOWEEKNUM 6.10.11 ; KURT 6.18.39 ; LARGE 6.18.40 ; LCM 6.16.38 ; LEGACY.CHIDIST 6.18.11 ; LEGACY.CHIINV 6.18.13 ; LEGACY.CHITEST 6.18.15 ; LEGACY.FDIST 6.18.23 ; LEGACY.FINV 6.18.25 ; LEGACY.NORMSDIST 6.18.54 ; LEGACY.NORMSINV 6.18.55 6.18.77 ; LINEST 6.18.41 ; LOGEST 6.18.42 ; LOGINV 6.18.43 ; LOGNORMDIST 6.18.44 ; LOOKUP 6.14.8 ; MDURATION 6.12.26 ; MEDIAN 6.18.47 ; MINVERSE 6.5.3 ; MIRR 6.12.27 ; MMULT 6.5.4 ; MODE 6.18.50 ; MROUND 6.17.4 ; MULTINOMIAL 6.16.43 ; NEGBINOMDIST 6.18.51 ; NETWORKDAYS 6.10.14 ; NOMINAL 6.12.28 ; ODDFPRICE 6.12.31 ; ODDFYIELD 6.12.32 ; ODDLPRICE 6.12.33 ; ODDLYIELD 6.12.34 ; OFFSET 6.14.11 ; PEARSON 6.18.56 ; PERCENTILE 6.18.57 ; PERCENTRANK 6.18.58 ; PERMUT 6.18.59 ; POISSON 6.18.62 ; PRICE 6.12.38 ; PRICEMAT 6.12.40 ; PROB 6.18.63 ; QUARTILE 6.18.64 ; QUOTIENT 6.16.48 ; RAND 6.16.50 ; RANDBETWEEN 6.16.51 ; RANK 6.18.65 ; RECEIVED 6.12.43 ; ROMAN 6.19.17 ; ROUNDDOWN 6.17.6 ; ROUNDUP 6.17.7 ; ROW 6.13.29 ; RSQ 6.18.66 ; SERIESSUM 6.16.53 ; SIGN 6.16.54 ; SINH 6.16.56 ; SKEW 6.18.67 ; SKEWP 6.18.68 ; SLOPE 6.18.69 ; SMALL 6.18.70 ; SQRTPI 6.16.59 ; STANDARDIZE 6.18.71 ; STDEVA 6.18.73 ; STDEVPA 6.18.75 ; STEYX 6.18.76 ; SUBTOTAL 6.16.60 ; SUMPRODUCT 6.16.64 ; SUMSQ 6.16.65 ; SUMX2MY2 6.16.66 ; SUMX2PY2 6.16.67 ; SUMXMY2 6.16.68 ; TANH 6.16.70 ; TBILLEQ 6.12.47 ; TBILLPRICE 6.12.48 ; TBILLYIELD 6.12.49 ; TIMEVALUE 6.10.18 ; TINV 6.18.78 ; TRANSPOSE 6.5.6 ; TREND 6.18.79 ; TRIMMEAN 6.18.80 ; TTEST 6.18.81 ; TYPE 6.13.33 ; VARA 6.18.83 ; VDB 6.12.50 ; WEEKNUM 6.10.21 ; WEIBULL 6.18.86 ; WORKDAY 6.10.22 ; XIRR 6.12.51 ; XNPV 6.12.52 ; YEARFRAC 6.10.24 ; YIELD 6.12.53 ; YIELDDISC 6.12.54 ; YIELDMAT 6.12.55 ; ZTEST 6.18.87 B) shall Infix Operator Reference Union ("~") 6.4.13 C) 2.3.4 An OpenDocument Formula Large Group Evaluator A) shall implement Inline Arrays; Automatic Intersection; External Named Expressions B) shall implement the complex number type as discussed in the section o Complex Number array formulas, an d Sheet-local Named Expressions . It shall implement the following functions as defined in this specification: AMORLINC 6.12.4 ; ARABIC 6.19.2 ; AREAS 6.13.2 ; ASC 6.20.2 ; AVERAGEA 6.18.4 ; AVERAGEIFS 6.18.6 ; BASE 6.19.3 ; BIN2DEC 6.19.4 ; BIN2HEX 6.19.5 ; BIN2OCT 6.19.6 ; BINOM.DIST.RANGE 6.18.9 ; BITAND 6.6.2 ; BITLSHIFT 6.6.3 ; BITOR 6.6.4 ; BITRSHIFT 6.6.5 ; BITXOR 6.6.6 ; CHISQDIST 6.18.12 ; CHISQINV 6.18.14 ; COMBINA 6.16.17 ; COMPLEX 6.8.2 ; COUNTIFS 6.13.10 ; CSC 6.16.23 ; 6.16.23 CSCH 6.16.24 ; DATEDIF 6.10.3 ; DAYS 6.10.6 ; DDE 6.11.2 ; DEC2BIN 6.19.7 ; DEC2HEX 6.19.8 ; DEC2OCT 6.19.9 ; DECIMAL 6.19.10 ; DELTA 6.16.26 ; EDATE 6.10.8 ; ERROR.TYPE 6.13.11 ; EUROCONVERT 6.16.29 ; FACTDOUBLE 6.16.33 ; FDIST 6.18.22 ; FINDB 6.7.2 ; FINV 6.18.24 ; FORMULA 6.13.12 ; FREQUENCY 6.18.29 ; FVSCHEDULE 6.12.21 ; GAMMA 6.16.34 ; GAUSS 6.18.33 ; GESTEP 6.16.37 ; GETPIVOTDATA 6.14.4 ; GROWTH 6.18.35 ; HEX2BIN 6.19.11 ; HEX2DEC 6.19.12 ; HEX2OCT 6.19.13 ; HYPERLINK 6.11.3 ; IFERROR 6.15.5 ; IFNA 6.15.6 ; IMABS 6.8.3 ; IMAGINARY 6.8.4 ; IMARGUMENT 6.8.5 ; IMCONJUGATE 6.8.6 ; IMCOS 6.8.7 ; IMCOT 6.8.9 ; IMCSC 6.8.10 ; IMCSCH 6.8.11 ; IMDIV 6.8.12 ; IMEXP 6.8.13 ; IMLN 6.8.14 ; IMLOG10 6.8.15 ; IMLOG2 6.8.16 ; IMPOWER 6.8.17 ; IMPRODUCT 6.8.18 ; IMREAL 6.8.19 ; IMSEC 6.8.22 ; IMSECH 6.8.23 ; IMSIN 6.8.20 ; IMSQRT 6.8.24 ; IMSUB 6.8.25 ; IMSUM 6.8.26 ; IMTAN 6.8.27 ; INDIRECT 6.14.7 ; INFO 6.13.13 ; IPMT 6.12.23 ; ISFORMULA 6.13.18 ; ISPMT 6.12.25 ; ISREF 6.13.24 ; JIS 6.20.11 ; LEFTB 6.7.3 ; LENB 6.7.4 ; MAXA 6.18.46 ; MDETERM 6.5.2 ; MULTIPLE.OPERATIONS 6.14.10 ; MUNIT 6.5.5 ; MIDB 6.7.5 ; MINA 6.18.49 ; NORMDIST 6.18.52 ; NORMINV 6.18.53 ; NUMBERVALUE 6.13.28 ; OCT2BIN 6.19.14 ; OCT2DEC 6.19.15 ; OCT2HEX 6.19.16 ; PDURATION 6.12.35 ; PERMUTATIONA 6.18.60 ; PHI 6.18.61 ; PPMT 6.12.37 ; PRICEDISC 6.12.39 ; REPLACEB 6.7.6 ; RIGHTB 6.7.7 ; RRI 6.12.44 ; SEARCH 6.20.20 ; SEARCHB 6.7.8 ; SEC 6.16.52 ; SECH 6.16.57 ; SHEET 6.13.31 ; SHEETS 6.13.32 ; SUMIFS 6.16.63 ; TEXT 6.20.23 ; UNICHAR 6.20.25 ; UNICODE 6.20.26 ; VARPA 6.18.85 ; XOR 6.15.10 Note: CELL 6.13.3 ; DOLLAR 6.20.7 2.4 Applications should document all implementation-defined and variances from this standard in a manner that the application users can obtain the information. In a few cases a specific approach is required (e.g., string indexes begin at one), which may be different than the user interface of some implementations. In practice, for nearly all documents the differences are irrelevant. The primary variances and differences from OpenFormula and some existing applications are: ● may , but need not , ● need not may may ● ● shall ● Note: [ISO8601] In an OpenDocument file, calculation settings impact formula recalculation, which can be the same or different from a particular application's defaults. These include whether or not text comparisons are case-sensitive, or if search criteria shall 3 3.1 This section describes the basic formula processing model: how expressions are calculated, when recalculation occurs, and limits on formulas. 3.2 3.2.1 OpenFormula defines rules for the evaluation of expressions as well as the 3.2.2 Expressions in OpenFormula shall 1) 5.3 5.4 5.8 2) 5.5 3.2.3 3) 5.6 5.7 3.2.3 4) 5.11 5) 5.10 5.10.6 5.13 5 Once evaluation has completed: 1) 3.3 2) 3.3 3.2.3 Operators and functions in OpenFormula shall 1) The value of all expression arguments are c Note: 2) 3) 4) 3.3 Non-scalar values passed as arguments to functions are evaluated by intersection or iteration. 1) 1.1) Note 1 : 1.2) 1.2.1) Note 2 : Note 3 : 1.2.2) Note 4 : 2) table:number-matrix-columns-spanned 2.1) 2.1.1) 2.1.2) the 2.1.3) 2.1.4) Note 5: Note 6: 2.2) 2.2.1) Note 7 : 2.2.2) Note 8 : 2.2.3) 2.2.3.1) Note 9 : 2.2.3.2) Note 10 : 2.2.3.3) Note 11 : 2.2.3.4) Note 12 : 2.2.3.5) Note 13 : 3.4 A Formula Evaluator operates in an execution environment (a "host"). The behavior of the Formula Evaluator is parametrized by host-defined properties and functions. The following properties are host-defined: 1) 2) Note: 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) The function HOST-REFERENCE-RESOLVER(Reference) is implementation defined. This function takes as input a Unicode string containing a Reference according to section 4.8 and returns a resolved value. 3.5 Implementations of OpenFormula typically recalculate formulas when its information is needed. Typical implementations will note what values a formula depends on, and when those dependent values are changed and the formula's results are displayed, it will re-execute the formulas that depend on them to produce the new results (choosing the formulas in the right order based on their dependencies). Implementations may recalculate when a value changes (this is termed automatic recalculation manual recalculation Some functions' dependencies are difficult to determine and/or should be recalculated more frequently. These include functions that return today's date or time, random number generator functions (such as RAND 6.16.50 always always volatile 6.13.3 6.11.3 6.14.7 6.13.13 6.10.15 6.14.11 6.16.50 6.10.19 6.13.4 6.13.29 6.13.31 always be recalculated during a recalculation process by including a forced recalculation marker, as described in the syntax below. 3.6 This specification does not, by itself, specify a numerical implementation model, though it does imply some minimal levels of accuracy for most functions. For example, an application cannot say that it implements the infix operator “/” as specified in this document if it implements integer-only arithmetic. 3.7 Evaluators which claim to support “basic limits” shall 1. 2. 3. 4. 4 4.1 All values defined by OpenFormula have a type. OpenFormula defines Text, Number, Complex Number, Logical, Error, Reference, ReferenceList and Array types. 4.2 A Text value (also called a string value) is a Character string" per [CharModel] A text value of length zero is termed the empty string. Index positions in a text value begin at 1. Whether or not Unicode Normalization [UTR15] 4.3 4.3.1 A number is a numeric value. Numbers shall shall not Implementations typically support many subtypes of Number, including Date, Time, DateTime, Percentage, fixed-point arithmetic, and arithmetic supporting arbitrarily long integers, and determine the display format from this. All such Number subtypes shall 6.13.22 All Number subtypes shall 4.3.2 Time is a subtype of Number. Time is represented as a fraction of a day. 4.3.3 Date is a subtype of Number. Date is represented by an integer value. A serial date is the expression of a date as the number of days elapsed from a start date called the epoch. shall should may Note 1 : Evaluators shall may Note 2 : Note 3 : 4.3.4 DateTime is a subtype of Number. 4.3.5 A percentage is a subtype of Number that may be displayed by multiplying the 4.3.6 A currency is a subtype of Number that may appear with or without a currency symbol or with other formatting depending upon the number format assigned to the cell where it appears. 4.3.7 A Logical value is a subtype of Number where TRUE() returns 1 and FALSE() returns 0. The implicit conversion operator “Convert to Logical” 6.3.12 Note: 4.5 4.4 A complex number (sometimes also called an imaginary number) is a pair of real numbers including a real part imaginary part. x iy x y i . A complex number can also be written as re i θ r ir r modulus argument phase Functions and operators that accept complex numbers shall accept Text values as complex numbers ( 6.3.10 Note 1 : Note 2 : Equality can be tested using IMSUB to compute the difference, use IMABS to find the absolute difference, and then ensure the absolute difference is smaller than or equal to some nonnegative value (for exact equality, compare for equality with 0). 4.5 A Logical value (also called a Boolean value) is a value with one of two values: TRUE() and FALSE(). Note: 4.3.7 4.6 An Error is one of a set of possible error values. Implementations may have many different error values, but one error value in particular is distinct: #N/A, the result of the NA() function. Users may choose to enter some data values as #N/A, so that this error value propagates to any other formula that uses it, and may test for this using the function ISNA(). Functions and operators that receive one or more error values as an input shall In an OpenDocument document, if an error value is the result of a cell computation it shall office:value-type string office:string-value Note: 4.7 An empty cell 4.8 A cell strip consists of cell positions in the same row and in one or more contiguous columns. A cell rectangle consists of cell positions in the same cell strips of one or more contiguous rows. A cell cuboid consists of cell positions in the same cell rectangles of one or more contiguous sheets. A reference is the smallest cuboid that (1) contains specifically-identified cell positions and/or specifically-identified complete columns/rows such that (2) removal of any cell positions either violates condition (1) or does not leave a cuboid. Cell positions in a cell cuboid/rectangle/strip can resolve to empty cells (section 3.7). The definitions of specific operations and functions that allow references as operands and parameters stipulate any particular limitations there are on forms of references and how empty cells, when permitted, are interpreted. 4.9 A reference list contains 1 or more references, in order. A reference list can be passed as an argument to functions where passing one reference results in an identical computation as an arbitrary sequence of single references occupying the identical cell range. Note 1 : For example, SUM([.A1:.B2]) is identical to SUM([.A1]~[.B2]~[.A2]~[.B1]), but COLUMNS([.A1:.B2]), resulting in 2 columns, is not identical to COLUMNS([.A1]~[.B2]~[.A2]~[.B1]), where iterating over the reference list would result in 4 columns. A reference list cannot be converted to an array. Note 2 : For example, in array context {ABS([.A1]~[.B2]~[.A2]~[.B1])} is an invalid expression, whereas {ABS([.A1:.B2])} is not. Passing a reference list where a function does not expect one shall generate an Error. Passing a reference list in array iteration context to a function expecting a scalar value shall generate an Error. 4.10 An array is a set of rows each with the same number of columns that contain one or more values. There is a maximum of one value per intersection of row and column. The intersection of a row and column may contain no value. 4.11 4.11.1 Many functions require a type or a set of types with special properties, and/or process them specially. For example, a "Database" requires headers that are the field names. These specialized types are called pseudotypes 4.11.2 A Scalar single not shall 4.11.3 A DateParam is a value that is either a Number (interpreted as a serial number; 4.3.3 6.3.15 4.11.4 A TimeParam is a value that is either a Number (interpreted as a serial number; 4.3.2 6.3.16 4.11.5 An integer is a subtype of Number that has no fractional value. An integer X is equal to INT(X). Division of one integer by another integer may produce a non-integer. 4.11.6 TextOrNumber 4.11.7 4.11.7.1 A basis is a subtype of Integer that specifies the day-count convention to be used in a calculation. This standard defines five day-count conventions, corresponding to widely used current and historical accounting conventions. Each of these five bases defines two things: 1. 2. Historically day-count bases used the naming convention x/y, which indicated that the convention assumed x days per month and y days per year. These names are given for reference purposes. Date Basis Historical Name Day Count Days in Year 0 US (NASD) 30/360 Procedure A, 4.11.7.3 Procedure D, 4.11.7.6 1 Actual/Actual Procedure B, 4.11.7.4 Procedure E, 4.11.7.7 2 Actual/360 Procedure B, 4.11.7.4 Procedure D, 4.11.7.6 3 Actual/365 Procedure B, 4.11.7.4 Procedure F, 4.11.7.8 4 European 30/360 Procedure C, 4.11.7.5 Procedure D, 4.11.7.6 4.11.7.2 The day-count procedures are expressed using notations defined as: •. •. •. •. •. •. Note th th 4.11.7.3 1. 2. 3. 4. 5. 6. 7. 8. 4.11.7.4 1. 2. 3. 4.11.7.5 1. 2. 3. 4. 5. 6. 4.11.7.6 1. 4.11.7.7 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 4.11.7.8 1. 4.11.8 A criterion A reference to an empty cell is interpreted as the numeric value 0. A matching expression can be: ● ● 6.4.9 4.7 Note: s 3.4 ● 4.11.9 A database fields records Evaluators shall Note: A single cell containing text can be used as a database; if it is, it is a database with a single field and no data records. 4.11.10 A field field selector Evaluators should If a field selector is a Number, it is a positive integer and used to select the fields. Fields are numbered from left to right beginning with the number 1. All functions that accept a field parameter shall 4.11.11 A criteria is a rectangular set of values, with at least one column and two rows, that selects matching records from a database. The first row lists fields against which expressions will be matched. 4.11.10 For a record to be selected from a database, all of the expressions in a row of criteria shall A reference to an empty cell is interpreted as the numeric value 0. ● 4.11.8 4.11.12 Some functions accept a sequence, i.e., a value that is to be treated as a sequential series of values. The following are sequences: NumberSequence, NumberSequenceList, DateSequence, LogicalSequence, and ComplexSequence. When evaluating a function that accepts a sequence, the evaluator shall follow the rules for that sequence as defined in section 6.3 4.11.13 Any 5 5.1 The OpenFormula syntax is defined using the BNF notation of the XML specification, chapter 6 [XML1.0] Note: , shall [XML1.0] 5.2 Formulas may start with a '=' (EQUALS SIGN, U+003D), which if present may be followed by a “forced recalculate” marker '=' (EQUALS SIGN, U+003D), followed by an expression. If the second '=' (EQUALS SIGN, U+003D) is present, this formula is a "forced recalculation" formula. If a formula is marked as a "forced recalculation" formula, then it should be recalculated whenever one of its predecessors it depends on changes. Expressed in BNF grammar, a formula is specified: Formula ::= Intro? Expression Intro ::= '=' ForceRecalc? ForceRecalc ::= '=' The primary component of a formula is an Expression . Formulas are composed of Expression s, which may in turn be composed from other Expression s. Expression ::= Whitespace* ( Number | String | Array | PrefixOp Expression | Expression PostfixOp | Expression InfixOp Expression | '(' Expression ')' | FunctionName Whitespace* '(' ParameterList ')' | Reference | QuotedLabel | AutomaticIntersection | NamedExpression | Error ) Whitespace* SingleQuoted ::= "'" ([^'] | "''")+ "'" 5.3 Constant numbers are written using '.' (FULL STOP, U+002E) is of type Number. Number ::= StandardNumber | '.' [0-9]+ ([eE] [-+]? [0-9]+)? StandardNumber ::= [0-9]+ ('.' [0-9]+)? ([eE] [-+]? [0-9]+)? Evaluators should be able to read the Number format, which accepts a decimal fraction that starts with decimal point '.' (FULL STOP, U+002E), without a leading zero. Evaluators shall write numbers only using the StandardNumber format, which requires a leading digit, and shall not write numbers with a leading '.' (FULL STOP, U+002E). 5.4 Constant strings are surrounded by double-quote characters (QUOTATION MARK, U+0022); a literal double-quote character '"' (QUOTATION MARK, U+0022) as string content is escaped by duplicating it. A constant string is of type Text. String ::= '"' ([^"#x00] | '""')* '"' 5.5 Operators are functions with one or more parameters. PrefixOp ::= '+' | '-' PostfixOp ::= '%' InfixOp ::= ArithmeticOp | ComparisonOp | StringOp | ReferenceOp ArithmeticOp ::= '+' | '-' | '*' | '/' | '^' ComparisonOp ::= '=' | '<>' | '<' | '>' | '<=' | '>=' StringOp ::= '&' There are three predefined reference operators: reference intersection , reference concatenation , and range. The result of these operators may be a 3 dimensional range, with front-upper-left and back-lower-right corners, or even a list of such ranges in the case of cell concatenation. ReferenceOp ::= IntersectionOp | ReferenceConcatenationOp | RangeOp IntersectionOp ::= '!' ReferenceConcatenationOp ::= '~' RangeOp ::= ':' Table 1 - Operators Table Associativity Operator(s) Comments left : Range. left ! Reference intersection ([.A1:.C4]![.B1:.B5] is [.B1:.B4]). Displayed as the space character in some implementations. left ~ Reference union. Displayed as the function parameter separator in some implementations. right +,- Prefix unary operators, e.g., -5 or -[.A1]. Note that these have a different precedence than add and subtract. left % Postfix unary operator % (divide by 100). Note that this is legal with expressions (e.g., [.B1]%). left ^ Power (2 ^ left *,/ Multiply, divide. left +,- Binary operations add, subtract. Note that unary (prefix) + and - have a different precedence. left & Binary operation string concatenation. Note that unary (prefix) + and - has a different precedence. Note that "&" shall left =, <>, <, <=, Comparison operators equal to, not equal to, less than, less than or equal to, greater than, greater than or equal to Note 1 : Note 2 : Prefix “+” and “–“ are defined to be right-associative. However, note that typical applications which implement at most the operators defined in this specification (as specified) may implement them as left-associative, because the calculated results will be identical. Note 3 : Precedence can be overridden by using parentheses, so "=2+3*4" computes to 14 but "=(2+3)*4" computes 20. Implementations should retain "unnecessary" parentheses and white space, since these are added by people to improve readability. 5.6 Functions are called by name, followed by parentheses surrounding a list of parameters. Parameters are separated using the semicolon ';' (SEMICOLON, U+003B) character: FunctionName ::= LetterXML (LetterXML | DigitXML | '_' | '.' | CombiningCharXML)* Where LetterXML, DigitXML, and CombiningCharXML are Letter, Digit, and CombiningChar as they are defined in [XML1.0] Function names are case-insensitive. Function calls shall be given a parameter list, though it may be empty. An empty list of parameters is considered a call with 0 parameters, not a call with one parameter that happens to be empty. TRUE() is syntactically a function call with 0 parameters. It is syntactically legitimate to provide empty parameters, though function s need no t accept empty parameters unless otherwise noted: ParameterList ::= /* empty */ | Parameter (Separator EmptyOrParameter )* | Separator EmptyOrParameter /* First param empty */ (Separator EmptyOrParameter )* EmptyOrParameter ::= /* empty */ Whitespace* | Parameter Parameter ::= Expression Separator ::= ';' 5.7 When writing a document using function(s) not defined in this specification, an evaluator shall include a prefix in such function names to identify the original definer of the function's semantics. When the origin of a function cannot be determined, producers may omit a prefix. Producers may use the prefix to differentiate between different definition types. Evaluators that do not support a function should compute its result as some Error value other than NA(). Note Note: Evaluators should should Evaluators that do not support a function should 5.8 References refer to a specific cell or set of cells. The syntax for a constant reference: Reference ::= '[' (Source? RangeAddress) | ReferenceError ']' RangeAddress ::= SheetLocatorOrEmpty ::= SheetLocator | /* empty */ SheetLocator ::= SheetName ('.' SubtableCell)* SheetName ::= QuotedSheetName | '$'? [^\]\. #$']+ QuotedSheetName ::= '$'? SingleQuoted SubtableCell ::= ( Column Row ) | QuotedSheetName ReferenceError ::= "#REF!" Column ::= '$'? [A-Z]+ Row ::= '$'? [1-9] [0-9]* Source ::= "'" IRI "'" "#" CellAddress ::= SheetLocatorOrEmpty '.' Column Row /* Not used directly */ References always begin with '[' (LEFT SQUARE BRACKET, U+005B); this disambiguates cell addresses from function names and named expressions. SheetName include single-quote“'” (APOSTROPHE, U+0027) characters by doubling them and having the entire name surrounded by single-quotes . Column labels shall be in uppercase. The syntax supports whole-row and whole-column references. A reference is of type Reference. A ReferenceError provides information that a formula evaluates to an Error because of a particular reference having been invalidated by actions that occurred after the formula was validly created. Columns are named by a sequence of one or more uppercase letters A-Z (U+0041 through U+005A). Columns are named A, B, C, ... X, Y, Z, AA, AB, AC, ... AY, AZ, BA, BB, BC, ... ZX, ZY, ZZ, AAA, AAB, AAC, AAZ, ABA, ABB, and so on. If a RangeAddress Column Row 4.8 Row Column If in a RangeAddress SheetLocator SheetLocator SheetLocator If a RangeAddress SheetLocator 4.8 If a RangeAddress A reference with an explicit row or column value beyond the capabilities of an evaluator shall be computed as an Error, and not as a reference. Note that references can include a single embedded “:” separator. Evaluators should use references with embedded “:” separators inside the [..] markers, instead of the general-purpose “:” operator, when saving files, and where there is a choice of cells to join, and evaluators should choose the leftmost pair. The optional Source expresses that the reference is to sheets and/or cells in a different location (possibly in a same-document fragment) than that for the formula in which the reference occurs. The optional Source is also used for locating Named Expressions (section 5.11). The IRI portion of Source shall be an IRI reference [RFC3987] [RFC3987] Note Resolution of the [RFC3987] 3.4 5.9 A reference list is the result of the Infix Operator Reference Concatenation 6.4.13 ReferenceList ::= Reference (Whitespace* ReferenceConcatenationOp Whitespace* Reference)* A reference list can be passed as an argument to functions expecting a reference parameter where passing one reference results in an identical computation as an arbitrary sequence of single references occupying the identical cell range. A reference list cannot be converted to an array. 5.10 5.10.1 A quoted label is Text contained in a table as cell content, either literally or as a formula result. QuotedLabel ::= SingleQuoted A quoted label identifies a column or a row, depending o n 5.10.2 For a QuotedLabel table:label-cell-range-address <table:label-range> table:orientation column QuotedLabel table:data-cell-range-address table:orientation row 5.10.3 For a QuotedLabel Matches to the upper left of the formula cell are preferred over other matches, followed by matches with a smaller distance. The following algorithm is used: Cells on the same sheet as the formula cell are examined column-wise from left to right whether they contain the text of QuotedLabel (without the quotes). If more than one cell match, the distance and direction from the formula cell's position is taken into account. The distance is calculated by Distance= ColumnDifference*ColumnDifference+ RowDifference*Row Difference using an idealized layout of quadratic cells. For the direction, during the run two independent match positions are remembered each time Distance is smaller than a previous Distance: Match2 for positions right of and/or below the formula position (FormulaColumn < MatchColumn || FormulaRow < MatchRow), Match1 for all others (not right of and not below). Match1 also holds the very first match, in case there is only one match or all matches are somewhere below or right of the formula cell. After having found the smallest distances the conditions are: 1. 2. 2.1 2.2 2.2.1 2.2.1.1 2.2.1.2 2.2.2 If the resulting cell is below or above another cell containing Text a row lable is assumed, else a column label is assumed. Note: 5.10.4 For the reference resulting from a single QuotedLabel 5.10.5 When passed as a non-scalar argument (e.g. Array or NumberSequence) to a function, an automatically looked up column or row label (not defined label range) is converted to an automatic range reference that is adjusted each time the formula is interpreted. The range is generated from the column below a column label, or the row right of a row label, constructed by encompassing contiguous non-empty cells. An empty cell interrupts contiguousness, one empty cell directly below a column label cell or right of a row label cell is ignored. Example Table Row Data Expression Result Comment 1 Label 2 3 1 4 2 5 6 8 7 8 32 =SUM('Label') 3 Empty cell in row 2 is skipped (two empty cells in row 2 and 3 would not and stop), empty cell in row 5 stops the automatic range. If any cell content is entered in row 5 the range is regenerated as follows: Table Row Data Expression Result Comment 1 Label 2 3 1 4 2 5 4 6 8 7 8 32 =SUM('Label') 15 Empty cell in row 2 is skipped, empty cell in row 7 stops the automatic range. 5.10.6 An automatic intersection may be used to identify the intersection of two quoted labels. Note that this is different from the IntersectionOp AutomaticIntersection ::= QuotedLabel Whitespace* '!!' Whitespace* QuotedLabel In an automatic intersection, one of the labels identifies a row, the other a column; they may be in either order. Each QuotedLabel 5.11 A NamedExpression references another expression, possibly in a completely different spreadsheet or any other document type that can be imported into a spreadsheet. NamedExpression ::= SimpleNamedExpression | SimpleNamedExpression ::= Identifier | SheetLocalNamedExpression ::= ExternalNamedExpression ::= Evaluators supporting named expressions shall support Simple Named Expressions that are global to all the sheets in a (spreadsheet) document in the current document. This is a named expression without a Source , QuotedSheetName , or SubtableCell . The type of a named expression is the type of the value that the named expression returns. Named expressions are case-consistent, meaning that matching is done case-insensitive and identifiers can not differ ONLY in their case. Evaluators should Evaluators may support Sheet-local Named Expressions that are local (attached) to individual sheets. In that case, a non-empty QuotedSheetName can be used to reference a sheet-specific named expression. The most specific named expression for a given expression is used. If the QuotedSheetName is empty, the search for the named expression begins with the current sheet, then up through the container(s) of the sheet (the same is true if the QuotedSheetName rule fragment is not included at all). If there is a non-empty QuotedSheetName , search begins with that named sheet, then up through its container(s) for the given name. Note: If a sheetname is not empty, it shall be quoted using “'” (APOSTROPHE, U+0027). While both Source and QuotedSheetName can begin with the single-quote character “'” (APOSTROPHE, U+0027), they are distinguished: after the closing single-quote character, a non-empty source shall have the '#' (NUMBER SIGN, U+0023) character as the next non-whitespace; a non-empty sheetname shall be followed by the '.' (FULL STOP, U+002E) character as the next non-whitespace. Expressions should [UNICODE] Identifier ::= ( LetterXML (LetterXML | DigitXML | '_' | CombiningCharXML)* ) - ( [A-Za-z]+[0-9]+ ) - ([Tt][Rr][Uu][Ee]) - ([Ff][Aa][Ll][Ss][Ee]) 5.12 Evaluators shall support the Error value #N/A. Evaluators may support other Error values. Evaluators may allow entry of errors directly, parse them and recognize them as Errors. Functions shall propagate Errors unless stated otherwise. Inline shall Error ::= '#' [A-Z0-9]+ ([!?] | ('/' ([A-Z] | ([0-9] [!?])))) Specific Error values are indicated by an identifier. Table 4 Table Name Comments #DIV/0! Attempt to divide by zero, including division by an empty cell. ERROR.TYPE of 2 #NAME? Unrecognized/deleted name. ERROR.TYPE of 5. #N/A Not available. ISNA() applied to this value will return True. Lookup functions which failed, and NA(), return this value. ERROR.TYPE of 7. #NULL! Intersection of ranges produced zero cells. ERROR.TYPE of 1. #NUM! Failed to meet domain constraints (e.g., input was too large or too small). ERROR.TYPE of 6. #REF! Reference to invalid cell (e.g., beyond the application’s abilities). ERROR.TYPE of 4. #VALUE! Parameter is wrong type. ERROR.TYPE of 3. An unknown constant Error value shall be mapped into an Error value supported by the evaluator when read (e.g., the application's equivalent of #NAME?), though an evaluator may warn the user if this has or will take place. It is desirable to preserve the original specific Error name when writing an Error constant back out, where possible, but evaluators may write a different Error value for a formula than they did when reading it for Errors other than #N/A. Whitespace shall not be included in an Error name. Evaluators should use a human-comprehensible name, not a numeric id, for constant Error values they write. 5.13 Inline arrays are enclosed with curly braces. Inside, they contain one or more rows, with each row separated by a row separator: Array ::= '{' MatrixRow ( RowSeparator MatrixRow )* '}' MatrixRow ::= Expression ( ';' Expression )* RowSeparator ::= '|' Evaluators that support inline arrays shall accept a matrix with one or more rows, each with one or more columns, with the same number of columns in each row, with constant values for each expression. that do not support inline arrays, or cannot support a particular use permitted by this syntax, should compute an Error value for such arrays. An inline array is of type Array. Note: Expression authors should be aware that use of Expression other than constant Number or constant String may impair interoperability. 5.14 Whitespace ::= #x20 | #x09 | #x0a | #x0d For calculation purposes, whitespace is ignored unless it is inside the contents of string constants or text surrounded by single quotes. Evaluators shall ignore any whitespace characters before and/or after any operators, constant numbers, constant strings, constant errors, inline arrays, parentheses used for controlling precedence, and the closing parenthesis of a function call. Whitespace shall be ignored following the initial equal sign(s). Whitespace shall be ignored just before a function name, but whitespace shall not separate a function name from its initial opening parentheses. Whitespace shall not be used in the interior of a terminating grammar rule (a rule that references no other rule other than character sets, internally or externally-defined), unless specifically permitted by the terminating grammar rule, since these rules define the lexical properties of a component. Evaluators shall not write formulas with whitespace embedded in any unquoted identifier, constant Number, or constant Error. Evaluators shall treat SPACE (U+0020), CHARACTER TABULATION (U+0009), LINE FEED (U+000A), and CARRIAGE RETURN (U+000D) as whitespace characters. An embedded line break shall be represented by a single LINE FEED character (U+000A), not by a carriage return-linefeed pair. When embedded in an XML attribute the linefeed character is represented as “
”. Evaluators should retain whitespace entered by the original formula creator and use it when saving or presenting the formula, and should not add additional whitespace unless directed to do so during the process of editing a formula. 6 6.1 OpenFormula defines commonly used operators and functions. Function names ignore case. Evaluators should Unless otherwise noted, if any value being provided is an Error, the result is an Error; if more than one Error is provided, one of them is returned (evaluators should return the leftmost Error result) 6.2 For every function or operator, the following are defined in this specification: ● Name: ● Summary: ● Syntax: ● e ● ● ● ● ● Evaluators may extend functions by permitting fewer or additional parameters, which documents may use. Extended functions may result in a lack of interoperability. ● Returns: ● Constraints: shall ● Semantics: Note: Functions and operators are defined by mathematical formulas or by an OpenFormula formula. Formulas define the correct result, and not the algorithm for calculation. Since computing systems have limited precision and range of numbers, some functions cannot or should not be naively implemented as their formulas suggest. This specification defines the mathematically correct answer, and allows implementors to choose the best algorithm that will meet that definition. ● Comment: ● See also The implicit conversion operators omit many of these items, e.g., the syntax (since there is none). 6.3 6.3.1 Any given function or operand takes 0 or more parameters, and each of those parameters has an expected type conversion type Any NumberSequence 6.3.2 To convert to a scalar, if the value is of type: ● ● ● 6.3.3 6.3.3 In some cases a reference to a single cell is needed, but a reference to multiple cells is provided. In this case an "implied intersection" is performed. To perform an implied intersection: ● ● ● 6.3.4 A ForceArray attribute forces calculation of the argument's expression into non-scalar array mode. This means that no implied intersection is performed, instead where a reference to a single cell is expected and multiple cells are provided, iteration over the multiple cells is performed and results are stored in an array that is passed on. See also 3.3 6.3.5 If the expected type is Number, then if value is of type: ● ● ● r s ● recision-as-shown” may 6.3.6 If the expected type is Integer for a function or operator, apply the “Conversion to Number” operation. 6.3.5 Many different conversions from a non-integer number into an integer are possible. The conversion direction may be towards negative infinity, towards positive infinity, towards zero, away from zero, towards the nearest even number, or towards the nearest odd number. A conversion can select the nearest integer, the nearest even or odd integer, or the “next” integer in the given direction if it is not already an integer. If a conversion selects the nearest integer, a direction is still needed (for when a value is halfway between two integers). In this specification, this conversion is referred to as “rounding” or “truncation”; these terms by themselves do not specify any specific operation. If a function specifies its rounding operation using a series of capital letters, the function defined in this specification for that function is used to do the conversion to integer. Common such functions are: ● ● ● 6.3.7 If the expected type is NumberSequence, then if value is of type: ● 6.3.5 ● only could not should not 6.3.8 Identical to Conversion to NumberSequence 6.3.7 Reference ReferenceList Reference NumberSequence 6.3.9 Identical to Conversion to NumberSequence 6.3.7 in the list represents a serial date value of subtype Date. 6.3.10 An evaluator may accept complex numbers as Text, Number, or a different distinguishable type. If the value is: ● ● ([+-]?Number [+-])?Number[ij] [+-]?Number[ij] ● ● 6.3.11 If the expected type is ComplexSequence, then if value is of type: ● ● 6.3.12 If the expected type is Logical, then if value is of type: ● ● evaluator ● ● 6.3.13 If the expected type is LogicalSequence, then if value is of type: ● ● 6.3.14 If the expected type is Text, then if value is of type: ● ● ● ● 6.3.15 If the expected type is the pseudotype DateParam, then if value is of type: ● ● evaluator may attempt to convert to a Number in other ways (such as by calling VALUE); this is implementation-defined. If the evaluator cannot convert to Number, it returns an Error. ● ● 6.3.16 If the expected type is the pseudotype TimeParam, then if value is of type: ● ● evaluator may attempt to convert to a Number in other ways (such as by calling VALUE); this is implementation-defined. If the evaluator cannot convert to Number, it returns an Error. ● ● 6.4 6.4.1 The functions defined under standard operators differ from other functions only by their frequency of use. That frequency of use has lead to the colloquial terminology, standard operators 6.4.2 Summary: Syntax: Number Left Number Right Returns: Constraints: Semantics: See also 6.4.3 6.4.15 6.4.3 Summary: Syntax: Number Left Number Right Returns: Constraints: Semantics: See also 6.4.2 6.4.16 6.4.4 Summary: Syntax: Number Left Number Right Returns: Constraints: Semantics: See also 6.4.2 6.4.5 6.4.5 Summary: Syntax: Number Left Number Right Returns: Constraints: Semantics: See also 6.4.3 6.4.4 6.4.6 Summary: Syntax: Number Left Number Right Returns: Constraints: Semantics: See also 6.4.4 6.16.46 6.4.7 Summary: Syntax: Scalar Scalar Returns: Constraints: Semantics: HOST-CASE-SENSITIVE false cannot Evaluators may approximate and test equality of two numeric values with an accuracy of the magnitude of the given values scaled by the number of available bits in the mantissa, ignoring some least significant bits and thus providing compensation for not exactly representable values. The result of “1=TRUE()” is FALSE for evaluators that implement a distinct Logical type and TRUE if they don't. See also 6.4.8 6.4.8 Summary: Syntax: Any Any Returns: Constraints: Semantics: HOST-CASE-SENSITIVE false If either Left and Right are an Error, the result is an Error; this operator cannot be used to determine if two Errors are the same kind of Error. Note: ≠” See also 6.4.7 6.4.9 Summary: Syntax: Scalar op Scalar where op Returns: Constraints: Semantics: HOST-CASE-SENSITIVE false These functions return one of True, False, or an Error if Left and Right have different types, but it is implementation-defined which of these results will be returned when the types differ. See also 6.4.8 6.4.7 6.4.10 Summary: Syntax: Text Left Text Right Returns: Constraints: Semantics: Note: See also 6.4.2 6.20.6 6.4.11 Summary: Syntax: Reference Reference Returns: Constraints: Semantics: Note: Left and Right may also be defined names or the result of a function returning a reference, such as INDIRECT. See also 6.4.13 6.4.12 6.14.7 6.4.12 Summary: Syntax: Reference Reference Returns: Constraints: Semantics: If Left or Right are not of type Reference or ReferenceList, an Error shall be returned. If Left and/or Right are reference lists (result of infix operator reference concatenation), the intersection is computed for each combination of Left and Right, producing a reference list of intersections. Note 1 : If for a resulting intersection there are no cells in common, the element is ignored and omitted from the result list. If for all intersections there are no cells in common and the result list is empty , Note 2 : See also 6.4.13 6.4.13 Summary: Syntax: Reference Reference Returns: Constraints: Semantics: not not Note: If Left or Right are not of type Reference or ReferenceList, an Error shall be returned. Test Cases: See also 6.4.11 6.4.12 6.4.14 Summary: Syntax: Number Left Returns: Constraints: Semantics: See also 6.4.16 6.4.15 6.4.15 Summary: Syntax: Any Right Returns: Constraints: Semantics: not no See also 6.4.2 6.4.16 Summary: Syntax: Number Right Returns: Constraints: Semantics: See also 6.4.3 6.5 6.5.1 Matrix functions operate on matrices. A matrix with M N The dimension subscript may be omitted, if the context allows it, i.e. . Matrices are represented by upper case letters. The elements of a matrix are denoted by the corresponding lower case letter and subscripts, which defines the row and column number. . 6.5.2 Summary: Syntax: ForceArray Array Returns: Constraints: Semantics: where P is the sign of the permutation, which is +1 for an even amount of permutations (i.e., permutations that can be written as the composition of an even number of transpositions), -1 otherwise. A transposition on 1, ..., n is a permutation of 1, ..., n with exactly (n-2) numbers fixed. See also 6.5.3 6.5.3 Summary: Syntax: ForceArray Array Returns: Constraints: Semantics: A A results in the unity matrix of the same dimension as A Invertible matrices have a non-zero determinant. If the matrix is not invertible, this function should See also MDETERM 6.5.2 6.5.4 Summary: A B Syntax: ForceArray Array ForceArray Array Returns: Constraints: Semantics: of the resulting matrix , are defined by: 6.5.5 Summary: N Syntax: Integer Returns: Constraints: Semantics: N 6.5.6 Summary: Syntax: Array Returns: Constraints: Semantics: A T A 6.6 6.6.1 Evaluators shall support unsigned integer values and results of at least 48 bits (values from 0 to 2^48-1 inclusive). Operations that receive or result in a value that cannot be represented within 48 bits are implementation-defined. 6.6.2 Summary: Syntax: Integer Integer Returns: Constraints: ≥ 0, Y ≥ 0 Semantics: See also 6.6.4 6.6.6 6.15.2 6.6.3 Summary: Syntax: Integer Integer Returns: Constraints: ≥ 0 Semantics: ● ● ● See also 6.6.2 6.6.6 6.6.5 6.6.4 Summary: Syntax: Integer Integer Returns: Constraints: ≥ 0, Y ≥ 0 Semantics: See also 6.6.2 6.6.6 6.15.2 6.6.5 Summary: Syntax: Integer Integer Returns: Constraints: ≥ 0 Semantics: ● ● ● See also 6.6.2 6.6.6 6.6.3 6.6.6 Summary: Syntax: Integer Integer Returns: Constraints: ≥ 0, Y ≥ 0 Semantics: See also 6.6.2 6.6.4 6.15.8 6.7 6.7.1 Byte-position text functions are like their equivalent ordinary text functions, but manipulate byte positions rather than a count of the number of characters. Byte positions are integers that may depend on the specific text representation used by the implementation. Byte positions are by definition implementation-dependent and reliance upon them reduces interoperability. T he pseudotypes ByteLength and BytePosition are Integers, but their exact meanings and values are not further defined by this specification. 6.7.2 Summary: Syntax: Text Text BytePosition Returns: Semantics: See also FIND 6.20.9 , LEFTB 6.7.3 , RIGHTB 6.7.7 6.7.3 Summary: Syntax: Text ByteLength Returns: Semantics: As LEFT, but using a byte position. See also 6.20.12 6.20.19 6.7.7 6.7.4 Summary: Syntax: Text Returns: Constraints: Semantics: See also 6.20.13 6.7.3 6.7.7 6.7.5 Summary: Syntax: Text BytePosition ByteLength Returns: Constraints: Semantics: See also 6.20.15 6.7.3 6.7.7 6.7.6 6.7.6 Summary: Syntax: Text BytePosition ByteLength Text Returns: Semantics: See also 6.20.17 6.7.3 6.7.7 6.7.5 6.20.21 6.7.7 Summary: Syntax: Text ByteLength Returns: Semantics: See also 6.20.19 6.7.3 6.7.8 Summary: Syntax: Text Text BytePosition Returns: Semantics: See also 6.20.20 6.20.8 6.20.9 6.7.2 6.8 6.8.1 Functions for complex numbers. 6.8.2 Summary: Syntax: Number Number Text Returns: Constraints: Semantics: Suffix either Upper case “I” or “J” are not accepted for the suffix parameter. 6.8.3 Summary: of a complex number Syntax: IM Complex X Returns: Constraints: Semantics: X a+bi or X=a+bj, the absolute value = ; if N=r(cos φ + isin φ), the absolute value = r. See also IMARGUMENT 6.8.5 6.8.4 Summary: imaginary coefficient of a complex number Syntax: IMAGINARY Complex X Returns: Constraints: Semantics: X a+bi or X=a+bj, then the imaginary coefficient is b. See also IMREAL 6.8.19 6.8.5 Summary: complex argument of a complex number Syntax: IMARGUMENT Complex X Returns: Constraints: Semantics: X a+bi=r(cos φ + isin φ) , a or b is not 0 and - π < φ ≤ π, then the complex argument is φ . φ is expressed by radians. If X=0 , then IMARGUMENT(X) is implementation-defined and either 0 or an error. See also IMABS 6.8.3 6.8.6 Summary: complex conjugate of a complex number Syntax: IMCONJUGATE Complex X Returns: Complex Constraints: Semantics: X a+bi, then the complex conjugate is a-bi . 6.8.7 Summary: cosine of a complex number Syntax: IMCOS Complex X Returns: Complex Constraints: Semantics: X a+bi, then cos(X)=cos(a)cosh(b)-sin(a)sinh(b)i. See also IMSIN 6.8.20 6.8.8 Summary: Syntax: Returns: Constraints: Semantics: 6.8.9 Summary: of a complex number Syntax: IMCOT Complex Returns: Constraints: Semantics: IMDIV(IMCOS(N);IMSIN(N)) See also IMTAN 6.8.20 6.8.10 Summary: of a complex number Syntax: IMCSC Complex Returns: Constraints: Semantics: IMDIV(1;IMSIN(N)) See also IMSIN 6.8.20 6.8.11 Summary: Syntax: Complex Returns: Constraints: Semantics: IMDIV(1;IMSINH(N)) See also IMSINH, CSCH 6.8.12 Summary: Syntax: IMDIV( Complex X ; Complex Y ) Returns: Complex Constraints: Semantics: X=a+bi and Y=c+di, return the quotient Division by zero returns an Error. See also IMDIV 6.8.12 6.8.13 Summary: Returns the exponent of e and a complex number Syntax: IMEXP( Complex X ) Returns: Complex Constraints: Semantics: If X=a+bi, the result is . See also IMLN 6.8.14 6.8.14 Summary: Returns the natural logarithm of a complex number Syntax: IMLN( Complex X ) Returns: Complex Constraints: ≠ 0 Semantics: . See also IMEXP 6.8.13 6.8.15 6.8.15 Summary: Returns the common logarithm of a complex number Syntax: IMLOG10( Complex X ) Returns: Complex Constraints: ≠ 0 Semantics: IMLOG10(X) is IMDIV(IMLN(X);COMPLEX(LN(10);0)) . See also IMLN 6.8.14 6.8.17 6.8.16 Summary: Returns the binary logarithm of a complex number Syntax: IMLOG2( Complex X ) Returns: Complex Constraints: ≠ 0 Semantics: IMLOG2(X) is IMDIV(IMLN(X);COMPLEX(LN(2);0)) . See also IMLN 6.8.14 6.8.17 6.8.17 Summary: Returns the complex number X raised to the Yth power. Syntax: IMPOWER( Complex X ; Complex Y ) or IMPOWER( Complex X ; Number Y) Returns: Complex Constraints: ≠ 0 Semantics: IMPOWER(X;Y) is IMEXP(IMPRODUCT(Y; IMLN(X))) An ev aluator implementing this function shall permit any Number Y but may also allow any Complex Y. See also IMEXP 6.8.13 6.8.18 Summary: Returns the product of complex numbers Syntax: IMPRODUCT( { ComplexSequence N }+ ) Returns: Complex Constraints: Semantics: Multiply the complex numbers together. Given two complex numbers X=a+bi and Y=c+di, the product X*Y = (ac-bd) + (ad+bc)i See also IMDIV 6.8.12 6.8.19 Summary: eal coefficient of a complex number Syntax: IMREAL Complex Returns: Constraints: Semantics: a+bi or N=a+bj, then the real coefficient is a. See also IMAGINARY 6.8.4 6.8.20 Summary: sine of a complex number Syntax: IMSIN Complex Returns: Complex Constraints: Semantics: a+bi, then sin(N)=sin(a)cosh(b)+cos(a)sinh(b)i. See also IMCOS 6.8.7 6.8.21 Summary : Syntax : Returns : Constraints: Semantics: 6.8.22 Summary: of a complex number Syntax: IMSEC Complex Returns: Constraints: Semantics: IMDIV(1;IMCOS(N)) See also IMCOS 6.8.7 6.8.23 Summary: Syntax: Complex Returns: Constraints: Semantics: IMDIV(1;IMCOSH(N)) See also IMCOSH, SECH 6.8.24 Summary: square root of a complex number Syntax: IMSQRT Complex Returns: Complex Constraints: Semantics: N= 0+0i, then IMSQRT(N)=0. Otherwise IMSQRT(N) is SQRT(IMABS(N)) * sin(IMARGUMENT(N)/2) + SQRT(IMABS(N)) * cos(IMARGUMENT(N)/2)i. See also IMPOWER 6.8.17 6.8.25 Summary: Syntax: Complex Complex Returns: Constraints: Semantics: See also IMSUM 6.8.26 6.8.26 Summary: complex n Syntax: IM ComplexSequence N Returns: Constraints: Semantics: It is implementation-defined what happens if this function is given zero parameters; an evaluator may either produce an Error or the Number 0 if it is given zero parameters. See also IMSUB 6.8.25 6.8.27 Summary: of a complex number Syntax: IMTAN Complex Returns: Constraints: Semantics: IMDIV(IMSIN(N);IMCOS(N)) See also IMSIN, IMCOS, IMCOT 6.8.25 6.9 6.9.1 Database functions use the 4.11.9 4.11.10 4.11.11 The results of database functions may change when the values of the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS or HOST-SEARCH-CRITERIA-MUST-APPLY-TO-WHOLE-CELL properties change. 3.4 6.9.2 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.3 6.13.6 6.9.11 6.9.3 6.16.61 6.9.3 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.13.6 6.13.7 6.9.4 6.9.11 6.9.4 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.13.6 6.13.7 6.9.3 6.9.11 6.9.5 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.9.6 6.9.7 6.9.11 6.9.6 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.45 6.9.7 6.18.48 6.9.7 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.48 6.9.6 6.18.45 6.9.8 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.16.61 6.9.11 6.9.9 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.72 6.9.10 6.9.10 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.74 6.9.9 6.9.11 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.16.61 6.9.7 6.9.6 6.9.12 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.82 6.9.13 6.9.13 Summary: Syntax: Database Field Criteria Returns: Constraints: Semantics: See also 6.18.84 6.9.12 6.10 6.10.1 6.10.2 Summary: Syntax: Integer Integer Integer Returns: Constraints: Semantics: Year Month Day Month Day Month See also 6.10.17 6.10.4 6.10.3 Summary: Syntax: DateParam DateParam Text Returns: Constraints: Semantics: The Format is a code from the following table, entered as text, that specifies the format you want the result of DATEDIF to have. Table format Returns the number of y Years m Months. If there is not a complete month between the dates, 0 will be returned. d Days md Days, ignoring months and years ym Months, ignoring years yd Days, ignoring years See also 6.10.7 6.10.6 6.4.3 6.10.4 Summary: Syntax: Text Returns: Constraints: Semantics: D shall D evaluator may See also 6.10.17 6.10.2 6.10.18 6.13.34 6.10.5 Summary: Syntax: DateParam Returns: Constraints: Semantics: See also 6.10.13 6.10.23 6.10.6 Summary: Syntax: DateParam DateParam Returns: Constraints: Semantics: See also 6.10.3 6.10.7 6.10.13 6.10.23 6.4.3 6.10.7 Summary: Syntax: DateParam DateParam Integer Returns: Constraints: Semantics: If method is 0, it uses the National Association of Securities Dealers (NASD) method, also known as the U.S. method. If the method is 1, the European method is used. The US/NASD Method (30US/360): 1. 2. 3. StartDate 4. EndDate StartDate EndDate Note 1 : 4.11.7 The European Method (30E/360): 1. 2. 3. 4. Note 2 : Note 3 : 4.11.7 For both methods the value then returned is See also 6.10.6 6.10.3 6.10.8 Summary: Syntax: DateParam Number Returns: Constraints: Semantics: If after adding the given number of months, the day of month in the new month is larger than the number of days in the given month, the day of month is adjusted to the last day of the new month. Then the serial number of that date is returned. See also 6.10.6 6.10.3 6.10.9 6.10.9 Summary: Syntax: DateParam Integer Returns: Constraints: Semantics: StartDate MonthAdd MonthAdd MonthAdd StartDate See also 6.10.8 6.10.10 Summary: Syntax: TimeParam Returns: Constraints: Semantics: DayFraction=(T-INT(T)) Hour=INT(DayFraction*24) See also 6.10.13 6.10.5 6.10.12 6.10.16 6.10.11 Summary: Syntax: DateParam Returns: Constraints: Semantics: [ISO8601] See also 6.10.5 6.10.13 6.10.23 6.10.20 6.10.21 6.10.12 Summary: Syntax: TimeParam Returns: Constraints: Semantics: DayFraction=(T-INT(T)) HourFraction=(DayFraction*24-INT(DayFraction*24)) Minute=INT(HourFraction*60) See also 6.10.13 6.10.5 6.10.10 6.10.16 6.10.13 Summary: Syntax: DateParam Returns: Constraints: Semantics: See also 6.10.23 6.10.5 6.10.14 Summary: Syntax: DateParam DateParam DateSequence LogicalSequence Returns: Constraints: Semantics: Work days are defined as non-weekend, non-holiday days. By default, weekends are Saturdays and Sundays and there are no holidays. The optional 3 rd Holidays Workdays Holidays The optional 4th parameter Workdays can be used to specify a different definition for the standard work week by passing in a list of numbers which define which days of the week are workdays (indicated by 0) or not (indicated by non-zero) in order Sunday, Monday,...,Saturday. So, the default definition of the work week excludes Saturday and Sunday and is: {1;0;0;0;0;0;1}. To define the work week as excluding Friday and Saturday, the third parameter would be: {0;0;0;0;0;1;1}. 6.10.15 Summary: Syntax: Returns: Constraints: Semantics: 6.10.19 See also 6.10.2 6.10.17 6.10.19 6.10.16 Summary: Syntax: TimeParam Returns: Constraints: Semantics: integer rounds DayFraction=(T-INT(T)) HourFraction=(DayFraction*24-INT(DayFraction*24)) MinuteFraction=(HourFraction*60-INT(HourFraction*60)) Second=ROUND(MinuteFraction*60) See also 6.10.13 6.10.5 6.10.10 6.10.12 6.10.17 Summary: Syntax: Number Number Number Returns: Constraints: may first perform INT() on the hour, minute, and second before doing the calculation. Semantics: ((hours*60*60)+(minutes*60)+seconds)/(24*60*60) Time is a subtype of number, where a time value of 1 = 1 day = 24 hours. Hours, minutes, and seconds may be any number (they shall not be limited to the ranges 0..24, 0..59, or 0..60 respectively). See also 6.10.2 6.10.18 Summary: Syntax: Text Returns: Constraints: Semantics: shall T evaluator may See also 6.10.17 6.10.2 6.10.4 6.13.34 6.10.19 Summary: Syntax: Returns: Constraints: Semantics: 6.10.15 See also 6.10.17 6.10.15 6.10.20 Summary: Syntax: DateParam Integer Returns: Constraints: Semantics: 1. 2. 3. Table Day of Week Type=1 Result Type=2 Result Type=3 Result Sunday 1 7 6 Monday 2 1 0 Tuesday 3 2 1 Wednesday 4 3 2 Thursday 5 4 3 Friday 6 5 4 Saturday 7 6 5 See also 6.10.5 6.10.13 6.10.23 6.10.21 Summary: Syntax: DateParam Number Returns: Constraints: Semantics: Returns the number of the week in the year for the given date. For Mode={1, 2, 11, 12, ..., 17} the week containing January 1 is the first week of the year, and is numbered week 1. The week starts on {Sunday, Monday, Monday, Tuesday, ..., Sunday}. Mode 21 or 150 are both [ISO8601] See also 6.10.5 6.10.13 6.10.23 6.10.20 6.10.11 6.10.22 Summary: Syntax: DateParam Number Offset DateSequence LogicalSequence Returns: Constraints: Semantics: Date Offset Offset Date Offset Date Offset Date Work days are defined as non-weekend, non-holiday days. By default, weekends are Saturdays and Sundays and there are no holidays. The optional 3 rd Holidays Workdays Holidays The optional 4th parameter Workdays can be used to specify a different definition for the standard work week by passing in a list of numbers which define which days of the week are workdays (indicated by 0) or not (indicated by non-zero) in order Sunday, Monday,...,Saturday. If all seven numbers in Workdays are non-zero and Offset is also non-zero, WORKDAY returns an error. Note: 6.10.23 Summary: evaluator Syntax: DateParam Returns: Constraints: Semantics: If a year is given as a two-digit number, as in "05-21-15", then the year returned is either 1915 or 2015, depending upon the break point in the calculation context. In an OpenDocument document, this break point is determined by HOST-NULL-YEAR Evaluators shall should See also 6.10.13 6.10.5 6.13.34 6.10.24 Summary: Syntax: DateParam DateParam Basis Basis = 0 ] Returns: Constraints: Semantics: Basis indicates the day-count convention to use in the calculation. 4.11.7 See also 6.10.3 6.11 6.11.1 OpenFormula defines two functions, DDE and HYPERLINK, for accessing external data. 6.11.2 Summary: Syntax: Text Text topic ; Text item [ ; Integer Mode Returns: Constraints: Semantics: server topic item Evaluators may choose to not perform this function on every recalculation, but instead cache an answer and require a separate action to re-perform these requests. Evaluators shall perform this request on initial load when their security policies permit it. Mode is an optional parameter that determines how the results are returned: Table Mode Effect 0 or missing Data converted to number using VALUE in the number style's locale of the default table cell style 1 Data converted to number using VALUE in the English-US (en_US) locale 2 Data retrieved as text (not converted to number) In an OpenDocument spreadsheet document the default table cell style is specified with table:default-cell-style-name number:number-style style:data-style-name The DDE function is non-portable because it depends on availability of external programs (server parameter) and their interpretation of the topic and item parameters. 6.11.3 Summary: Syntax: Text Text|Number Returns: Constraints: Semantics: In addition, hosting environments may interpret expressions containing HYPERLINK function calls as calling for an implementation-dependent creation of a hypertext link based on the expression containing the HYPERLINK function calls. 6.12 6.12.1 The financial functions are defined for use in financial calculations. An annuity is a recurring series of payments. A "simple annuity" is one where equal payments are made at equal intervals, and the compounding of interest occurs at those same intervals. The time between payments is called the "payment interval". Where payments are made at the end of the payment interval, it is calle d Financial functions defined in this standard use a cash flow sign convention where outgoing cash flows are negative and incoming cash flows are positive. 6.12.2 Summary: Syntax: DateParam DateParam DateParam Number Number Integer Basis basis Logical Returns: Constraints: issue < first < settlement ; coupon > 0; par > 0 frequency Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly 12 Monthly Semantics: If calc_method is TRUE (the default) then ACCRINT returns the sum of the accrued interest in each coupon period from issue date until settlement date. If calc_method is FALSE then ACCRINT returns the sum of the accrued interest in each coupon period from first date until settlement date. For each coupon period, the interest is par*coupon*YEARFRAC(start-of-period;end-of-period; basis) issue The security's issue or dated date. first The security's first interest date. settlement The security's settlement date. coupon The security's annual coupon rate. par The security's par value, that is, the principal to be paid at frequency basis 4.11.7 calc_method See also ACCRINTM 6.12.3 6.12.3 Summary: Syntax: DateParam DateParam Number Number Basis Returns: Constraints: coupon par Semantics: issue The security's issue or dated date. settlement The security's maturity date. coupon The security's annual coupon rate. par The security's par value, that is, the principal to be paid at basis 4.11.7 See also ACCRINT 6.12.2 6.12.4 Summary: Syntax: Number DateParam DateParam Number Integer Number Basis Returns: Constraints: cost purchaseDate firstPeriodEndDate salvage period rate Semantics: Calculates the amortization value for the French accounting system using linear depreciation. cost The value of the asset at the date of aquisition. The date of aquisition. The end date of the first depreciation period. salvage The value of the asset at the end of the depreciation life time. period W hich period the depreciation should be calculated for . rate The rate of depreciation. Basis indicates the day-count convention to use in the calculation. 4.11.7 When period = 0: For full periods, where period > 0, the depreciation is cost * rate For the last period, possibly a partial period, the depreciation = cost-salvage-accumulated-depreciation, where accumulated-depreciation is the sum of the depreciation in period 0 plus any full period depreciations. When period > depreciated life of the asset, i.e., when period > (cost-salvage)/(cost*rate) then the depreciation is 0. Note: See also 6.12.13 6.12.14 6.10.24 6.12.5 Summary: Syntax: DateParam DateParam Integer Basis Returns: Constraints: settlement maturity frequency Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly Semantics: settlement The settlement date. 4.11.7 See also COUPDAYS 6.12.6 , COUPDAYSNC 6.12.7 , COUPNCD 6.12.7 , COUPNUM 6.12.9 , COUPPCD 6.12.10 6.12.6 Summary: Syntax: DateParam DateParam Integer Basis Returns: Constraints: settlement maturity frequency Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly Semantics: settlement The settlement date. 4.11.7 See also COUPDAYBS 6.12.5 , COUPDAYSNC 6.12.7 , COUPNCD 6.12.7 , COUPNUM 6.12.9 , COUPPCD 6.12.10 6.12.7 Summary: Syntax: DateParam DateParam Integer Basis Returns: Constraints: settlement maturity frequency Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly Semantics: settlement The settlement date. 4.11.7 See also COUPDAYBS 6.12.5 , COUPDAYS 6.12.6 , COUPNCD 6.12.7 , COUPNUM 6.12.9 , COUPPCD 6.12.10 6.12.8 Summary: Syntax: DateParam DateParam Integer Basis Returns: Constraints: settlement maturity frequency frequency Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly Semantics: Calculates the next coupon date after the settlement date based on the maturity (expiration) date of the asset, the frequency of coupon payments and the day-count basis . Basis indicates the day-count convention to use in the calculation. 4.11.7 6.12.9 Summary: settlement and maturity dat Syntax: DateParam DateParam Integer Basis Returns: Constraints: Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly Semantics: Calculates the number of coupons in the interval between the settlement and the maturity (expiration) date of the asset, the frequency of coupon payments and the day-count basis . Basis indicates the day-count convention to use in the calculation. 4.11.7 See also 6.12.5 6.12.6 6.12.7 6.12.7 6.12.10 6.12.10 Summary: settlement Syntax: DateParam DateParam Integer Basis Returns: Constraints: settlement maturity frequency frequency Table frequency Frequency of coupon payments 1 Annual 2 Semiannual 4 Quarterly Semantics: Calculates the next coupon date prior to the settlement date based on the maturity (expiration) date of the asset, the frequency of coupon payments and the day-count basis . Basis indicates the day-count convention to use in the calculation. 4.11.7 See also 6.12.5 6.12.6 6.12.7 6.12.7 COUPNUM 6.12.9 6.12.11 Summary: Syntax: Number Number Number Integer Integer Integer Returns: Constraints: rate value > 0; 1 <= start <= end <= periods type Table type Maturity date 0 due at the end 1 due at the beginning Semantics: Calculates the cumulative interest payment. rate periods value start end type See also 6.12.23 6.12.12 6.12.12 Summary: Calculates a cumulative principal payment. Syntax: Number Number Number Integer Integer Integer Returns: Constraints: type Table type Maturity date 0 due at the end 1 due at the beginning Semantics: Calculates the cumulative principal payment. rate periods value start end type See also PPMT 6.12.37 , CUMIPMT 6.12.11 6.12.13 Summary: Compute the depreciation allowance of an asset. Syntax: Number Number Integer Number Number Returns: Constraints: Semantics: Calculate the depreciation allowance of an asset with an initial value of cost , an expected useful lifeTime , and a final salvage value at a specified period of time, using the fixed-declining balance method. ● cost ● salvage lifeTime ● lifeTime ● period t he time period for which you want to find the depreciation allowance, in the same units as lifeTime. ● month lifeTime period The rate is calculated as follows: and is rounded to 3 decimals. For the first period the residual value is For all periods, where period lifeTime If month period lifeTime The depreciation allowance for the first period is For all other periods the allowance is calculated by For all periods, where period lifeTime month See also 6.12.14 6.12.45 6.12.14 Summary: Syntax: Number Number Number Number Number Returns: Constraints: Semantics: ● cost ● salvage ● lifeTime ● period ● declinationFactor To calculate depreciation, DDB uses a fixed rate. When declinationFactor The depreciation each period is calculated as depreciation_of_period = MIN( book_value_at_start_of_ period * rate ; book_value_at_start_of_ period - salvage ) Thus the asset depreciates at rate until the book value is salvage value . To allow also non-integer period values this algorithm may be used: If period is an Integer number, the relation between DDB and VDB is: cost salvage lifeTime period declinationFactor cost salvage lifeTime period period declinationFactor See also 6.12.45 6.12.50 6.12.15 Summary: Syntax: Number Number Basis Returns: Constraints: settlement maturity Semantics: Calculates the discount rate of a security. settlement The settlement date of the security. 4.11.7 See also 6.10.24 6.12.16 Summary: Syntax: Number Integer Returns: Constraints: denominator Semantics: Converts a fractional dollar representation into a decimal representation. fractional Decimal fraction. Denominator of the fraction. See also DOLLARFR 6.12.17 6.17.8 6.12.17 Summary: Syntax: Number Integer Returns: Constraints: denominator Semantics: Converts a decimal dollar representation into a fractional representation. decimal Decimal number. Denominator of the fraction. See also 6.12.16 TRUNC 6.17.8 6.12.18 Summary: Syntax: Date Date Number Number Number Basis Returns: Number Constraints: Semantics: Settlement Maturity Coupon Yield Frequency Basis 4.11.7 See also 6.12.26 6.12.19 Summary: Syntax: Number Integer Returns: Constraints: Semantics: Nominal interest refers to the amount of interest due at the end of a calculation period. Effective interest increases with the number of payments made. In other words, interest is often paid in installments (for example, monthly or quarterly) before the end of the calculation period. rate payments See also NOMINAL 6.12.28 6.12.20 Summary: Syntax: Number Number Number Number Number Returns: Constraints: Semantics: ● ● ● ● ● See PV 6.12.41 See also 6.12.41 6.12.29 6.12.36 6.12.42 6.12.21 Summary: Syntax: Number NumberSequence Returns: Constraints: Semantics: See also 6.12.41 6.12.29 6.12.36 6.12.42 6.12.22 Summary: Syntax: Date Date Number Number Basis Returns: Constraints: Semantics: Settlement: the date of purchase of the security.Maturity: the date on which the security is sold. Investment: the purchase price. Redemption: the selling price. Basis indicates the day-count convention to use in the calculation. 4.11.7 The return value for this function is: See also 6.12.43 6.10.24 6.12.23 Summary: Syntax: Number Number Number Number Number Number Returns: Constraints: Semantics: Rate: The periodic interest rate. Period: The period for which the interest payment is computed. Nper: The total number of periods for which the payments are made PV: The present value (e.g. The initial loan amount). FV: The future value (optional) at the end of the periods. Zero if omitted. Type: the due date for the payments (optional). Zero if omitted. If type is 1, then payments are made at the beginning of each period. If type is 0, then payments are made at the end of each period. See also 6.12.37 6.12.36 6.12.24 Summary: Syntax: NumberSequence Number Returns: Constraints: Semantics: If provided, Guess is an estimate of the interest rate to start the iterative computation. If omitted, the value 0.1 (10%) is assumed. The result of IRR is the rate at which the NPV() function will return zero with the given values. There is no closed form for IRR. Evaluators may return an approximate solution using an iterative method, in which case the Guess parameter may be used to initialize the iteration. If the evaluator is unable to converge on a solution given a particular Guess, it may return an Error. See also 6.12.30 6.12.42 6.12.25 Summary: Syntax: Number Number Number Nper ; Number Returns: Constraints: Semantics: ● ● ● ● See also 6.12.41 6.12.20 6.12.29 6.12.36 6.12.42 6.12.26 Summary: Syntax: Date Date Number Number Number Basis Returns: Number Constraints: Semantics: ● Settlement ● Maturity ● Coupon ● Yield ● Frequency ● Basis 4.11.7 The modified duration is computed as follows: See also 6.12.18 6.12.27 Summary: Syntax: Array Values Number Number ReinvestRate Returns: Percentage Constraints: Semantics: Computes the modified internal rate of return, which is: where N is the number of incomes and payments in Values (total). See also 6.12.24 6.12.28 Summary: annual nominal interest rate. Syntax: NOMINAL Number Effective Integer CompoundingPeriods Returns: Number Constraints: EffectiveRate >0 , CompoundingPeriods > 0 Semantics: annual nominal interest rate based on the effective rate and the number of compounding periods in one year. The parameters are: ● ● Suppose that P is the present value, m is the compounding periods per year, the future value after one year is The mapping between nominal rate and effective rate is See also 6.12.19 6.12.29 Summary: Syntax: Number Number Number Number Number Returns: Constraints: Semantics: ● ● ● ● ● If Rate If Rate Evaluators shall See also 6.12.20 6.12.42 6.12.36 6.12.41 6.12.30 Summary: Syntax: Number NumberSequenceList + Returns: Constraints: Semantics: shall If n is the number of values in th e See also 6.12.20 6.12.24 6.12.29 6.12.36 6.12.41 6.12.52 6.12.31 Summary: value of a security per 100 currency units of face value. The security has an irregular first interest date. Syntax: ODDFPRICE DateParam S DateParam M DateParam I DateParam First Number R Number Number R Number F Basis B Returns: Number Constraints: Rate, Yield, and Redemption should be greater than 0. Semantics: The parameters are ● ● ● ● ● ● ● ● semiannual ● 4.11.7 See also ODDLPRICE 6.12.33 , ODDFYIELD 6.12.32 6.12.32 Summary: ield of a security per 100 currency units of face value. The security has an irregular first interest date. Syntax: ODDFYIELD DateParam S DateParam M DateParam I DateParam First Number R Number Price Number R Number F Basis B Returns: Number Constraints: Rate, Price, and Redemption should be greater than 0. Maturity > First > Settlement > Issue. Semantics: The parameters are ● ● ● ● ● ● ● ● semiannual ● 4.11.7 See also ODDLYIELD 6.12.34 , ODDFPRICE 6.12.31 6.12.33 Summary: value of a security per 100 currency units of face value. The security has an irregular last interest date. Syntax: ODDLPRICE DateParam S DateParam M DateParam Last Number R Number A Number R Number F Basis B Returns: Number Constraints: Rate, AnnualYield, and Redemption should be greater than 0. The Maturity date should be greater than the Settlement date, and the Settlement should be greater than the last interest date. Semantics: The parameters are ● ● ● ● ● ● ● semiannual ● 4.11.7 See also ODDFPRICE 6.12.31 6.12.34 Summary: ield of a security which has an irregular last interest date. Syntax: ODDLYIELD DateParam S DateParam M DateParam Last Number R Number Price Number R Number F Basis B Returns: Number Constraints: Rate, Price, and Redemption should be greater than 0. Semantics: The parameters are ● ● ● ● ● ● ● semiannual ● 4.11.7 See also ODDLPRICE 6.12.33 , ODDFYIELD 6.12.32 6.12.35 Summary: Syntax: Number Number Number specified Returns: Constraints: rate currentValue specified Value Semantics: Calculates the number of periods for attaining a certain value specified , starting from and using the interest rate . ● rate ● currentValue ● specified Value See also DURATION 6.12.18 6.12.36 Summary: Syntax: Number Integer Number Number Number Returns: Constraints: Semantics: ● ● ● ● ● If Rate If Rate See also 6.12.20 6.12.29 6.12.41 6.12.42 6.12.37 Summary: alculate the payment for a given period on the principal for an investment at a given interest rate and constant payments. Syntax: PPMT Number Rate Integer Period ; Integer nPer ; Number Present [ ; Number Future = 0 [ ; Number Type = 0 ] ] Returns: Number Constraints: Rate and Present should be greater than 0. 0<Period <nPer. Semantics: The parameters are ● ● ● ● ● specified ● See also 6.12.36 6.12.38 Summary: Calculates a quoted price for an interest paying security, per 100 currency units of face value. Syntax: PRICE DateParam S DateParam M Number R Number A Number R Number F Basis B Returns: Number Constraints: Rate, AnnualYield, and Redemption should be greater than 0; Frequency = 1, 2 or 4. Semantics: If A is the number of days from the Settlement date to next coupon date, B is the number of days of the coupon period that the Settlement is in, C is the number of coupons between Settlement date and Redemption date, D is the number of days from beginning of coupon period to Settlement date, then PRICE is calculated as The parameters are ● ● ● ● ● ● semiannual ● 4.11.7 See also 6.12.39 6.12.40 6.12.39 Summary: Calculate the price of a security with a discount per 100 currency units of face value. Syntax: PRICEDISC DateParam S DateParam M Number Discount Number R Basis B Returns: Number Constraints: Discount and Redemption should be greater than 0. Semantics: The parameters are ● ● ● ● ● 4.11.7 See also 6.12.38 6.12.40 6.12.54 6.12.40 Summary: Calculate the price per 100 currency units of face value of the security that pays interest on the maturity date. Syntax: PRICEMAT DateParam S DateParam M DateParam Issue ; Number Rate Number AnnualYield [ ; Basis B Returns: Number Constraints: Semantics: The parameters are ● ● ● ● ● ● 4.11.7 If both, Rate AnnualYield See also 6.12.39 6.12.40 6.12.41 Summary: Syntax: Number Number Number Number Number Returns: Constraints: Semantics: ● ● ● ● ● If Rate If Rate See also 6.12.20 6.12.29 6.12.36 6.12.42 6.12.42 Summary: Syntax: Number Number Number Number Number Number Returns: Constraints: Semantics: ● ● ● ● ● ● RATE solves this equation: See also 6.12.20 6.12.29 6.12.36 6.12.41 6.12.43 Summary: Calculates the amount received at maturity for a zero coupon bond. Syntax: RECEIVED DateParam S DateParam M Number Investment Number Discount [ Basis B Returns: Number Constraints: Investment and Discount should be greater than 0. Semantics: The parameters are ● ● ● ● ● 4.11.7 The return value is: See also 6.10.24 6.12.44 Summary: Syntax: Number Number Number Returns: Constraints: Semantics: N Pv Fv See also 6.12.20 6.12.29 6.12.36 6.12.41 6.12.42 6.12.45 Summary: Syntax: Number Number Number Returns: Constraints: Semantics: ● ● ● A For alternative methods to compute depreciation, see DDB 6.12.14 See also 6.12.14 6.12.46 Summary: Syntax: Number Number Number Number Returns: Constraints: Semantics: e ● ● ● A ● specified For other methods of computing depreciation, see DDB 6.12.14 See also 6.12.45 6.12.14 6.12.47 Summary: Compute the bond-equivalent yield for a treasury bill. Syntax: TBILLEQ( DateParam Settlement ; DateParam Maturity ; Number Discount ) Returns: Number Constraints: The maturity date should be less than one year beyond settlement date. Discount is any positive value. Semantics: ● ● ● TBILLEQ is calculated as where DSM 4.11.7 See also 6.12.48 6.12.49 6.12.48 Summary: Compute the price per 100 face value for a treasury bill. Syntax: TBILLPRICE( DateParam Settlement ; DateParam Maturity ; Number Discount ) Returns: Number Constraints: The maturity date should be less than one year beyond settlement. Discount is any positive value. Semantics: ● ● ● See also 6.12.47 6.12.49 6.12.49 Summary: Compute the yield for a treasury bill. Syntax: TBILLYIELD( DateParam Settlement ; DateParam Maturity ; Number Price ) Returns: Number Constraints: The maturity date should be less than one year beyond settlement. Price is any positive value. Semantics: ● ● ● See also 6.12.47 6.12.48 6.12.50 Summary: Syntax: Number Number Number Number Number Number Logical Returns: Constraints: Semantics: cost cost salvage salvage salvage life Time life Time startPeriod start-Period lifeTime endPeriod end-Period startPeriod startPeriod endPeriod VDB allows for the use of an initialPeriod option to calculate depreciation for the period the asset is placed in service. VDB uses the fractional part of startPeriod endPeriod startPeriod endPeriod startPeriod depreciationFactor depreciation-factor noSwitch If noS witch witch See also 6.12.14 6.12.45 6.12.51 Summary: non-periodic . Syntax: X NumberSequence DateSequence Dates Number Returns: Constraints: Semantics: which is not necessarily periodic ● ● The first date indicates the start of the cash flows. The range of Values and Dates shal l be the same size. ● Guess: See also 6.12.24 6.12.52 Summary: . Syntax: XNPV Number Dates Returns: Constraints: Number of elements in Values equals number of elements in Dates. All elements of Values are of type Number. All elements of Dates are of type Number. All elements of Dates >= Dates[1] Semantics: which is not necessarily periodic ● ● ● The first date indicates the start of the cash flows. If the dimensions of the Values and Dates arrays differ, evaluators shall match value and date pairs row-wise starting from top left. With N being the number of elements in Values and Dates each, the formula is : See also 6.12.30 6.12.53 Summary: Calculate the yield of a bond. Syntax: DateParam S DateParam M Number R Number Price Number R Number F Basis B Returns: Number Constraints: Rate, Price, and Redemption should be greater than 0. Semantics: The parameters are ● ● ● ● ● ● semiannual ● 4.11.7 See also 6.12.38 6.12.54 6.12.55 6.12.54 Summary: Calculate the yield of a discounted security per 100 currency units of face value. Syntax: DISC DateParam S DateParam M Number Price ; Number R Basis B Returns: Number Constraints: Price and Redemption should be greater than 0. Semantics: The parameters are ● ● ● ● ● 4.11.7 The return value is See also PRICEDISC 6.12.39 6.10.24 6.12.55 Summary: Calculate the yield of the security that pays interest on the maturity date. Syntax: DateParam S DateParam M DateParam Number R Number Price Basis B Returns: Number Constraints: Rate and Price should be greater than 0. Semantics: The parameters are ● ● ● ● ● ● 4.11.7 See also 6.12.38 6.12.53 6.12.54 6.13 6.13.1 Information functions provide information about a data value, the spreadsheet, or underlying environment, including special functions for converting between data types. 6.13.2 Summary: Syntax: ReferenceList Returns: Constraints: Semantics: See also 6.4.13 6.14.6 6.13.3 Summary: Syntax: CELL Text Info_Type [ ; Reference ] Returns: Information about position, formatting properties or content Constraints: Semantics: The parameters are ● Info_Type the text string which specifies the type of information. Please refer to the following table. Table Info_Type Comment COL Returns the column number of the cell. ROW Returns the row number of the cell. SHEET Returns the sheet number of the cell. ADDRESS Returns the absolute address of the cell. The sheet name is included if given in the reference. For an external reference a Source References 5.8 FILENAME Returns the file name of the file that contains the cell as an IRI. If the file is newly created and has not yet been saved, the file name is empty text “”. CONTENTS Returns the contents of the cell, without formatting properties. COLOR Returns 1 if color formatting is set for negative value in this cell; otherwise returns 0 FORMAT Returns a text which shows of the cell , (comma) F = number without thousands separator C = currency format S = exponential representation P = percentage To indicate t , is given right after the above characters D1 = MMM-D-YY, MM-D-YY and similar formats D2 = DD-MM D3 = MM-YY D4 = DD-MM-YYYY HH:MM:SS D5 = MM-DD D6 = HH:MM:SS AM/PM D7 = HH:MM AM/PM D8 = HH:MM:SS D9 = HH:MM G = All other formats - (Minus) at the end = negative numbers in the cell have setting () (brackets) at the end = this cell has the format settings with parentheses for positive or all values TYPE Returns the text value corresponding to the type of content in the cell: “b” : blank or empty cell content “l” : label or text cell content “v” : number value cell content WIDTH Returns the column width of the cell. The unit is the width of one zero (0) character in default font size. PROTECT Returns the protection status of the cell: 1 = cell is protected 0 = cell is unprotected PARENTHESES Returns 1 if the cell has the format settings with parentheses for positive or all values, otherwise returns 0 PREFIX Returns single character text strings corresponding to “'” (APOSTROPHE, U+0027) ment '"' (QUOTATION MARK, U+0022) = right align ment ^ (caret) alignment \ (back slash) filled alignment otherwise, returns empty string "". ● 6.13.4 Summary: Syntax: Reference Returns: Constraints: Semantics: See also 6.13.29 6.13.31 6.13.5 Summary: Syntax: Reference|Array Returns: Constraints: Semantics: See also 6.13.30 6.13.6 Summary: Syntax: NumberSequenceList + Returns: Constraints: Semantics: not should be an Error or 0. See also 6.13.7 6.13.7 Summary: Syntax: Any + Returns: Constraints: Semantics: not not should be an Error or 0. Any A may be a ReferenceList . See also 6.13.6 6.13.14 6.13.8 Summary: Syntax: ReferenceList Returns: Constraints: None Semantics: Evaluators shall may See also 6.13.6 6.13.7 6.13.9 6.13.14 6.13.9 Summary: Syntax: ReferenceList Criterion Returns: Constraints: Semantics: R C ( 4.11.8 ) The values returned may vary depending upon the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS or HOST-SEARCH-CRITERIA-MUST-APPLY-TO-WHOLE-CELL properties. 3.4 See also 6.13.6 6.13.7 6.13.8 6.13.10 6.16.62 6.4.7 6.4.8 6.4.9 6.13.10 Summary: Syntax: Reference Criterion Reference Criterion Returns: Constraints: Semantics: C1 R1 C2 R2 4.11.8 The values returned may vary depending upon th e 3.4 See also 6.18.6 6.13.6 6.13.7 6.13.8 6.13.9 6.16.62 6.16.63 6.4.7 6.4.8 6.4.9 6.13.11 Summary: Syntax: Error Returns: Constraints: Semantics: not non See also 6.13.27 6.13.12 Summary: Syntax: Reference Returns: Constraints: Semantics: See also 6.13.18 6.13.13 Summary: Syntax: Text Returns: Constraints: Semantics: Evaluators shall support at least the following categories: Table Category Meaning Type "directory" Current directory. This shall shall Text "memavail" Amount of memory “available”, in bytes. On many modern (virtual memory) systems this value is not really available, but a system should return 0 if it is known that there is no more memory available, and greater than 0 otherwise Number "memused" Amount of memory used, in bytes, by the data Number "numfile" Number of active worksheets in files Number "osversion" Operating system version Text "origin" The top leftmost visible cell's absolute reference prefixed with “$A:”. In locales where cells are ordered right-to-left, the top rightmost visible cell is used instead. Text "recalc" Current recalculation mode. If the locale is English, this is either "Automatic" or "Manual" (the exact text depends on the locale) Text "release" The version of the implementation. Text "system" The type of the operating system. Text "totmem" Total memory available in bytes, including the memory already used. Number Evaluators may support other categories. See also CELL 6.13.3 6.13.14 Summary: Syntax: Scalar Returns: Constraints: Semantics: not See also 6.13.22 6.13.25 6.13.15 Summary: Syntax: Scalar Returns: Constraints: Semantics: 6.13.16 not ISERR(X) is the same as: IF(ISNA(X),FALSE(),ISERROR(X)) See also 6.13.11 6.13.16 6.13.22 6.13.25 6.13.27 6.13.16 Summary: Syntax: Scalar Returns: Constraints: Semantics: 6.13.15 not See also 6.13.11 6.13.15 6.13.20 6.13.22 6.13.25 6.13.27 6.13.17 Summary: Syntax: Number Returns: Constraints: Semantics: evaluator may return either an Error or the result of converting the Logical value to a Number (per Conversion to Number 6.3.5 ). See also 6.13.23 6.13.18 Summary: Syntax: Reference Returns: Constraints: Semantics: See also 6.13.25 6.13.22 6.13.19 Summary: Syntax: Scalar Returns: Constraints: Semantics: X X See also 6.13.25 6.13.22 6.13.20 Summary: Syntax: Scalar Returns: Constraints: Semantics: not See also 6.13.11 6.13.16 6.13.15 6.13.22 6.13.25 6.13.27 6.13.21 Summary: not Syntax: Scalar Returns: Constraints: Semantics: 4.7 ISNONTEXT(X) is equivalent to NOT(ISTEXT(X)) See also 6.13.22 6.13.19 6.13.25 6.13.22 Summary: Syntax: Scalar Returns: Constraints: Semantics: Evaluators See also 6.13.25 6.13.19 6.13.23 Summary: Syntax: Number Returns: Constraints: Semantics: evaluator may return either an Error or the result of converting the Logical value to a Number (per Conversion to Number 6.3.5 ). See also 6.13.17 6.13.24 Summary: Syntax: Any Returns: Constraints: Semantics: not then examine the value being referenced. Some functions and operators return references, and thus ISREF will return True when given their results. X may be a ReferenceList , in which case ISREF returns True. See also 6.13.22 6.13.25 6.13.25 Summary: ISTEXT(X) is equivalent to NOT(ISNONTEXT(X)). Syntax: Scalar Returns: Constraints: Semantics: 4.7 See also 6.13.21 6.13.22 6.13.19 6.13.26 Summary: Syntax: Any Returns: Constraints: Semantics: See also 6.20.22 6.13.34 6.13.27 Summary: Syntax: Returns: Constraints: Semantics: See also 6.13.11 6.13.16 6.13.28 Summary: Syntax: Text Text Text Returns: Constraints: Semantics: X is transformed according to the following rules: 1) 2) 3) 5.14 4) 5) If the resulting string is a valid xsd:float, then return the number corresponding to that string, according to the definition provided in XML Schema, Part 2, Section 3.2.4. If percent signs were removed in step 5, divide the value of the returned number by 100 for each percent sign removed. If the string is not a valid xsd:float then return an error. See also 6.13.26 6.20.22 6.10.4 6.10.18 VALUE 6.13.34 6.13.29 Summary: Syntax: Reference Returns: Constraints: Semantics: See also 6.13.4 6.13.31 6.13.30 Summary: Syntax: Reference|Array Returns: Constraints: Semantics: See also 6.13.5 6.13.31 Summary: Syntax: Text|Reference Returns: Constraints: shall not 5.8 Semantics: Hidden sheets are not excluded from the sheet count. If no parameter is given, the result is the sheet number of the sheet containing the formula. If a Reference is given it is not dereferenced. If the reference encompasses more than one sheet, the result is the number of the first sheet in the range. If a reference does not contain a sheet reference, the result is the sheet number of the sheet containing the formula. If the function is not evaluated within a table cell, an error is returned. See also 6.13.4 6.13.29 6.13.32 6.13.32 Summary: Syntax: Reference Returns: Constraints: shall not 5.8 Semantics: If no parameter is given, the number of sheets in the document is returned. Hidden sheets are not excluded from the sheet count. See also 6.13.5 6.13.30 6.13.31 6.13.33 Summary: Syntax: Any value Returns: Constraints: Semantics: Table Value's Type TYPE Return Number 1 Text 2 Logical 4 Error 16 Array 64 If a Reference is provided, the reference is first dereferenced, and any formulas are evaluated. Note: See also 6.13.11 6.13.34 Summary: Syntax: Text Returns: Constraints: Semantics: If the supplied text X cannot be converted into a Number, an Error is returned. Regardless of the current locale, an evaluator shall shall [+-]? [0-9]+([eE][+-]?[0-9]+)?)%? VALUE shall accept text representations of numbers in the current locale. In evaluator shall shall [+-]?\$?([0-9]+(,[0-9]{3})*)?(\.[0-9]+)?(([eE][+-]?[0-9]+)|%)? E valuators shall [+-]? [0-9]+ \ [0-9]+/[1-9][0-9]? A leading minus sign is considered identifying a negative number for the entire value. There is a space between the integer and the fractional portion; values between 0 and 1 can be represented by using 0 for the integer part. Evaluators shall Evaluators should accept times with fractional seconds as well when expressed in the form HH:MM:SS.ssss... Evaluators shall [ISO8601] shall, when running in the en_US locale, accept the format MM/DD/YYYY . In addition, in locale en_US, evaluators shall support the following formats Table Format Example Comment MM/DD/YYYY 5/21/2006 LOCALE-DEPENDENT; Long year format with slashes. MM/DD/YY 5/21/06 LOCALE-DEPENDENT; Short year format with slashes MM-DD-YYYY 5-21-2006 LOCALE-DEPENDENT; Long year format with dashes (short year may mmm DD, YYYY Oct 29, 2006 LOCALE-DEPENDENT; Short alphabetic month day, year. Note: DD mmm YYYY 29 Oct 2006 LOCALE-DEPENDENT; Short alphabetic day month year mmmmm DD, YYYY October 29, 2006 LOCALE-DEPENDENT; Long alphabetic month day, year DD mmmmm YYYY 29 October 2006 LOCALE-DEPENDENT; Long alphabetic day month year Evaluators should Evaluators shall either the space character or the literal “T” character as the separator (the “T” is from Evaluators shall may shall be accepted. The result of accepting a datetime format shall be a representation of that specific time (without removing either the date or the time of day, unlike DATEVALUE or TIMEVALUE). Evaluators may accept other may be locale-dependent, as long as they do not conflict with the above See also 6.13.26 6.20.22 6.10.4 6.10.18 6.13.28 6.14 6.14.1 These functions look up information. Note that IF() can be considered a trivial lookup function, but it is listed as a logical function instead. 6.14.2 Summary: Syntax: Integer Integer Integer Logical Text Returns: Constraints: Row Column bs Semantics: not include the surrounding [...] of a reference. If a Sheet name is given, the sheet name in the text returned is followed by a “.” and the column/row reference if A1 is TRUE, or a “!” and the column/row reference if A1 is FALSE; otherwise no “.” respectively “!” is included. Abs The value of A1 Table Abs Meaning A1 = TRUE() A1 = FALSE() 1 fully absolute $A$1 R1C1 2 row absolute, column relative A$1 R1C[1] 3 row relative, column absolute $A1 R[1]C1 4 fully relative A1 R[1]C[1] Note that the INDIRECT function accepts this format. See also 6.14.7 6.14.3 Summary: Syntax: Integer Any + Returns: Constraints: Semantics: Index See also 6.15.4 6.14.4 Summary: Syntax: Text Reference Text Scalar * Note: second Table Reference Returns: Semantics: The data pilot table is selected by Table <table:data-pilot-table> DataField If no Field/Member pairs are given, the grand total is returned. Otherwise, each pair adds a constraint that the result shall Field Member Member If the data pilot table contains only a single result value that fulfills all of the constraints, or a subtotal result that summarizes all matching values, that result is returned. If there is no matching result, or several ones without a subtotal for them, an Error is returned. These conditions apply to results that are included in the data pilot table. If the source data contains entries that are hidden by settings of the data pilot table, they are ignored. The order of the Field/Member pairs is not significant. Field and member names are case-insensitive. If no constraint for a page field is given, the field's selected value is implicitly used. If a constraint for a page field is given, it shall Subtotal values from the data pilot table are only used if they use the function “auto” (except when specified in the constraint, see below). Alternative syntax Reference Text For compatibility, a second syntax is allowed. Table first Table Reference Constraints shall table:function <table:data-pilot-subtotal> 6.14.5 Summary: Syntax: Any Reference|Array Integer Logical Returns: Constraints: shall not that Semantics: If RangeLookup DataSource may Lookup Lookup Lookup Lookup Lookup DataSource If RangeLookup DataSource DataSource Lookup Both methods, if there is a match, return the corresponding value in row Row DataSource DataSource The values returned may vary depending upon th e 3.4 See also 6.14.6 6.14.9 6.14.11 6.14.12 6.14.6 Summary: Syntax: ReferenceList Array Integer Integer Integer Returns: Constraints: Semantics: Given a DataSource Row Column DataSource AreaNumber AreaNumber If Row AreaNumber DataSource Column AreaNumber DataSource Row Column AreaNumber If DataSource Column DataSource Row Row If Row Column AreaNumber See also 6.13.2 6.14.3 6.14.7 Summary: Syntax: Text Logical A1 = TRUE() ] Returns: Constraints: Semantics: Ref should 6.14.2 shall Evaluators shall See also 6.14.2 6.14.8 Summary: Syntax: Any ForceArray Reference|Array ForceArray Reference|Array Returns: Constraints: Searched shall Results shall Searched The shall not that Semantics: Find Searched Searched Find Find Find Find The searched portion of Searched shall There are two major uses for this function; the 3-parameter version (vector) and the 2-parameter version (non-vector array). Note: When given two parameters, Searched ● Searched ● Searched When given 3 parameters, Results shall Searched Results Searched ● Searched ● Searched The lengths of the search vector and the result vector do not need to be identical. When the match position falls outside the length of the result vector, an Error is returned if the result vector is given as an array object. If it is a cell range, it gets automatically extended to the length of the searched vector, but in the direction of the result vector. If just a single cell reference was passed, a column vector is generated. If the cell range cannot be extended due to the sheet's size limit, then the #N/A Error is returned. The values returned may vary depending upon th e 3.4 See also 6.14.5 6.14.6 6.14.9 6.14.11 6.14.12 6.14.9 Summary: Syntax: Scalar Reference|Array Integer Returns: Constraints: shall not that SearchRegion shall Semantics: ● MatchType Search SearchRegion Search Search Search ● MatchType Search SearchRegion Search ● MatchType Search SearchRegion Search Search Search If a match is found, MATCH returns the relative position (starting from 1). For Text the comparison is case-insensitive. MatchType MatchType SearchRegion shall MatchType SearchRegion may MatchType SearchRegion MatchType not MatchType The values returned may vary depending upon th e 3.4 See also 6.14.5 6.14.11 6.14.12 6.14.10 Summary: Syntax: Reference Reference Reference Reference Reference Returns: Semantics: •. FormulaCell •. RowCell RowReplacement •. RowReplacement RowCell •. ColumnCell ColumnReplacement •. ColumnReplacement ColumnCell MULTIPLE.OPERATIONS executes the formula expression pointed to by FormulaCell all all RowCell RowReplacement all ColumnCell ColumnReplacement If calls to MULTIPLE.OPERATIONS are encountered in dependencies, replacements of target cells shall occur in queued order, with each replacement using the result of the previous replacement. Note: Example FormulaCell RowCell ColumnCell Table col_B col_C col_D col_E col_F row_2 1 1 2 3 row_3 1 1 =MULTIPLE.OPERATIONS($B$5;$B$3;$C3;$B$2;D$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C3;$B$2;E$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C3;$B$2;F$2) row_4 =B2+B3 2 =MULTIPLE.OPERATIONS($B$5;$B$3;$C4;$B$2;D$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C4;$B$2;E$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C4;$B$2;F$2) row_5 =B2*B3+B4 3 =MULTIPLE.OPERATIONS($B$5;$B$3;$C5;$B$2;D$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C5;$B$2;E$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C5;$B$2;F$2) 4 =MULTIPLE.OPERATIONS($B$5;$B$3;$C6;$B$2;D$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C6;$B$2;E$2) =MULTIPLE.OPERATIONS($B$5;$B$3;$C6;$B$2;F$2) Result Table col_B col_C col_D col_E col_F row_2 1 1 2 3 row_3 1 1 3 5 7 row_4 2 2 5 8 11 row_5 3 3 7 11 15 4 9 14 19 Note that although only cell B5 is passed as the FormulaCell 6.14.11 Summary: Syntax: Reference reference Integer rowOffset Integer columnOffset Integer newHeight ] [ Integer newWidth ] Returns: Constraints: newWidth newHeight shall Semantics: reference rowOffset columnOffset newWidth newHeight newHeight newWidth See also 6.13.4 6.13.5 6.13.29 6.13.30 6.14.12 Summary: Syntax: Any Reference|Array Integer Logical Returns: Constraints: shall not that Semantics: If RangeLookup DataSource may Lookup Lookup Lookup Lookup Lookup DataSource If RangeLookup DataSource DataSource Lookup Both methods, if there is a match, return the corresponding value in column Column DataSource DataSource The values returned may vary depending upon th e 3.4 See also 6.14.5 6.14.6 6.14.9 6.14.11 6.15 6.15.1 The logical functions are the constants TRUE() and FALSE(), the functions that compute Logical values NOT(), AND(), and OR(), and the conditional function IF(). The OpenDocument specification mentions "logical operators"; these are another name for the logical functions. Note that because of Error values, any logical function that accepts parameters can actually produce TRUE, FALSE, or an Error value, instead of TRUE or FALSE. These are not bitwise operations, e.g., AND(12;10) produces TRUE(), not 8. See the bit operation functions for bitwise operations. 6.15.2 Summary: Syntax: Logical|NumberSequenceList + Returns: Constraints: Semantics: hen given one parameter, this has the effect of converting that one parameter into a Logical value. When given zero parameters, evaluators may return a Logical value or an Error. Also in array context a logical AND of all arguments is computed, range or array parameters are not evaluated as a matrix and no array is returned. This behavior is consistent with functions like SUM. To compute a logical AND of arrays per element use the * operator in array context. See also 6.15.8 6.15.4 6.15.3 Summary: Syntax: Returns: Constraints: Semantics: See also 6.15.9 6.15.4 6.15.4 Summary: Syntax: Logical Condition [ ; Any Any Returns: Constraints: Semantics: Condition IfTrue IfFalse IfTrue IfFalse Condition IfFalse IfFalse only evaluates IfTrue , or ifFalse , and never both; that is to say, it short-circuits. See also 6.15.2 6.15.8 6.15.5 Summary: Syntax: Any Any Returns: Constraints: Semantics: X Note: See also 6.15.4 6.13.16 6.15.6 Summary: Syntax: Any Any Returns: Constraints: Semantics: X Note: See also 6.15.4 6.13.20 6.15.7 Summary: Syntax: Logical Returns: Constraints: Semantics: See also 6.15.2 6.15.4 6.15.8 Summary: Syntax: Logical|NumberSequenceList + Returns: Constraints: Semantics: shall shall returns hen given one parameter, this has the effect of converting that one parameter into a Logical value. When given zero parameters, evaluators may return a Logical value or an Error. Also in array context a logical OR of all arguments is computed, range or array parameters are not evaluated as a matrix and no array is returned. This behavior is consistent with functions like SUM. To compute a logical OR of arrays per element use the + operator in array context. See also 6.15.2 6.15.4 6.15.9 Summary: Syntax: Returns: Constraints: Semantics: shall See also 6.15.3 6.15.4 6.15.10 Summary: Syntax: Logical + Returns: Constraints: Semantics: hen given one parameter, this has the effect of converting that one parameter into a Logical value. See also 6.15.2 6.15.8 6.16 6.16.1 This section describes functions for various mathematical functions, including trigonometric functions like SIN 6.16.55 6.16.2 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.4.16 6.16.3 Summary: the Syntax: Number Returns: Constraints: Semantics: Returns a principal value 0 ≤ result ≤ PI. See also 6.16.19 6.16.49 6.16.25 6.16.4 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.20 6.16.8 6.16.5 Summary: Syntax: Number Returns: Semantics: Returns a principal value 0 < result < PI. See also 6.16.21 6.16.9 6.16.69 6.16.49 6.16.25 6.16.6 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.20 6.16.8 6.16.7 Summary: Syntax: Number Returns: Constraints: Semantics: Returns a principal value -PI/2 ≤ result ≤ PI/2. See also 6.16.55 6.16.49 6.16.25 6.16.8 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.56 6.16.4 6.16.9 Summary: Syntax: Number Returns: Semantics: Returns a principal value -PI/2 < result < PI/2. See also 6.16.10 6.16.69 6.16.49 6.16.25 6.16.10 Summary: The angle is returned in radians. Syntax: Number Number Returns: Constraints: Semantics: Returns a principal value -PI < result ≤ PI. See also 6.16.9 6.16.69 6.16.49 6.16.25 6.16.11 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.20 6.16.56 6.16.8 6.16.4 6.16.9 6.16.10 6.18.26 6.16.12 Summary: Syntax: Integer Number Returns: Constraints: Semantics: order . See also 6.16.13 6.16.14 6.16.15 6.16.13 Summary: Syntax: Integer Number Returns: Constraints: Semantics: order . See also 6.16.12 6.16.14 6.16.15 6.16.14 Summary: Syntax: Integer Number Returns: Constraints: Semantics: order . See also 6.16.12 6.16.13 6.16.15 6.16.15 Summary: Syntax: Integer Number Returns: Constraints: Semantics: order . See also 6.16.12 6.16.13 6.16.14 6.16.16 Summary: Syntax: Integer Integer Returns: Constraints: Semantics: Note that if order is important, use PERMUT instead. See also 6.18.59 6.16.17 Summary: Syntax: Integer Integer Returns: Constraints: Semantics: Returns the number of possible combinations of M objects out of N possible ones, with repetitions allowed. Actual arguments that are not integers are truncated (using INT) before use. The result is See also 6.16.16 6.16.18 Summary: Syntax: Number Text Text Returns: Constraints: shall shall Semantics: Returns the number converted from the unit identified by From into the unit identified by Into. A unit is a unit symbol , optionally preceded by a unit prefix (either a decimal prefix or a binary prefix). Units (including both the unit symbol and the optional unit prefix) are case-sensitive. Evaluators claiming to implement this function shall support at least the following unit symbols (with conversions between them and other units in the same group): Table Unit group Unit symbol Description Area "uk_acre" International acre (using international feet), exactly 4046.8564224 m 2 ; normally not used for U.S. land areas "us_acre" U.S. survey/statute acre (using U.S. survey/statute feet), exactly 4046+13525426/15499969 m 2 "ang2" "ang^2" * Square angstrom (an Angstrom is exactly 10 -10 m) "ar" are, 100 m 2 (not abbreviated as “a”) "ft2" "ft^2" Square international feet (1 foot is exactly 0.3048 m) "ha" hectare, 10 000 m 2 "in2" "in^2" Square international inches (1 inch is exactly 2.54 cm) "ly 2 " "ly ^ 2" Square light-year (where year=365.25 days) "m2" "m^2" Square meters "Morgen" Morgen, 2500 m 2 "mi2" "mi^2" Square international miles "Nmi2" "Nmi^2" Square nautical miles (1 nautical mile is 1852 m) "Pica2" "Pica^2" "picapt2" "picapt^2 " Square Pica Point (one Pica point is 1/72 inch) “pica 2 “pica ^2 Square Pica (one Pica is 1/6 inch) "yd2" "yd^2" Square international yards (1 yard is 0.9144 m) Distance (Length) "ang" Angstrom, exactly 10 -10 m "ell" Ell, exactly 45 international inches "ft" International Foot, exactly 0.3048 m and also exactly 12 international inches. "in" International Inch, exactly 2.54 cm. "ly" Light-year, (299792458 m/s) (3600 s/hr) (24 hr/day) (365.25 day) "m" Meter "mi" International Mile, exactly 1609.344 m and exactly 5280 international feet. This is not a U.S. survey/statute mile (see “smi”) nor a nautical mile (see “Nmi”), but this is the mile normally used in the U.S. customary system "Nmi" International nautical mile, exactly 1852 m. Note that this is not the obsolete U.S. nautical mile nor the Admiralty mile. "parsec" "pc" Distance from sun to a point having heliocentric parallax of one second (used for stellar distance), AU/tan(1/3600 degree) where an AU is exactly 149,597,870.691 kilometers. * "Pica" "picapt " Pica (1/72 inch) “p ica Pica (1/6 inch) "survey_mi" U.S. survey "mile, aka U.S. statute mile, exactly 6336000/3937 m; used in some U.S. maps. This is not the mile (see “mi”) normally used in the U.S. "yd" International yard, exactly 0.9144 m and exactly 3 international feet. Energy "BTU" "btu" International Table British Thermal Unit "c" Thermodynamic calorie, 4.184 J. This is not a dietary Calorie (kilocalorie). For high accuracy, use Joule, "cal" International Table (IT) calorie, 4.1868 J. This is not a dietary Calorie (kilocalorie). For high accuracy, use Joule, due to the many conflicting definitions of calorie. "e" Erg "eV" "ev" Electron volt (eV preferred) "flb" Foot-pound (international foot, avoirdupois pound) "HPh" "hh" Horsepower-hour (HPh preferred) "J" Joule "Wh" "wh" Watt-hour Force (Weight) "dyn" "dy" Dyne "N" Newton "lbf" Pound force (see “lbm” for pound mass) "pond" Pond, gravitational force on a mass of one gram, 9.80665E-3 N. Information "bit" † bit "byte" † byte = 8 bits Magnetic Flux Density "ga" Gauss "T" Tesla Mass "g" Gram "grain" Grain, 1/7000 international pound mass (avoirdupois) (U.S. usage). "cwt" "shweight" U.S. (short) hundredweight, 100 lbm "uk_cwt" "lcwt" "hweight" Imperial hundredweight, aka long hundredweight; 112 lbm "lbm" International pound mass (avoirdupois), exactly 453.59237 g (see “lbf” for pound force) "stone" 14 international pound mass (avoirdupois) "ton" 2000 international pound mass (avoirdupois) (U.S. usage). Note that there are many other measures also called “ton”; in particular, this is not a metric ton (tonne). "ozm" Ounce mass (avoirdupois), exactly 1/16 of an international pound mass (avoirdupois) (see “oz” for fluid ounce) "sg" Slug; 32.174 international pound mass (avoirdupois) "u" U (atomic mass unit) "uk_ton" "LTON" "brton" Imperial ton, aka “long ton”, "deadweight ton", or "weight ton". 2240 lbm. Power "HP" "h" Mechanical horsepower aka Imperial horsepower. 550 foot-pounds per second. The unit “h” is deprecated and should be replaced with “HP”. "PS" Pferdestärke (German “horse strength”, close but not identical to “HP”), the amount of power to lift a mass of 75 kilograms in one second against the earth gravitation between a distance of one meter, approximately 735.49875 W. "W" "w" Watt Pressure "atm" "at" Atmosphere "mmHg" mm of Mercury "Pa" Pascal; Pa preferred, as it is the standard abbreviation. Note that “P” or “p” need not be accepted. "psi" Pounds per square inch, using avoirdupois pounds and international inches. "Torr" Torr, exactly 101325/760 Pa (this is close but not equal to mmHg) Speed "admkn" Admiralty knot, exactly 6080 international feet/hour. "kn" Knot, exactly one Nautical mile per hour or exactly 1852/3600 m/s. Note that this is not an Admiralty knot (“admkn”). "m/h" "m/hr" Meters per hour "m/s" "m/sec" Meters per second "mph" Miles per hour (international miles) Temperature "C" "cel" degrees Celsius "F" "fah" degrees Fahrenheit "K" "kel" Kelvin "Rank" degrees Rankine "Reau" degrees Réaumur; °C = °Ré · 5/4. Time "day" "d" Day (exactly 24 hours) "hr" Hour (exactly 60 minutes) "mn" "min" Minute (exactly 60 seconds) "sec" "s" Second (“s” is the official abbreviation of this SI base unit, while “sec” is its traditional abbreviation in the CONVERT function) * "yr" Year (exactly 365.25 days, for purposes of this function) Volume "ang3" "ang^3" Cubic angstrom "barrel" U.S. oil barrel, exactly 42 U.S. customary gallons (liquid). Note that many other units are also called barrels (e.g., a beer barrel in the U.K. is 36 Imperial gallons) "bushel" U.S. bushel ( not Imperial bushel), interpreted as volume "cup" Cup (U.S. customary liquid measure) "ft3" "ft^3" Cubic international feet "gal" Gallon (U.S. customary liquid measure), 3.785411784 liters. "GRT" "regton" Gross Registered Ton, 100 cubic (international) feet "in3" "in^3" Cubic international inch "l" "L" "lt" Liter "ly3" "ly^3" Cubic light-year "m3" "m^3" Cubic meter "mi3" "mi^3" Cubic international mile "MTON" Measurement ton aka “freight ton”, 40 cubic feet "Nmi3" "Nmi^3" Cubic nautical mile "oz" Fluid ounce (U.S. customary liquid measure; see “ozm” for ounce mass) "Pica3" "Pica^3" "picapt3" "picapt^3 " Cubic Pica Point (one Pica point is 1/72 inch) “pica 3 “pica ^3 Cubic Pica (one Pica is 1/6 inch) "pt" "us_pt" U.S. Pint (liquid measure) "qt" Quart (U.S. customary liquid measure). This is 0.946352946 liters, and thus not the same as the U.S. dry quart (1.101220 liters), nor is this the same as the Imperial quart (as used in the U.K. and Canada, which is 1.1365225 liters exactly) "tbs" Tablespoon (U.S. customary, traditional meaning). This shall be 0.5 U.S. fluid ounce, not 15mL (common in U.S.) or 20mL (common in Australia). "tsp" Teaspoon (U.S. customary, traditional meaning), 1/6 fluid ounce in U.S. customary measure. This is not the 1/8 Imperial fl. oz. per Imperial units nor the modern teaspoon of 5 mL currently used in the U.S.; see “tspm” "tspm" Modern teaspoon, 5mL "uk_gal" U.K. / Imperial gallon, 4.54609 liters. "uk_pt" U.K. / Imperial pint,1/8 of a UK gallon. "uk_qt" U.K. / Imperial quart,1/4 of a UK gallon. "yd3" "yd^3" Cubic international yard If a conversion factor (as listed above) is not exact, an implementation may use a more accurate conversion factor instead. Evaluators shall support decimal prefixes for unit symbols marked with * and binary prefixes for unit symbols marked with † . Evaluators should not support prefixes for other unit symbols. The unit symbols in parentheses are deprecated unit symbols; evaluators shall support these unit symbols. Evaluators should use internationally-standardized unit name abbreviations for such additions where possible. Evaluators may support the obsolete symbols “p” and “P” as unit names for Pascals. For purposes of this function, a year is exactly 365.25 days long. Evaluators shall permit the following unit decimal prefixes to be prepended to any unit symbol marked with “*” in the unit table cell above. Adding a unit prefix indicates multiplication of the (scalar) unit by the given prefix value; for example km indicates kilometres, an d km2 or km^2 indicate square kilometres. Table Unit Prefix Description Prefix Value "Y" yotta 1E+24 "Z" zetta 1E+21 "E" exa 1E+18 "P" peta 1E+15 "T" tera 1E+12 "G" giga 1E+09 "M" mega 1E+06 "k" kilo 1E+03 "h" hecto 1E+02 “da” or "e" deka ( Note: 1E+01 "d" deci 1E-01 "c" centi 1E-02 "m" milli 1E-03 "u" micro N ote: µ 1E-06 "n" nano 1E-09 "p" pico 1E-12 "f" femto 1E-15 "a" atto 1E-18 "z" zepto 1E-21 "y" yocto 1E-24 The prefix “e” for 10 1 is nonstandard and included for backward compatibility with legacy applications and documents. The unit names marked with † in the unit symbol table above (see the Information group) shall also support the following binary prefixes per IEC 60027-2: Table Binary Unit Prefix Description Prefix Value Derived from "Yi" yobi 2^80 = 1 208 925 819 614 629 174 706 176 yotta "Zi" zebi 2^70 = 1 180 591 620 717 411 303 424 zetta "Ei" exbi 2^60 = 1 152 921 504 606 846 976 exa "Pi" pebi 2^50 = 1 125 899 906 842 624 peta "Ti" tebi 2^40 = 1 099 511 627 776 tera "Gi" gibi 2^30 = 1 073 741 824 giga "Mi" mebi 2^20 = 1 048 576 mega "Ki" kibi 2^10 = 1024 kilo In the case where there is a naming conflict (a unit name with a prefix is the same as an unprefixed name), the unprefixed name shall Evaluators may implement this conversion by first converting to some SI unit (e.g., meter and kilogram), and then convert again to the final unit. See also 6.16.29 6.16.19 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.3 6.16.49 6.16.25 6.16.20 Summary: Syntax: Number Returns: Constraints: Semantics: t t See also 6.16.4 6.16.56 6.16.70 6.16.21 Summary: Syntax: Number Returns: Constraints: Semantics: COT(x) = 1 / TAN(x) See also 6.16.5 6.16.69 6.16.49 6.16.25 6.16.55 6.16.19 6.16.22 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.4 6.16.56 6.16.70 6.16.23 Summary: Syntax: Number Returns: Constraints: Semantics: 1/SIN(N) See also 6.16.55 6.16.24 Summary: Syntax: Number Returns: Constraints: Semantics: 1/SINH(N) See also 6.16.56 6.16.25 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.49 6.16.45 6.16.26 Summary: Syntax: Number Number Returns: Constraints: Semantics: X Y Y See also 6.4.7 6.16.27 Summary: Syntax: Number Number Returns: Constraints: Semantics: z0 : With two arguments, returns See also 6.16.28 6.16.28 Summary: Syntax: Number Returns: Constraints: Semantics: z: ERFC(z) = 1 – ERF(z) See also 6.16.27 6.16.29 Summary: Syntax: Number Text Text Logical Integer Returns: Constraints: From To shall evaluator TriangulationPrecision shall If an evaluator does not support the parameters FullPrecision and TriangulationPrecision, FullPrecision should be assumed to be false. Semantics: Returns the given money value of a conversion from From currency into To currency. Both From and To shall be the official [ISO4217] abbreviation for the given currency; note that these are in upper case, but the function accepts lower case or mixed case as well. If From and To are equal currencies, the value N is returned, no precision or triangulation is applied. The function shall use the rates of exchange as set by the European Commission, as follows: Table From To Rate Currency Decimals "EUR" "ATS" 13.7603 Austrian Schilling 2 "EUR" "BEF" 40.3399 Belgian Franc 0 "EUR" "DEM" 1.95583 German Mark 2 "EUR" "ESP" 166.386 Spanish Peseta 0 "EUR" "FIM" 5.94573 Finnish Markka 2 "EUR" "FRF" 6.55957 French Franc 2 "EUR" "IEP" 0.787564 Irish Pound 2 "EUR" "ITL" 1936.27 Italian Lira 0 "EUR" "LUF" 40.3399 Luxembourg Franc 0 "EUR" "NLG" 2.20371 Dutch Guilder 2 "EUR" "PTE" 200.482 Portuguese Escudo 2 "EUR" "GRD" 340.750 Greek Drachma 2 "EUR" "SIT" 239.640 Slovenian Tolar 2 “EUR” “MTL” 0.429300 Maltese Lira 2 “EUR” “CYP” 0.585274 Cypriot Pound 2 "EUR" "SKK" 30.1260 Slovak Koruna 2 As new member countries adopt the Euro, new conversion rates will become active and evaluators may [ISO4217] Note: http://ec.europa.eu/euro/ http://ec.europa.eu/economy_finance/euro/adoption/conversion/index_en.htm http://eur-lex.europa.eu/ If FullPrecision To FullPrecision If TriangulationPrecision is given and >=3, the intermediate result of a triangular conversion (currency1,EUR,currency2) is rounded to that precision. If TriangulationPrecision is omitted, the intermediate result is not rounded. Also if To currency is “EUR”, TriangulationPrecision precision is used as if triangulation was needed and conversion from EUR to EUR was applied. See also 6.16.30 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.44 6.16.31 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.40 6.16.39 6.16.32 Summary: Syntax: Integer Returns: Constraints: Semantics: F(0)=F(1)=1. See also 6.4.4 6.16.34 6.16.33 Summary: Syntax: Integer Returns: Constraints: Semantics: Double factorial is computed by multiplying every other number in the 1..N range, with N always being included. See also 6.4.4 6.16.34 6.16.32 6.16.34 Summary: Syntax: Number Returns: Constraints: Semantics: with Γ(N+1) = N * Γ(N). Note th See also 6.16.32 6.16.35 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.34 6.16.32 6.16.36 Summary: Syntax: NumberSequenceList Returns: Constraints: Semantics: Note: See also 6.16.38 6.16.37 Summary: Syntax: Number Number Returns: Semantics: See also 6.16.38 Summary: Syntax: NumberSequenceList + Returns: Constraints: Semantics: See also 6.16.36 6.16.39 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.40 6.16.41 6.16.46 6.16.31 6.16.40 Summary: Syntax: Number Number Returns: Constraints: Semantics: See also 6.16.41 6.16.39 6.16.46 6.16.31 6.16.41 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.40 6.16.39 6.16.46 6.16.31 6.16.42 Summary: Syntax: Number Number Returns: Constraints: Semantics: b See also 6.4.5 6.16.48 6.16.43 Summary: Syntax: NumberSequence + Returns: Constraints: Semantics: n See also 6.16.32 6.16.44 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.30 6.16.45 Summary: Syntax: Returns: Constraints: Semantics: See also 6.16.55 6.16.19 6.16.46 Summary: Syntax: Number Number Returns: Constraints: Semantics: •. shall •. shall •. See also 6.16.40 6.16.41 6.16.39 6.16.31 6.16.47 Summary: Syntax: NumberSequence + Returns: Constraints: Semantics: See also 6.16.61 6.16.48 Summary: Syntax: Number Number Returns: Constraints: Semantics: See also 6.16.42 6.16.49 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.25 6.16.45 6.16.50 Summary: Syntax: Returns: Semantics: different values when called each time with the same (empty set of) parameters. See also 6.16.51 6.16.51 Summary: Syntax: Integer Integer Returns: Constraints: Semantics: different values when called each time with the same parameters. See also 6.16.50 6.16.52 Summary: Syntax: Number Returns: Constraints: Semantics: 1/COS(N) See also 6.16.55 6.16.53 Summary: Syntax: Number Number Number ● X ● N X ● M N ● Coefficients X Returns: Constraints: All elements of Coefficients are of type Number. X < > 0 if any of the exponents, which are generated from N and M, are negative. Semantics: X With C being the number of coefficients the function is computed as: If X=0 and all of the exponents are non-negative then shall be set to 1 and shall be set to 0. 6.16.54 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.2 6.16.55 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.16.7 6.16.49 6.16.25 6.16.56 Summary: Syntax: Number Returns: Constraints: Semantics: t t See also 6.16.8 6.16.20 6.16.70 6.16.57 Summary: Syntax: Number Returns: Constraints: Semantics: 1/COSH(N) See also 6.16.56 6.16.58 Summary: Syntax: Number Returns: Constraints: Semantics: shall See also 6.16.46 6.8.24 6.16.59 6.16.59 Summary: Syntax: Number Returns: Constraints: Semantics: shall See also 6.16.46 6.16.58 6.16.45 6.8.24 6.16.60 Summary: Syntax: Integer function ; NumberSequence sequence Returns: Constraints: Semantics: ● ● table:visibility filter <table:table-row> ● table:visibility collapse <table:table-row> Function Exclude hidden by filter Exclude hidden by filter or collapsed AVERAGE 1 101 COUNT 2 102 COUNTA 3 103 MAX 4 104 MIN 5 105 PRODUCT 6 106 STDEV 7 107 STDEVP 8 108 SUM 9 109 VAR 10 110 VARP 11 111 See also 6.16.61 6.18.3 6.16.61 Summary: Syntax: NumberSequenceList + Returns: Constraints: Semantics: See also 6.18.3 6.16.62 Summary: Syntax: ReferenceList|Reference Criterion Reference Returns: Constraints: Semantics: R S C ( 4.11.8 ) If S is not given, R may be a reference list. If S is given, R shall not be a reference list with more than 1 references and an Error be generated if it was. If the optional range S S R R S The values returned may vary depending upon th e 3.4 See also 6.13.9 6.16.61 6.4.7 6.4.8 6.4.9 6.16.63 Summary: Syntax: Reference Reference Criterion Reference Criterion Returns: Constraints: Semantics: R C1 R1 C2 R2 4.11.8 shall The values returned may vary depending upon th e 3.4 See also 6.18.6 6.13.10 6.16.62 6.4.7 6.4.8 6.4.9 6.16.64 Summary: Syntax: ForceArray Array + Returns: Constraints: shall Semantics: where denotes an element of the matrix . 6.16.65 Summary: Syntax: NumberSequence + Returns: Constraints: Semantics: 6.16.66 Summary: A B Syntax: ForceArray Array ForceArray Array Returns: Constraints: shall Semantics: 6.16.67 Summary: A B Syntax: ForceArray Array ForceArray Array Returns: Constraints: shall Semantics: 6.16.68 Summary: A B Syntax: ForceArray Array ForceArray Array Returns: Constraints: shall Semantics: 6.16.69 Summary: Syntax: Number Returns: Constraints: Semantics: TAN(x) = SIN(x) / COS(x) See also 6.16.9 6.16.10 6.16.49 6.16.25 6.16.55 6.16.19 6.16.21 6.16.70 Summary: Syntax: Number Returns: Constraints: Semantics: t t See also 6.16.11 6.16.56 6.16.20 6.18.27 6.17 6.17.1 Summary: N up to the nearest multiple of the second parameter, significance . Syntax: Number Number Number Returns: Constraints: N significance shall Semantics: significance N N ceiling mode If mode is given and not equal to zero, the absolute value of N is rounded away from zero to a multiple of the absolute value of significance and then the sign applied . If mode is omitted or zero, rounding is toward positive infinity; the number is rounded to the smallest multiple of significance that is equal-to or greater than N . If any of the two parameters N or significance is zero, the result is zero. Note: See also 6.17.3 6.17.2 6.17.2 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.17.5 6.17.8 6.17.3 Summary: N down to the nearest multiple of the second parameter, significance . Syntax: Number Number Number Returns: Constraints: N significance shall Semantics: significance N N floor mode If mode is given and not equal to zero, the absolute value of N is rounded away from zero to a multiple of the absolute value of significance and then the sign applied . Otherwise, it rounds toward negative infinity, and the result is the largest multiple of significance that is less than or equal to N . If any of the two parameters N or significance is zero, the result is zero. Note: See also 6.17.1 6.17.2 6.17.4 Summary: Syntax: Number Number Returns: Constraints: Semantics: a b See also 6.17.5 6.17.5 Summary: Syntax: Number Number Returns: Constraints: Semantics: − Digits shall See also 6.17.8 6.17.2 6.17.6 Summary: Syntax: Number Integer Returns: Constraints: Semantics: −Digits See also 6.17.8 6.17.2 6.17.5 6.17.7 6.17.7 Summary: Syntax: Number Integer Returns: Constraints: Semantics: −Digits See also 6.17.8 6.17.2 6.17.5 6.17.6 6.17.8 Summary: Syntax: Number Integer Returns: Constraints: Semantics: See also 6.17.5 6.17.2 6.18 6.18.1 The following are statistical functions (functions that report information on a set of numbers). Some functions that could also be considered statistical functions, such as SUM, are listed elsewhere. 6.18.2 Summary: Syntax: NumberSequenceList + Returns: Constraints: Semantics: See also 6.18.3 Summary: Syntax: NumberSequence + Returns: Constraints: Semantics: List List See also 6.16.61 6.13.6 6.18.4 Summary: Syntax: Any + Returns: Constraints: Semantics: the See also 6.18.3 6.18.5 Summary: Syntax: Reference Criterion Reference Returns: Constraints: Semantics: A R C ( 4.11.8 ) A A R R C The values returned may vary depending upon th e 3.4 See also 6.18.6 6.13.9 6.16.62 6.4.7 6.4.8 6.4.9 6.18.6 Summary: Syntax: Reference Reference Criterion Reference Criterion Returns: Constraints: Semantics: A C1 R1 C2 R2 4.11.8 shall A The values returned may vary depending upon th e 3.4 See also 6.18.5 6.13.10 6.16.63 6.4.7 6.4.8 6.4.9 6.18.7 Summary: Syntax: Number Number a Number b Number Number Logical Returns: Constraints: a b > 0 a b Semantics: otherwise. If Cumulative is TRUE(), BETADIST returns 0 if x < a, 1 if x > b, and the value otherwise. Note: the term can be written as See also 6.18.8 6.18.8 Summary: a b Syntax: Number Number a Number b Number Number Returns: Constraints: , a b > 0 Semantics: a b See also 6.18.7 6.18.9 Summary: Syntax: Integer N ; Number P ; Integer S [ ; Integer S2 ] Returns: Constraints: Semantics: This function is computed as follows: If S2 is not given, let S2:=S. Then the function returns the value of See also 6.18.10 6.18.10 Summary: Syntax: Integer Integer Number Logical Returns: Constraints: Semantics: Cumulative N P S Cumulative N P S See also 6.18.9 6.18.11 Summary: c 2 - Syntax: Number Number Returns: Constraints: Semantics: and the value for . See also 6.18.12 6.18.15 6.18.12 Summary: c 2 - Syntax: Number Number Logical Returns: Constraints: Semantics: If Cumulative is FALSE(), CHISQDIST returns 0 for and the value for . If Cumulative is TRUE(), CHISQDIST returns 0 for and the value for . See also 6.18.11 6.18.13 Summary: Syntax: Number Number Returns: Constraints: . Semantics: See also 6.18.11 6.18.14 Summary: Syntax: Number Number Returns: Constraints: . Semantics: such that CHISQDIST(x; DegreesOfFreedom;TRUE()) = p. See also 6.18.12 6.18.15 Summary: Syntax: ForceArray Array ForceArray Array Returns: Constraints: Semantics: For an empty element or an element of type Text or Boolean in A E ● A ● E First a Chi square statistic is calculated: Then LEGACY.CHIDIST is called with the Chi-square value and a degree of freedom (df): See also 6.18.11 6.18.16 Summary: Syntax: Number Number Number Returns: Constraints: Semantics: 6.18.17 Summary: Syntax: ForceArray Array ForceArray Array Returns: Constraints: Semantics: For an empty element or an element of type Text or Boolean in N1 N2 See also 6.18.56 6.18.18 Summary: Syntax: ForceArray Array ForceArray Array Returns: Constraints: Semantics: where is the result of calling AVERAGE(n1), and is the result of calling AVERAGE(n2). For an empty element or an element of type Text or Boolean in n1 n2 6.18.19 Summary: Syntax: Number Number Number Returns: Constraints: Semantics: Trials is the total number of trials. SP is the probability of success for one trial. 6.18.20 Summary: Syntax: NumberSequence + Returns: Semantics: where a is the result of calling AVERAGE(n). 6.18.21 Summary: Syntax: Number Number l Logical Returns: Constraints: l Semantics: otherwise. If Cumulative is TRUE(), EXPONDIST returns 0 if x < 0 and the value otherwise. 6.18.22 Summary: Syntax: Number Number r 1 ; Number r 2 Logical Returns: Constraints: 1 2 Semantics: r 1 r 2 If Cumulative 1 otherwise. 1 is not defined. If Cumulative is TRUE(), FDIST returns 0 if x < 0 and the value otherwise. See also LEGACY.FDIST 6.18.23 6.18.23 Summary: Syntax: Number Number r 1 ; Number r 2 Returns: Constraints: 1 2 Semantics: LEGACY.FDIST returns Error if x < 0 and the value otherwise. Note that the latter is (1-FDIST(x; r 1 ; r 2 ;TRUE())). See also FDIST 6.18.22 6.18.24 Summary: r 1 r 2 Syntax: Number Number r 1 ; Number r 2 Returns: Constraints: , r 1 2 Semantics: r 1 r 2 See also 6.18.22 6.18.23 6.18.25 6.18.25 Summary: r 1 r 2 Syntax: Number Number r 1 ; Number r 2 Returns: Constraints: , r 1 2 Semantics: r 1 r 2 See also 6.18.22 6.18.23 6.18.24 6.18.26 Summary: Syntax: Number Returns: Constraints: Semantics: where ln FISHER is a synonym for ATANH. See also 6.16.11 6.18.27 Summary: Syntax: Number Returns: Constraints: Semantics: FISHERINV is a synonym for TANH. See also 6.16.70 6.18.28 Summary: Syntax: Number Value ; ForceArray Array Data_Y ; ForceArray Array Data_X ) Returns: Constraints: COLUMNS(Data_Y) = COLUMNS(Data_X), ROWS(Data_Y) = ROWS(Data_X) Semantics: Value is the x-value, for which the y-value on the linear regression is to be returned. Data_Y Data_X is the array or range of known x-values. For an empty element or an element of type Text or Boolean in Data_Y Data_X 6.18.29 Summary: Syntax: NumberSequenceList data ; NumberSequenceList bins ) Returns: Constraints: Values in bins shall be sorted in ascending order and bins shall be a column vector. Evaluators may accept unsorted values in bins. Semantics: Counts the number of values for each interval given by the border values in bins . bins determine the upper boundaries of the intervals. The intervals include th e upper boundaries. The returned array is a column vector and has one more element than bins ; the last element represents the number of all elements greater than the last value in bins . If bins is empty, all values in data are counted. The values in the result array are ordered matching the original order of bins . If the values in bins are not sorted in ascending order, they are sorted internally to form category intervals and the counts of data values are "unsorted" to the original order of bins . data bins data 6.18.30 Summary: Syntax: ForceArray NumberSequence Data_1 ; ForceArray NumberSequence Data_2 ) Returns: Constraints: shall shall Semantics: Suppose the first sample has size n1 and sample variance s1^2 and the second sample has size n2 and sample variance s2^2. If s1^2>s^2 FDIST returns twice the area of the right tail of the F-distribution with degrees of freedom n1-1,n2-1 beyond s^1/s^2. If s1^2<s^2 FDIST returns twice the area of the left tail of the F-distribution with degrees of freedom n1-1,n2-1 below s^1/s^2. See also 6.18.81 6.18.31 Summary: Syntax: Number Number a Number Logical Returns: Constraints: a > 0 Semantics: otherwise. If Cumulative is TRUE(), GAMMADIST returns 0 if x < 0 and the value otherwise. See also 6.18.32 6.18.32 Summary: a Syntax: Number Number a Number Returns: Constraints: , a > 0 Semantics: such that GAMMAINV(x; a b See also 6.18.31 6.18.33 Summary: Syntax: Number x ) Returns: Semantics: See also 6.18.52 6.18.34 Summary: Syntax: NumberSequenceList N } + ) Returns: Semantics: where n N 6.18.35 Summary: Syntax: Array Array Array Logical Returns: Constraints: (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX )) or (COLUMNS( knownY ) = 1 and ROWS( knownY ) = ROWS( knownX ) and COLUMNS( knownX ) = COLUMNS( newX )) or (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = 1 and ROWS( knownX ) = ROWS( newX )) Semantics: knownY knownX it is set to the sequence , where newX -values are to be calculated. If omitted or an empty parameter, it is set to knownX Const a LOGEST( knownY ; knownX ; Const ; FALSE()) either returns an error or an array with 1 row and n +1 columns. If it returns an error then so does GROWTH. If it returns an array, we call the entries in that array . Let denote the entry in the i th row and j th column of newX . If COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX ), then GROWTH returns an array with ROWS( newX ) rows and COLUMNS( newX ) column, such that the entry in its i th row and j th column is . Otherwise, if COLUMNS( knownY ) = 1 and ROWS( knownY ) = ROWS( knownX ) and COLUMNS( knownX ) = COLUMNS( newX ), then GROWTH returns an array with ROWS( newX ) rows and 1 column, such that the entry in the i th row is . Otherwise, if COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = 1 and ROWS( knownX ) = ROWS( newX ), then GROWTH returns an array with 1 row and COLUMNS( newX ) columns, such that the entry in the j th column is . See also TREND 6.18.79 6.18.36 Summary: Syntax: NumberSequenceList N } + ) Returns: Semantics: where a 1 2 n N n N 6.18.37 Summary: n Syntax: Integer Integer Integer Integer Logical Returns: Constraints: Semantics: x n M N cumulative cumulative cumulative If Cumulative is FALSE(), HYPGEOMDIST returns If Cumulative is TRUE(), HYPGEOMDIST returns Note: 6.18.38 Summary: Syntax: INTERCEPT( ForceArray Array Data_Y ; ForceArray Array Data_X ) Returns: Constraints: COLUMNS(Data_X) = COLUMNS(Data_Y), ROWS(Data_X) = ROWS(Data_Y) Semantics: INTERCEPT returns the intercept (a) calculated as described in 5.18.41 for the function call LINEST(DATA_Y,DATA_X,FALSE()). For an empty element or an element of type Text or Boolean in Data_Y Data_X 6.18.39 Summary: Syntax: KURT( { NumberSequenceList X } + ) Returns: Constraints: Semantics: Kurtosis characterizes the relative peakedness or flatness of a distribution compared with the normal distribution. Positive kurtosis indicates a relatively peaked distribution (compared to the normal distribution), while negative kurtosis indicates a relatively flat distribution. where s is the sample standard deviation, and n is the number of numbers. 6.18.40 Summary: Syntax: NumberSequenceList Number|Array Returns: Constraints: N List Semantics: N See also 6.18.70 6.17.7 6.18.41 Summary: Syntax: Array Array Logical Logical Returns: Constraints: (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX )) or (COLUMNS( knownY ) = 1 and ROWS( knownY ) = ROWS( knownX )) or (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = 1) Semantics: knownY knownX it is set to the sequence , where Const Stats If any of the entries in knownY and knownX do not convert to Number, LINEST returns an error. The result created by LINEST if STATS Table 28 - LINEST Table 28 - LINEST Table b n b n-1 … b 1 a … F df SS reg SS resid If COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX ) then , , the entries of knownX in column major order are denoted with and the entries of knownY in column major order are denoted with . Otherwise but if COLUMNS( knownY ) = 1, then , , the entry in the j th column and i th row of knownX is denoted and the entry in the i th row of knownY is denoted . Otherwise but if ROWS( knownY ) = 1, then , , the entry in the j th column and i th row of knownX is denoted and the entry in the j th column of knownY is denoted . If Const is TRUE() and LINEST returns an error. Similarly, if Const is FALSE() and LINEST returns an error. We denote and , and define the following matrices: and for Const for Const Let denote the transpose of X is a square matrix. If is not invertible, then LINEST shall either return an error or calculate a result as described below. If is invertible, then is a matrix B Const is TRUE(), the entries of B are denoted ; if Const is FALSE(), the entries of B are denoted and . These are the values returned by LINEST in the first row of its result array in the order given in Table 28 - LINEST . The statistics in the 2 nd th Table 28 - LINEST are as follows: If Const is TRUE(): . , , and where is the element in the i th row and i th column of , , and . If Const is FALSE(): , , , where is the element in the i th row and i th column of , , and . In this case is undefined and is returned as either 0, blank or an error. If is not invertible, then the columns of X are linearly dependent. In this case an evaluator shall return an error or select any maximal linearly independent subset of these columns that if Const of omitted columns are returned as 0. 6.18.42 Summary: Syntax: Array Array Logical Logical Returns: Constraints: (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX )) or (COLUMNS( knownY ) = 1 and ROWS( knownY ) = ROWS( knownX )) or (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = 1) Semantics: knownY knownX it is set to the sequence , where Const Stats If any of the entries in knownY and knownX do not convert to Number or if any of the entries in knownY is negative, LOGEST returns an error. The result created by LOGEST if STATS Table 29 - LOGEST Table 29 - LOGEST Table … … F df SS reg SS resid If COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX ) then , , the entries of knownX in column major order are denoted with and the entries of knownY in column major order are denoted with . Otherwise but if COLUMNS( knownY ) = 1, then , , the entry in the j th column and i th row of knownX is denoted and the entry in the i th row of knownY is denoted . Otherwise but if ROWS( knownY ) = 1, then , , the entry in the j th column and i th row of knownX is denoted and the entry in the j th column of knownY is denoted . If Const is TRUE() and LOGEST returns an error. Similarly, if Const is FALSE() and LOGEST returns an error. We denote and , and define the following matrices: and for Const for Const Let denote the transpose of X is a square matrix. If is not invertible, then LOGEST shall either return an error or calculate a result as described below. If is invertible, then is a matrix B Const is TRUE(), the entries of B are denoted ; if Const is FALSE(), the entries of B are denoted and . Then are the values returned by LOGEST in the first row of its result array in the order given in Table 1 - Operators . The statistics in the 2 nd th Table 1 - Operators are as follows: If Const is TRUE(): . , , and where is the element in the i th row and i th column of , , and . If Const is FALSE(): , , , where is the element in the i th row and i th column of , , and . In this case is undefined and is returned as either 0, blank or an error. If is not invertible, then the columns of X are linearly dependent. In this case an evaluator shall return an error or select any maximal linearly independent subset of these columns that if Const is TRUE() includes the first column and perform the above calculations with that subset. In the latter case the coefficients of omitted columns are returned as 1. 6.18.43 Summary: Syntax: Number Number Number Returns: Constraints: Semantics: See also 6.18.44 6.18.44 Summary: Syntax: Number Number m Number s Logical Returns: Constraints: s Semantics: If Cumulative is TRUE(), LOGNORMDIST returns the value if X > 0 and 0 otherwise. 6.18.45 Summary: Syntax: NumberSequenceList + Returns: Constraints: Semantics: should See also 6.18.46 6.18.48 6.18.46 Summary: Syntax: Any + Returns: Constraints: Semantics: N See also 6.18.45 6.18.48 6.18.49 6.18.47 Summary: R Syntax: MEDIAN( { NumberSequenceList X}+ ) Returns: Number Semantics: MEDIAN logically ranks the numbers (lowest to highest). If given an odd number of values, MEDIAN returns the middle value. If given an even number of values, MEDIAN returns the arithmetic average of the two middle values. 6.18.48 Summary: Syntax: NumberSequenceList + Returns: Constraints: Semantics: should See also 6.18.45 6.18.49 6.18.49 Summary: Syntax: Any + Returns: Constraints: Semantics: See also 6.18.48 6.18.46 6.18.50 Summary: Syntax: ForceArray NumberSequence Semantics: 6.18.51 Summary: Syntax: Integer Integer Number ● x ● ● p Returns: Constraints: ● x r ● p p Semantics: NEGBINOMDIST returns the probability that there will be x r p Note: 6.18.52 Summary: Syntax: Number Number Number Logical Returns: Constraints: Semantics: is Mean and is StandardDeviation. If Cumulative is FALSE(), NORMDIST returns the value If Cumulative is TRUE(), NORMDIST returns the value See also 6.18.54 6.18.53 Summary: Syntax: Number Number Number Returns: Constraints: Semantics: See also 6.18.52 6.18.54 Summary: Syntax: Number Returns: Constraints: Semantics: This is exactly NORMDIST(x;0;1;TRUE()). See also 6.18.52 6.18.55 6.18.55 Summary: Syntax: Number Returns: Constraints: Semantics: See also 6.18.53 6.18.54 6.18.56 Summary: Syntax: ForceArray Array independent_Values ForceArray Array dependent_Values Returns: Constraints: independent_Values dependent_Values independent_Values dependent_Values Semantics: independent_Values represents the array of the first data set. (X-Values) dependent_Values represents the array of the second data set. (Y-Values) For an empty element or an element of type Text or Boolean in independent_Values dependent_Values 6.18.57 Summary: Syntax: ERCENTILE( NumberSequenceList Data ; Number x ) Returns: Constraints: ● ● Semantics: ● Data ● x If x is not a multiple of , PERCENTILE interpolates to obtain the value between two data points. Returns the x -th sample percentile of data values in Data . A percentile returns the scale value for a data series which goes from the smallest (Alpha=0) to the largest value (Alpha=1) of a data series. For Alpha = 25%, the percentile means the first quartile; Alpha = 50% is the MEDIAN. See also 6.18.45 6.18.47 6.18.48 6.18.58 6.18.64 6.18.65 6.18.58 Summary: Syntax: PERCENTRANK( NumberSequenceList Data ; Number X [ ; Integer Significance = 3 ] ) Returns: Constraints: ● ● ● Semantics: ● Data is the array or range of data with numeric values. ● X is the value whose rank is to be determined. ● Significance is an optional value that identifies the number of significant digits for the returned percentage value. If omitted, a value of 3 is used (0.xxx). Returns the rank of a value in a data set Data For COUNT( Data Data X Data Data X Data X X X In the special case where COUNT( Data X Data See also 6.18.57 6.18.65 6.18.59 Summary: k n Syntax: Integer Integer Returns: Constraints: Semantics: respectively 6.18.60 Summary: Returns the number of permutations for a given number of objects (repetition allowed). Syntax: PERMUTATIONA( Integer Total ; Integer Chosen ) Returns: Constraints: Total >= 0, Chosen Semantics: Given number of objects, return the number of permutations containing number of objects, with repetition permitted. The result is 1 if = 0 and = 0, otherwise the result is 6.18.61 Summary: Returns the values of the density function for a standard normal distribution. Syntax: PHI( Number N ) Returns: Semantics: N N 6.18.62 Summary: Syntax: Integer Number l Logical Returns: Constraints: l Semantics: If Cumulative is TRUE(), POISSON returns the value 6.18.63 Summary: Returns the probability that a discrete random variable lies between two limits. Syntax: ForceArray Array ForceArray Array Number Number Returns: Constraints: ● Probability shall ● Probability shall ● Semantics: ● Data Number ). ● Probability Number ). ● Start ● End End = Start is used Suppose that denotes the indicator function that is 1 if and 0 otherwise. Then PROB returns i.e. the sum of all probabilities whose corresponding data value satisfies . Note that if then PROB returns 0 since in this case for all i. See also 6.18.64 Summary: eturns a quartile of a set of data points. Syntax: NumberSequence Integer Returns: Constraints: ● ● Semantics: ● Data ● Quart The number of the quartile to return. If Quart = 0, the minimum value is returned, which is equivalent to the MIN() function. Quart Quart Quart Quart maximum value is returned, which Based on the statistical rank of the data points in Data Quart Quart See also 6.18.45 6.18.47 6.18.48 6.18.57 6.18.58 6.18.65 6.18.65 Summary: R eturns the rank of a number in a list of numbers. Syntax: Number NumberSequenceList Number Returns: Constraints: Value shall exist in Data. Semantics: The RANK function returns the rank of a value within a list. ● Value ● Data ● Order Data Data If a number in Data Value Data 6.18.66 Summary: Returns the square of the Pearson product moment correlation coefficient through data points in known_y's and known_x's. Syntax: RSQ( arrayY ; arrayX ) Returns: Constraints: The arguments shall If an array or reference argument contains Text, Logical values, or empty cells, those values are ignored; however, cells with the value zero are included. If "arrayY" and "arrayX" are empty or have a different number of data points, then #N/A is returned. COLUMNS(arrayY) = COLUMNS(arrayX), ROWS(arrayY) = ROWS(arrayX) Semantics: The r-squared value can be interpreted as the proportion of the variance in y attributable to the variance in x. The result of the RSQ function is the same as PEARSON * PEARSON. For an empty element or an element of type Text or Boolean in arrayY arrayX See also 6.18.56 6.18.67 Summary: Syntax: NumberSequenceList + Returns: Constraints: shall Semantics: Given the expectation value and the standard deviation estimate , the skewness becomes See also 6.18.68 6.18.68 Summary: Syntax: NumberSequence + Returns: Constraints: shall Semantics: Given the expectation value and the standard deviation , the skewness becomes See also 6.18.67 6.18.69 Summary: Syntax: ForceArray Array ForceArray Array Returns: Constraints: Semantics: For an empty element or an element of type Text or Boolean in y x See also 6.18.38 6.18.76 6.18.70 Summary: Syntax: NumberSequenceList Integer|Array Returns: Constraints: N List Semantics: N See also 6.18.40 6.17.6 6.18.71 Summary: Syntax: Number Number Number Returns: Constraints: sigma Semantics: See also 6.18.33 6.18.72 Summary: Syntax: NumberSequenceList + Returns: Constraints: shall Semantics: s Note that s n n See also 6.18.74 6.18.3 6.18.73 Summary: Syntax: Any + Returns: Constraints: Semantics: The handling of string constants as parameters is implementation-defined. Either, string constants are converted to numbers, if possible and otherwise, they are treated as zero, or string constants are always treated as zero. Suppose the resulting sequence of values is x 1 x 2 let STDEVA returns See also 6.18.72 6.18.74 Summary: Syntax: NumberSequence + Returns: Constraints: Semantics: Note that σ is not the same as the sample standard deviation, s n n See also 6.18.72 6.18.3 6.18.75 Summary: Syntax: Any + Returns: Constraints: Semantics: Given the expectation value the standard deviation becomes In the sequence, only Numbers and Logical types are considered; cells with Text are converted to 0; other types are ignored. If Logical types are a distinct type, they are still included, with True considered 1 and False considered 0. Any sample The handling of string constants as parameters is implementation-defined. Either, string constants are converted to numbers, if possible and otherwise, they are treated as zero, or string constants are always treated as zero. See also 6.18.74 6.18.76 Summary: Syntax: ForceArray Array ForceArray Array Returns: Constraints: Semantics: For an empty element or an element of type Text or Boolean in measuredY X See also 6.18.38 6.18.69 6.18.77 Summary: Syntax: Number Integer Integer Returns: Constraints: df Semantics: where Note that df See also 6.18.7 6.18.10 6.18.12 6.18.21 6.18.22 6.18.31 6.18.33 6.18.37 6.18.44 6.18.51 6.18.52 6.18.62 6.18.86 6.18.78 Summary: Syntax: Number Integer Returns: Constraints: probability degreeOfFreedom Semantics: Calculates the inverse of the two-tailed t-distribution. See also LEGACY.TDIST 6.18.77 6.18.79 Summary: Syntax: Array Array Array Logical Returns: Constraints: (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX )) or (COLUMNS( knownY ) = 1 and ROWS( knownY ) = ROWS( knownX ) and COLUMNS( knownX ) = COLUMNS( newX )) or (COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = 1 and ROWS( knownX ) = ROWS( newX )) Semantics: knownY knownX it is set to the sequence , where newX -values are to be calculated. If omitted or an empty parameter, it is set to knownX Const a LINEST( knownY ; knownX ; Const ; FALSE()) either returns an error an array with 1 row and n +1 columns. If it returns an error then so does TREND. If it returns an array, we call the entries in that array . Let denote the entry in the i th row and j th column of newX . If COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = ROWS( knownX ), then TREND returns an array with ROWS( newX ) rows and COLUMNS( newX ) column, such that the entry in its i th row and j th column is . Otherwise, if COLUMNS( knownY ) = 1 and ROWS( knownY ) = ROWS( knownX ) and COLUMNS( knownX ) = COLUMNS( newX ), then TREND returns an array with ROWS( newX ) rows and 1 column, such that the entry in the i th row is . Otherwise, if COLUMNS( knownY ) = COLUMNS( knownX ) and ROWS( knownY ) = 1 and ROWS( knownX ) = ROWS( newX ), then TREND returns an array with 1 row and COLUMNS( newX ) columns, such that the entry in the j th column is . See also INTERCEPT 6.18.38 , SLOPE 6.18.69 , STEYX 6.18.76 6.18.80 Summary: Syntax: NumberSequenceList Number Returns: Constraints: cutOffFraction Semantics: Returns the mean of a data set, ignoring a proportion of high and low values. Let n be the values in the data set sorted in ascending order. Moreover let Then TRIMMEAN returns the value See also AVERAGE 6.18.3 , GEOMEAN 6.18.34 , HARMEAN 6.18.36 6.18.81 Summary: Syntax: ForceArray Array ForceArray Array Integer Integer Returns: Constraints: COLUMNS(X) = COLUMNS(Y), ROWS(X) = ROWS(Y) Semantics: 1 2 n d 1 2 m and Moreover let and where Γ is the Gamma function. (1) (2) (3) For an empty element or an element of type Text or Boolean in X the element at the corresponding position of Y is ignored, and vice versa. See also 6.18.30 6.18.77 6.18.87 6.18.82 Summary: Syntax: NumberSequence + Returns: Constraints: shall Semantics: s 2 Note that s 2 2 n n See also 6.18.84 6.18.72 6.18.3 6.18.83 Summary: Syntax: Any + Returns: Constraints: shall Semantics: Given the expectation value the estimated variance becomes In the sequence, only Numbers and Logical types are considered; cells with Text are converted to 0; other types are ignored. If Logical types are a distinct type, they are still included, with True considered 1 and False considered 0. Any sample The handling of string constants as parameters is implementation-defined. Either, string constants are converted to numbers, if possible and otherwise, they are treated as zero, or string constants are always treated as zero. See also 6.18.82 6.18.84 Summary: Syntax: NumberSequence + Returns: Constraints: Semantics: 2 Note that 2 s 2 n n If only one number is provided, returns 0. See also 6.18.82 6.18.74 6.18.3 6.18.85 Summary: Syntax: Any + Returns: Constraints: Semantics: Given the expectation value the variance becomes In the sequence, only Numbers and Logical types are considered; cells with Text are converted to 0; other types are ignored. If Logical types are a distinct type, they are still included, with True considered 1 and False considered 0. Any sample The handling of string constants as parameters is implementation-defined. Either, string constants are converted to numbers, if possible and otherwise, they are treated as zero, or string constants are always treated as zero. See also 6.18.84 6.18.86 Summary: the Weibull distribution. Syntax: Number Number Number Logical Returns: Constraints: value Semantics: value If cumulative If cumulative See also 6.18.7 6.18.10 6.18.12 6.18.21 6.18.22 6.18.31 6.18.33 6.18.37 6.18.44 6.18.51 6.18.52 6.18.62 6.18.77 6.18.87 Summary: Syntax: NumberSequenceList Number Number Returns: Constraints: sample shall Semantics: sample mean sigma sigma sample sampl e being the mean of sample and ZTEST returns See also 6.18.30 6.18.81 6.19 6.19.1 These functions convert between different representations of numbers, such as between different bases and Roman numerals. The base conversion functions xxx2BIN (such as DEC2BIN), xxx2OCT, and xxx2HEX functions return Text, while the xxx2DEC functions return Number. All of the xxx2yyy functions accept either Text or Number, though a Number is interpreted as the digits when printed in base 10. These are intended to support relatively small numbers, and have a somewhat convoluted interface and semantics, as described in their specifications. General base conversion capabilities are provided by BASE and DECIMAL. As an argument for the HEX2xxx functions, a hexadecimal number is any string consisting solely of the characters "0","1" to "9", "a" to "f" and "A" to "F". The hexadecimal output of an xxx2HEX function shall 6.19.2 Summary: Syntax: Text Returns: Constraints: shall Semantics: The characters accepted are U+004D "M", U+0044 "D", U+0043 "C", U+004C "L", U+0058 "X", U+0056 "V", U+0049 "I", U+006D "m", U+0064 "d", U+0063 "c", U+006C "l", U+0078 "x", U+0076 "v", U+0069 "i" . The following identity shall hold: ARABIC(ROMAN(x; any)) = x, when ROMAN(x; any) is not an Error. If X is an empty string, 0 is returned. See also 6.4.10 6.19.17 6.19.3 Summary: Syntax: Integer Integer Integer Returns: Constraints: h Semantics: Converts number X into text that represents the value of X in base Radix. The symbols 0-9 ( , then upper case A-Z ( U+0041 through U+005A ) are used as digits. Thus, BASE( 45745 ;36) returns “ZAP”. If MinimumLength is not supplied, the generated text uses the smallest number of characters (i.e., it does not add leading 0s). If MinimumLength is supplied, and the resulting text would normally be smaller than MinimumLength, leading 0s are added to produce text exactly MinimumLength characters long. If the text is longer than the MinimumLength argument, the MinimumLength parameter is ignored. See also 6.19.10 6.19.4 Summary: Syntax: TextOrNumber Returns: Constraints: and Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. If any digits are 2 through 9, an evaluator shall return an Error. evaluator may return an Error or 0 in such cases. 6.19.5 Summary: th Syntax: TextOrNumber Number Returns: Constraints: and Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. If any digits in X are 2 through 9, an evaluator shall return an Error. evaluator may return an Error or 0 in such cases. The resulting value is a hexadecimal value, up to 10 hexadecimal digits, with the topmost bit (40 th th 6.19.6 Summary: th Syntax: TextOrNumber Number Returns: Constraints: and Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. If any digits in X are 2 through 9, an evaluator shall return an Error. evaluator may return an Error or 0 in such cases. The resulting value is an octal value, up to 10 octal digits, with the topmost bit (30 th th s 6.19.7 Summary: th Syntax: TextOrNumber Number Returns: Constraints: and Semantics: evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a binary value, up to 10 digits, with the topmost bit (10 th s 6.19.8 Summary: th Syntax: TextOrNumber Number Returns: Constraints: and 39 39 Semantics: evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a hexadecimal value, up to 10 digits, with the topmost bit (40 th s 6.19.9 Summary: th Syntax: TextOrNumber Number Returns: Constraints: and 29 29 Semantics: evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a octal value, up to 10 digits, with the topmost bit (30 th s See also 6.19.10 Summary: Syntax: Text Integer Returns: Constraints: Semantics: X Radix 45745. An Error is returned if X Radix X Radix Radix See also 6.19.3 6.19.11 Summary: th th Syntax: TextOrNumber Number Returns: Constraints: and e Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a binary value, up to 10 digits, with the topmost bit (10 th th s 6.19.12 Summary: th Syntax: TextOrNumber Returns: Constraints: and shall Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a decimal number. 6.19.13 Summary: th th Syntax: TextOrNumber Number Returns: Constraints: shall contain hexadecimal digits (no spaces or other characters), and shall contain at least one hexadecimal digit. W hen considered as Number, INT(X)=X. Evaluators may evaluate expressions where X has 1 to 10 (inclusive) hexadecimal digits, base 10 value of X is -2 29 < X < 2 29 -1. Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is an octal value, up to 10 digits, with the topmost bit (10 th th s 6.19.14 Summary: th th Syntax: TextOrNumber Number Returns: Constraints: and e Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a binary value, up to 10 digits, with the topmost bit (10 th th s 6.19.15 Syntax: TextOrNumber Summary: th Returns: Constraints: and shall Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a decimal number. 6.19.16 Summary: th th Syntax: TextOrNumber Number Returns: Constraints: and X shall have 1 to 10 (inclusive) octal digits. Semantics: th evaluator may produce an Error, or it may convert the Logical to Number (per “Convert to Number”) and then process as a Number. The resulting value is a hexadecimal value, up to 10 digits, with the topmost bit (40 th th s 6.19.17 Summary: Syntax: Integer Integer Format = 0 ] Returns: Constraints: Semantics: To supcport legacy documents, evaluators with Logical types that are distinct from Number may The following identity shall hold: ARABIC(ROMAN(x; any)) = x, when ROMAN(x; any) is not an Error. If N is 0, an empty string is returned. Table 30 - ROMAN subtract their value from the final value. Table Roman Numeral Value Unicode Code Point I 1 U+0049 V 5 U+0056 X 10 U+0058 L 50 U+004C C 100 U+0043 D 500 U+0044 M 1000 U+004D Evaluators that accept 0 as a value of N should return the string “0”. Evaluators that accept negative values of N should include a negative sign (“-”) as the first character. The Format levels are: Table Format Meaning 0 Only subtract powers of 10, not L or V, and only if the next number is not more than 10 times greater. A number following the larger one shall classic 1 Powers of 10, and L and V may be subtracted, only if the next number is not more than 10 times greater. A number following the larger one shall 2 Powers of 10 and L, but not V, may be subtracted, also if the next number is more than 10 times greater. A number following the larger one shall 3 Powers of 10, and L and V may be subtracted, also if the next number is more than 10 times greater. A number following the larger one shall 4 Produce the fewest Roman digits possible. Also known as simplified See also 6.4.10 6.19.2 6.20 6.20.1 6.20.2 Summary: Syntax: Text Returns: Constraints: Semantics: [UNICODE] T The percent sign % in the conversion table below denotes the modulo operation. A followed by Table Fro m To Unicode Character Comment U+ U+ (c - 0x30a2) / 2 + 0xff71 katakana a-o U+ U+ (c - 0x30a1) / 2 + 0xff67 katakana small a-o U+ U+ (c - 0x30ab) / 2 + 0xff76 katakana ka-chi U+ U+ (c - 0x30ac) / 2 + 0xff76 katakana ga-dhi U+ 0xff6f katakana small tsu U+ U+ (c - 0x30c4) / 2 + 0xff82 katakana tsu-to U+ U+ (c - 0x30c5) / 2 + 0xff82 katakana du-do U+ U+ c - 0x30ca + 0xff85 katakana na-no U+ U+ (c - 0x30cf) / 3 + 0xff8a katakana ha-ho U+ U+ (c - 0x30d0) / 3 + 0xff8a katakana ba-bo U+ U+ (c - 0x30d1) / 3 + 0xff8a katakana pa-po U+ U+ c - 0x30de + 0xff8f katakana ma-mo U+ U+ (c - 0x30e4) / 2 + 0xff94) katakana ya-yo U+ U+ (c - 0x30e3) / 2 + 0xff6c katakana small ya-yo U+ U+ c - 0x30e9 + 0xff97 katakana ra-ro U+ U+ katakana wa U+ U+ katakana wo U+ U+ katakana nn U+ U+ c - 0xff01 + 0x0021 ASCII characters U+ U+ HORIZONTAL BAR => HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK U+ U+ LEFT SINGLE QUOTATION MARK => GRAVE ACCENT U+ U+ RIGHT SINGLE QUOTATION MARK => APOSTROPHE U+ U+ RIGHT DOUBLE QUOTATION MARK => QUOTATION MARK U+ U+ IDEOGRAPHIC COMMA U+ U+ IDEOGRAPHIC FULL STOP U+ U+ LEFT CORNER BRACKET U+ U+ RIGHT CORNER BRACKET U+ U+ KATAKANA-HIRAGANA VOICED SOUND MARK U+ U+ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK U+ U+ KATAKANA MIDDLE DOT U+ U+ KATAKANA-HIRAGANA PROLONGED SOUND MARK U+ U+ FULLWIDTH YEN SIGN => REVERSE SOLIDUS "\" Note 1 : Note 2 : [UAX11] [UNICODE] Note 3 : e [JISX0201] [JISX0208] See also JIS 6.20.11 6.20.3 Summary: Syntax: Number Returns: Constraints: Semantics: Returns character represented by the given numeric value. Evaluators should return an Error if N > 255. Evaluators should implement CHAR such that CODE(CHAR(N)) returns N for any 1 <= N <= 255. Note 1 : Beyond 127, some evaluators return a character from a system-specific code page, while others return the [UNICODE] character. Most evaluators do not allow values greater than 255. Note 2 : Where interoperability is a concern, expressions should use the UNICHAR function. 6.20.25 See also 6.20.5 6.20.25 6.20.26 6.20.4 Summary: Syntax: Text Returns: Semantics: Removes all non-printable characters from the string T and returns the resulting string. Evaluators should remove each particular character from the string, if and only if the character belongs to [UNICODE] class Cc (Other - Control), or to Unicode class Cn (Other - Not Assigned). The resulting string shall contain all printable characters from the original string, in the same order. The space character is considered a printable character. 6.20.5 Summary: Syntax: Text Returns: Constraints: Semantics: Returns a numeric value which represents the first letter of the given text T Behavior for code points >= 128 is implementation-defined. Evaluators may use the underlying system's code page. Evaluators should implement CODE such that CODE(CHAR(N)) returns N for 1 <= N <= 255. Note: Where interoperability is a concern, expressions should use the UNICODE function. 6.20.26 See also 6.20.3 6.20.25 6.20.26 6.20.6 Summary: Syntax: Text + Returns: Constraints: Semantics: See also 6.4.10 6.20.7 Summary: Text Syntax: Number Integer Returns: Constraints: Semantics: Returns the value formatted as a currency, using locale-specific data. D is the number of decimal places used in the result string, a negative D rounds number N D 6.20.8 Summary: Syntax: Text Text Returns: Constraints: Semantics: See also 6.20.9 6.20.20 6.4.8 6.4.7 6.20.9 Summary: Syntax: Text Text Integer Returns: Constraints: Semantics: Start See also 6.20.8 6.20.20 6.20.10 Summary: Syntax: Number Integer Logical Returns: Constraints: Semantics: Rounds value N to D decimal places (after the decimal point) and returns the result formatted as text, using locale-specific settings. If D is negative, the number is rounded to ABS(D) places to the left from the decimal point. If the optional parameter OmitSeparators is True, then group separators are omitted from the resulting string. Group separators are included in the absence of this parameter. If D is a fraction, it is rounded towards 0 as an integer (ignoring what is the closest integer). 6.20.11 Summary: Syntax: Text Returns: Constraints: Semantics: [UNICODE] T A followed by Table From Unicod e To Unicode Character Comment U+ 0x201d QUOTATION MARK => RIGHT DOUBLE QUOTATION MARK U+ 0xffe5 REVERSE SOLIDUS "\" => FULLWIDTH YEN SIGN U+ 0x2018 GRAVE ACCENT => LEFT SINGLE QUOTATION MARK U+ 0x2019 APOSTROPHE => RIGHT SINGLE QUOTATION MARK U+ U+ c - 0x0021 + 0xff01 ASCII characters U+ 0x30f2 katakana wo U+ U+ (c - 0xff67) * 2 + 0x30a1 katakana small a-o U+ U+ (c - 0xff6c) * 2 + 0x30e3 katakana small ya-yo U+ 0x30c3 katakana small tsu U+ U+ (c - 0xff71) * 2 + 0x30a2 katakana a-o U+ U+ U+ (c - 0xff76) * 2 + 0x30ac katakana ga-dsu U+ U+ U+ (c - 0xff76) * 2 + 0x30ab katakana ka-chi U+ U+ U+ (c - 0xff82) * 2 + 0x30c5 katakana du-do U+ U+ U+ (c - 0xff82) * 2 + 0x30c4 katakana tsu-to U+ U+ c - 0xff85 + 0x30ca katakana na-no U+ U+ U+ (c - 0xff8a) * 3 + 0x30d0 katakana ba-bo U+ U+ U+ (c - 0xff8a) * 3 + 0x30d1 katakana pa-po U+ U+ U+ U+ (c - 0xff8a) * 3 + 0x30cf katakana ha-ho U+ U+ c - 0xff8f + 0x30de katakana ma-mo U+ U+ (c - 0xff94) * 2 + 0x30e4 katakana ya-yo U+ U+ c - 0xff97 + 0x30e9 katakana ra-ro U+ U+ katakana wa U+ U+ katakana nn U+ U+ HALFWIDTH KATAKANA VOICED SOUND MARK => FULLWIDTH U+ U+ HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK => FULLWIDTH U+ U+ HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK => FULLWIDTH U+ U+ HALFWIDTH IDEOGRAPHIC FULL STOP => FULLWIDTH U+ U+ HALFWIDTH LEFT CORNER BRACKET => FULLWIDTH U+ U+ HALFWIDTH RIGHT CORNER BRACKET => FULLWIDTH U+ U+ HALFWIDTH IDEOGRAPHIC COMMA => FULLWIDTH U+ U+ HALFWIDTH KATAKANA MIDDLE DOT => FULLWIDTH Note 1 : [UAX11] [UNICODE] Note 2 : e [JISX0201] [JISX0208] See also ASC 6.20.2 6.20.12 Summary: Syntax: Text Integer Returns: Constraints: Semantics: Length) shall return the same string as MID(T; 1; Length). The results of this function may be normalization-sensitive. 4.2 See also 6.20.13 6.20.15 6.20.19 6.20.13 Summary: Syntax: Text Returns: Constraints: Semantics: not T T The results of this function may be normalization-sensitive. 4.2 See also 6.20.23 6.13.25 6.20.12 6.20.15 6.20.19 6.20.14 Summary: Syntax: Text Returns: Constraints: Semantics: [UNICODE] not Evaluators shall Note: I I See also 6.20.27 6.20.16 6.20.15 Summary: Syntax: Text Integer Integer Returns: Constraints: Semantics: The results of this function may be normalization-sensitive. 4.2 See also 6.20.12 6.20.13 6.20.19 6.20.17 6.20.21 6.20.16 Summary: Syntax: Text Returns: Constraints: Semantics: ●. ●. ●. Evaluators shall implement this for at least the Latin letters A-Z and a-z. As with most functions, it is side-effect free, that is, it does not See also 6.20.14 6.20.27 6.20.17 Summary: Syntax: Text Number Number Text Returns: Constraints: Semantics: T Start Count New Start Count New before Start Start Start T Start Count Start Count REPLACE(T;Start;Len;New) is the same as LEFT(T;Start-1) & New & MID(T; Start+Len; LEN(T))) See also 6.20.12 6.20.13 6.20.15 6.20.19 6.20.21 6.20.18 Summary: Syntax: Text Integer Returns: Constraints: Semantics: Count Count Count See also LEFT 6.20.12 , MID 6.20.15 , RIGHT 6.20.19 , SUBSTITUTE 6.20.21 6.20.19 Summary: Syntax: Text Integer Returns: Constraints: Semantics: Length The results of this function may be normalization-sensitive. 4.2 See also 6.20.12 6.20.13 6.20.15 6.20.20 Summary: Syntax: Text Text Integer Returns: Constraints: Semantics: not case The values returned may vary depending upon th e 3.4 See also 6.20.8 6.20.9 6.20.21 Summary: Syntax: Text Text Text Integer Returns: Constraints: Semantics: T Old New Which Old New Which only Old New Old T Old New Which Which See also 6.20.12 6.20.13 6.20.15 6.20.17 6.20.19 6.20.22 Summary: Syntax: Any Returns: Constraints: Semantics: X See also 6.13.26 6.20.23 Summary: Syntax: Scalar Text Returns: Constraints: FormatCode Semantics: FormatCode and See also 6.13.26 6.20.22 6.20.24 Summary: Syntax: Text Returns: Constraints: Semantics: T A space is one or more, HORIZONTAL TABULATION (U+0009), LINE FEED (U+000A), CARRIAGE RETURN (U+000D) or SPACE (U+0020) characters. See also 6.20.12 6.20.19 6.20.25 Summary: [UNICODE] Syntax: Integer Returns: Constraints: Semantics: Returns the character having the given numeric value as [UNICODE] code point. [UNICODE] code point of type Graphic, Format or Control. Evaluators should implement UNICHAR such that UNICODE(UNICHAR(N)) returns N for any [UNICODE] code point N of type Graphic, Format or Control. See also 6.20.26 6.20.26 Summary: [UNICODE] Syntax: Text Returns: Constraints: Semantics: [UNICODE] T The results of this function may be normalization-sensitive. 4.2 See also 6.20.25 6.20.27 Summary: Syntax: Text Returns: Constraints: Semantics: [UNICODE] not Evaluators shall Note: I I See also 6.20.14 6.20.16 7 7.1 Evaluators may may implement them, and documents may require them (though such documents need not be correctly recalculated on applications which do not implement them). Documents that depend on these other capabilities can still be considered “portable documents”, but only if these additional capabilities are clearly noted (since not applications implement these additional capabilities). 7.2 Evaluators shall support inline arrays with one matrix, with one or more rows, and one or more columns. Such evaluators shall support these 2-dimensional arrays as long as the number of expressions in each row is identical; evaluators may but need not support arrays with a different number of expressions in each row. They shall support at least the following syntactic rules in the Expression values for the inline array: ● ● ● ● 7.3 Evaluators shall support the full Expression syntax in each component of an array (and not just constants). 7.4 Evaluators evaluator at least 1583. These calculations use the ISO (proleptic Gregorian) calendar, that is, the calculations use the usual rules for the ISO (Gregorian) calendar, regardless of locale. This calendar began official use in some locales in 1582, but other locales used other calendars (such as the Julian calendar) and switched to the Gregorian calendar at different times in history, if they switched at all. Evaluators may choose to support years even earlier than this; such evaluators should use a proleptic Gregorian system (continuing the years backwards as if the calendar existed in those years). Correct date calculations in this calendar system require that leap years be handled correctly. In this calendar system, leap years include 29 days in February (which otherwise has 28 days), for 366 total days in a leap year. In general, all years evenly divisible by 4 are leap years. However, years that are divisible by 100 shall 8 8.1 Expressions may depend upon features that are not implemented by all evaluators. This section identifies and defines some features not commonly implemented to enable expressions to indicate their reliance on these features. 8.2 An evaluator may have the “Distinct Logical” feature, which means that its Logical type is a distinct type from both Number and Text, and that certain other properties or queries hold true as well. Some legacy documents depend on the “distinct logical” feature. An evaluator that has the “distinct logical” feature as described in this specification shall have the following properties: ● ● ● are as