{"id":222523,"date":"2014-05-15T17:36:03","date_gmt":"2014-05-15T13:36:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=222523"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=222523","title":{"rendered":"<span class=\"post_title\">\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u044b MS Excel<\/span>"},"content":{"rendered":"<div class=\"content html_format\">     \t\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c <a href=\"https:\/\/www.devexpress.com\/products\/net\/controls\/winforms\/spreadsheet\/\">Spreadsheet<\/a>, \u0441\u0442\u0430\u043b \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0443\u043b. \u0420\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430\u0434 \u043d\u0438\u043c, \u043c\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0433\u043b\u0443\u0431\u0438\u043b\u0438\u0441\u044c \u0432 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0432 MS Excel. <\/p>\n<p>  \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044f\u0445 \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u044f\u0445. \u0410 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0443\u0445\u0438\u043c \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u00ab\u0438\u0437 \u0436\u0438\u0437\u043d\u0438\u00bb \u2014 \u044f \u0437\u0430\u043e\u0434\u043d\u043e \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u043e \u0442\u0440\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u043e\u0440\u043c\u0443\u043b \u2013 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438. <br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a01\/8cd\/61e\/a018cd61e5ce946efc1b41b3dde0f3ac.png\"\/><br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/h4>\n<p>  \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 Excel \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C\">\u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438<\/a>, <abbr title=\"Reverse-polish notation\">RPN<\/abbr>. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 RPN \u0444\u043e\u0440\u043c\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f ParsedThing. <\/p>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 ParsedThing \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u043f\u0435\u0440\u0430\u043d\u0434\u044b \u2013 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u0441\u0441\u044b\u043b\u043a\u0438;<\/b><\/p>\n<div class=\"spoiler_text\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b:  <\/p>\n<ul>\n<li>ParsedThingNumeric<\/li>\n<li>ParsedThingInt<\/li>\n<li>ParsedThingString<\/li>\n<li>ParsedThingBool<\/li>\n<li>ParsedThingMissingArg<\/li>\n<li>ParsedThingError<\/li>\n<\/ul>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432\u044b:  <\/p>\n<ul>\n<li>ParsedThingArray<\/li>\n<\/ul>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438:  <\/p>\n<ul>\n<li>ParsedThingName, ParsedThingNameX<\/li>\n<li>ParsedThingArea, ParsedThingAreaErr, ParsedThingArea3d, ParsedThingAreaErr3d, ParsedThingAreaN, ParsedThingArea3dRel<\/li>\n<li>ParsedThingRef, ParsedThingRefErr, ParsedThingRef3d, ParsedThingErr3d, ParsedThingRefRel, ParsedThingRef3dRel<\/li>\n<li>ParsedThingTable, ParsedThingTableExt<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u2013 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0435, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439;<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439:  <\/p>\n<ul>\n<li>ParsedThingFunc<\/li>\n<li>ParsedThingFuncVar<\/li>\n<\/ul>\n<p>\u0411\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b:  <\/p>\n<ul>\n<li>ParsedThingAdd<\/li>\n<li>ParsedThingSubtract<\/li>\n<li>ParsedThingMultiply<\/li>\n<li>ParsedThingDivide<\/li>\n<li>ParsedThingPower<\/li>\n<li>ParsedThingConcat<\/li>\n<li>ParsedThingLess<\/li>\n<li>ParsedThingLessEqual<\/li>\n<li>ParsedThingEqual<\/li>\n<li>ParsedThingGreaterEqual<\/li>\n<li>ParsedThingGreater<\/li>\n<li>ParsedThingNotEqual<\/li>\n<li>ParsedThingIntersect<\/li>\n<li>ParsedThingUnion<\/li>\n<li>ParsedThingRange<\/li>\n<\/ul>\n<p>\u0423\u043d\u0430\u0440\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b:  <\/p>\n<ul>\n<li>ParsedThingUnaryPlus<\/li>\n<li>ParsedThingUnaryMinus<\/li>\n<li>ParsedThingPercent<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b (\u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0442.\u0435. \u043d\u0435 \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f).<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435:  <\/p>\n<ul>\n<li>ParsedThingMemArea<\/li>\n<li>ParsedThingMemNoMem<\/li>\n<li>ParsedThingMemErr<\/li>\n<li>ParsedThingMemFunc<\/li>\n<li>ParsedThingParentheses<\/li>\n<\/ul>\n<p>\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b:  <\/p>\n<ul>\n<li>ParsedThingAttrSemi<\/li>\n<li>ParsedThingAttrIf<\/li>\n<li>ParsedThingAttrChoose<\/li>\n<li>ParsedThingAttrGoto<\/li>\n<li>ParsedThingAttrSum<\/li>\n<li>ParsedThingAttrSpace<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043f\u0430\u0440\u0443 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432.  <\/p>\n<ol>\n<li>&quot;=A1*(1+true)&quot;. \u0412\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a: {ParsedThingRef(A1), ParsedThingInt(1), ParsedThingBool(true), ParsedThingAdd, ParsedThingMultiply}<\/li>\n<li>&quot;=SUM(A1,1,\u201d2\u201d,)&quot;. \u0412\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a: {ParsedThingRef(A1), ParsedThingInt(1), ParsedThingString(\u201c2\u201d), ParsedThingMissing, ParsedThingFuncVar(\u201cSUM\u201d, 4 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430)}<\/li>\n<\/ol>\n<p>  <\/p>\n<h4>\u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f<\/h4>\n<p>  \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u0432 \u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438.<\/p>\n<p>  \u041d\u043e \u0432 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Excel \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0438 \u0431\u0435\u0437 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0435\u0439. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430\u0434\u0435\u043b\u0438\u043b\u0438 \u0432\u0441\u0435 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u044b \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u00ab\u0442\u0438\u043f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00bb. \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0430\u0434 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438, \u0430 \u043c\u043e\u0433\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0434 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 (\u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c\u0438, \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0438 \u0442.\u0434.). \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u201cA1 + B1:C1\u201d \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, Excel \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u043b\u044f \u0441\u0441\u044b\u043b\u043e\u043a A1 \u0438 B1:C1, \u0447\u0442\u043e \u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u044b \u043a \u043f\u0440\u043e\u0441\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u0434 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0435\u043a.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0442\u0438\u043f\u0430 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432:  <\/p>\n<ul>\n<li>Reference;<\/li>\n<li>Value;<\/li>\n<li>Array.<\/li>\n<\/ul>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f \u00ab\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00bb:  <\/p>\n<table>\n<tr>\n<td>\u0412\u0441\u0435 \u0432\u0438\u0434\u044b \u0441\u0441\u044b\u043b\u043e\u043a<\/td>\n<td>Reference<\/td>\n<\/tr>\n<tr>\n<td>\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043a\u0440\u043e\u043c\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432<\/td>\n<td>Value<\/td>\n<\/tr>\n<tr>\n<td>\u041c\u0430\u0441\u0441\u0438\u0432\u044b<\/td>\n<td>Array<\/td>\n<\/tr>\n<tr>\n<td>\u0412\u044b\u0437\u043e\u0432\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/td>\n<td>Value, Reference, Array<\/td>\n<\/tr>\n<\/table>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 Value, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, INDIRECT) -Reference, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u2014 Array(MMULT). <\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0431\u0438\u0432\u0430\u0442\u044c \u0433\u043e\u043b\u043e\u0432\u0443 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: Excel \u0441\u0430\u043c \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0442\u0438\u043f \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u0443\u0436\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0410 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u00ab\u043d\u0435\u044f\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432\u00bb. \u041e\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0445\u0435\u043c\u043e\u0439:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/5ef\/0f8\/810\/5ef0f8810ffe00bfc24268e05c21ba0d.png\"\/><br \/>  \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 <b>Value \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u043a Array<\/b>, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u0437\u0434\u0430\u0441\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0412 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 (<b>Array-&gt;Value<\/b>) \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u2014 \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0441\u0445\u0435\u043c\u044b, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 <b>Reference \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 Value \u0438\u043b\u0438 Array<\/b>. \u042d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0438\u0437 \u0447\u0438\u0441\u043b\u0430, \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0442.\u043f. \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f. <\/p>\n<p>  \u041f\u0440\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <b>Reference \u043a Array<\/b> \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u044f\u0447\u0435\u0435\u043a, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u0433\u0434\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0439 (\u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432) \u2014 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0432\u0435\u043d \u043e\u0448\u0438\u0431\u043a\u0435 #VALUE!<\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <b>Reference \u043a Value<\/b>. \u041c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043c\u044b \u043f\u0440\u043e\u0437\u0432\u0430\u043b\u0438 \u00ab\u041a\u0440\u043e\u0441\u0441\u0438\u043d\u0433\u00bb. \u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u0443\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/93b\/0d2\/b4f\/93b0d2b4f9086e7994a0a7bf9f52a744.png\"\/><\/p>\n<p>  \u041f\u0443\u0441\u0442\u044c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a Value \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0447\u0435\u0435\u043a \u0441 A1 \u043f\u043e A4, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u201c=B2:B3\u201d, \u0438\u043c\u0435\u044e\u0449\u0430\u044f \u0442\u0438\u043f Reference. \u0414\u0438\u0430\u043f\u0430\u0437\u043e\u043d B2:B3 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438. \u0415\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0431\u044b\u043b\u043e \u0431\u044b \u0431\u043e\u043b\u044c\u0448\u0435, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Reference \u043a Value \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0447\u0435\u0435\u043a \u0441 A1 \u043f\u043e A4 \u0432\u0435\u0440\u043d\u0443\u043b\u043e \u0431\u044b #VALUE! \u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c. \u042f\u0447\u0435\u0439\u043a\u0438 A2 \u0438 A3 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0430\u0445, \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u043c B2:B3. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Reference-&gt;Value \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u044f\u0447\u0435\u0435\u043a \u0432\u0435\u0440\u043d\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 B2:B3, \u0442.\u0435. \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f A2 \u0432\u0435\u0440\u043d\u0435\u0442 1, \u0430 \u0434\u043b\u044f A3 \u0432\u0435\u0440\u043d\u0435\u0442 2. \u0414\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0447\u0435\u0435\u043a, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a A1 \u0438 A4, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u043d\u0435\u0442 #VALUE! <\/p>\n<p>  \u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0436\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438 \u0434\u043b\u044f \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 B7:C7, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0414\u043b\u044f \u044f\u0447\u0435\u0435\u043a B6 \u0438 C6 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u043d\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 3 \u0438 4 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0430 \u0434\u043b\u044f A6 \u0438 \u2014 D6 #VALUE! \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u0441\u0442\u0440\u043e\u043a \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u0431\u044b\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u043e \u0431\u044b #VALUE! \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0447\u0435\u0435\u043a \u0441 A6 \u043f\u043e D6<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043f\u043e\u0432.<\/p>\n<p>  <b><i>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0444\u043e\u0440\u043c\u0443\u043b, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0447\u0435\u0435\u043a, \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 Value.<\/i><\/b><\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<ul>\n<li><b>&quot;=123&quot;<\/b> \u0412 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u0437\u0430\u0434\u0430\u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430, \u043e\u043d\u0430 \u0443\u0436\u0435 \u0442\u0438\u043f\u0430 Value. \u041d\u0438\u0447\u0435\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e.<\/li>\n<li><b>&quot;={1,2,3}&quot; <\/b>\u0422\u0443\u0442 \u0437\u0430\u0434\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a Value \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u2014 1. \u041e\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/li>\n<li>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 <b>&quot;=A1:B1&quot; <\/b>\u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0430\u044f\u0441\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 B2. \u041e\u043f\u0435\u0440\u0430\u043d\u0434-\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f Reference. \u041f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043a Value \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u00ab\u043a\u0440\u043e\u0441\u0441\u0438\u043d\u0433\u00bb. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u044f\u0447\u0435\u0439\u043a\u0438 B1.<\/li>\n<\/ul>\n<p>  <b><i>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438<\/i><\/b>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043d\u0438\u0445 \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043a Value \u043b\u0438\u0431\u043e \u043a Array. \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438 Array \u0444\u043e\u0440\u043c\u0443\u043b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f &quot;=B1:B2+A3:B3&quot;, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u044f\u0447\u0435\u0439\u043a\u0443 A1, \u043e\u0431\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043a \u0442\u0438\u043f\u0443 Value \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u00ab\u041a\u0440\u043e\u0441\u0441\u0438\u043d\u0433\u00bb, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u043e\u0436\u0435\u043d\u044b. \u0422.\u0435. \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e \u0441\u0443\u043c\u043c\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u044f\u0447\u0435\u0435\u043a B1 \u0438 A3.<\/p>\n<p>  <b><i>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0438 \u0441 \u043a\u0430\u043a\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0442\u0438\u043f\u043e\u043c, \u043a\u0440\u043e\u043c\u0435 Reference<\/i><\/b>. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0444\u043e\u0440\u043c\u0443\u043b\u0430 &quot;=A1:\u00abtest\u00bb&quot; \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439, \u0432\u0432\u043e\u0434 \u0442\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0435 \u2014 Excel \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0442\u0430\u043a\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u044f\u0447\u0435\u0439\u043a\u0443.<\/p>\n<p>  <b><i>\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u201c\u0438\u043c\u0435\u043d\u201d \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 \u00ab\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00bb<\/i><\/b>. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0444\u043e\u0440\u043c\u0443\u043b \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0447\u0435\u0435\u043a, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u0442\u0438\u043f\u0443 Value. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u201c\u0438\u043c\u0435\u043d\u0438\u201d name &quot;=A1:B1&quot; \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0443 A1:B1. \u042d\u0442\u043e \u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0431\u043e \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043a\u0430 #VALUE! \u041d\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 &quot;=name&quot; \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0442\u0438\u043f Value \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u044f\u0447\u0435\u0439\u043a\u0438.<\/p>\n<h4>\u041f\u0430\u0440\u0441\u0435\u0440<\/h4>\n<p>  \u041d\u0430\u043f\u0438\u0441\u0430\u0432 \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u043c\u044b \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u043c\u043e\u043d\u0441\u0442\u0440 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u043b\u0438\u043a \u0438 \u0441\u043b\u0430\u0431\u043e \u043f\u043e\u0434\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u0410 \u043e\u043d\u0430 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u044b\u043b\u0430 \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u043c\u044b \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043b\u0438 \u0443\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u0440\u0441\u0435\u0440 \u0445\u0443\u0434\u043e-\u0431\u0435\u0434\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u0414\u043b\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0432\u043e\u043e\u0440\u0443\u0436\u0438\u043b\u0441\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440\u043e\u0432 <a href=\"http:\/\/www.ssw.uni-linz.ac.at\/Coco\/\">Coco\/R<\/a>. \u0412\u044b\u0431\u043e\u0440 \u043d\u0430 \u043d\u0435\u0433\u043e \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0430\u043b \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u0431\u044b\u043b \u0441 \u043d\u0438\u043c \u0443\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0437\u043d\u0430\u043a\u043e\u043c. Coco\/R \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043b \u043c\u043e\u0438 \u043d\u0430\u0434\u0435\u0436\u0434\u044b. \u0421\u0433\u0435\u043d\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0438\u043c \u043f\u0430\u0440\u0441\u0435\u0440 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435.<\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u043d\u0435 \u0441\u0442\u0430\u043d\u0443 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Coco\/R. \u0411\u043b\u0430\u0433\u043e, \u0447\u0442\u043e <a href=\"http:\/\/www.ssw.uni-linz.ac.at\/Coco\/Doc\/UserManual.pdf\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"http:\/\/habrahabr.ru\/post\/139972\/\">\u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 \u0445\u0430\u0431\u0440\u0435<\/a>.<\/p>\n<h5>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c Coco\/R \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432<\/h5>\n<p>  \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 Coco\/R \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0435 CLS-compliant \u043a\u043e\u0434. <\/p>\n<p>  <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/x8ak87y5%28v=vs.90%29.aspx\">\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/a> \u0432 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u0445, \u0438\u043c\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u043e \u0437\u043d\u0430\u043a\u0430 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 \u0438\u0437 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u2014 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c Coco\/R, \u0431\u043b\u0430\u0433\u043e \u043f\u043e\u043b\u043d\u044b\u0439 <a href=\"http:\/\/www.ssw.uni-linz.ac.at\/Coco\/CS\/CocoSourcesCS.zip\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434<\/a> \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.<\/p>\n<p>  \u041f\u043e\u043a\u043e\u043f\u0430\u0432\u0448\u0438\u0441\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u0445 \u043d\u0430\u0448\u0435\u043b \u0442\u0440\u0438 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. \u0412\u0441\u0435 \u043e\u043d\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 ParserGen.cs. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"cs\">void GenTokens() { \tforeach (Symbol sym in tab.terminals) { \t\tif (Char.IsLetter(sym.name[0])) \t\t\tgen.WriteLine(&quot;\\tpublic const int _{0} = {1};&quot;, sym.name, sym.n); \t} } <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435, \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043a\u043e\u0434 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c, \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb429476%28v=vs.80%29.aspx\">FxCop<\/a>. \u0412 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443 \u043f\u0440\u0430\u0432\u0438\u043b. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043a\u043e\u0434 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u044b\u0445\u043e\u0434. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u2013 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0443 <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms182141.aspx\">Microsoft.Design: CA1051<\/a>. \u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u044b Parser.frame \u0438 Scanner.frame, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u0441 \u0444\u0430\u0439\u043b\u043e\u043c \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438. \u0422\u043e \u0435\u0441\u0442\u044c, \u0441\u0430\u043c Coco\/R \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<pre><code class=\"cs\">public Scanner scanner; public Errors  errors; public Token t;    \/\/ last recognized token public Token la;   \/\/ lookahead token <\/code><\/pre>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043f\u043e\u043b\u0435\u0439 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u2013 \u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c\u0438, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u2013 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438 \u0434\u043b\u044f Coco\/R \u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f <a href=\"http:\/\/www.ssw.uni-linz.ac.at\/Coco\/Tools\/VSPlugin\/\">\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0438\u0438<\/a>.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0433\u043e \u043f\u043b\u044e\u0448\u043a\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li>\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u043e\u0439;<\/li>\n<li>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u043e\u0439;<\/li>\n<li>Intellisense \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432;<\/li>\n<li>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u043e\u0439<\/li>\n<\/ul>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0444\u0438\u0447\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0434\u043e\u0431\u043d\u0430, \u043d\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0443 \u043c\u0435\u043d\u044f \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435 \u0442\u0430\u043c \u0433\u0434\u0435 \u043d\u0430\u0434\u043e.  <\/div>\n<\/div>\n<p>  \u041f\u043b\u0430\u0433\u0438\u043d \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c CLS compliant \u043a\u043e\u0434. \u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c <a href=\"http:\/\/www.ssw.uni-linz.ac.at\/Coco\/Tools\/VSPlugin\/2010\/Source.zip\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043b\u0430\u0433\u0438\u043d\u0430<\/a>, \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0442\u0435 \u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u0438 \u0441 \u0441\u0430\u043c\u0438\u043c Coco\/R.<\/p>\n<h5>\u041c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u043a\u0430\u043d\u0435\u0440 \u0438 \u043f\u0430\u0440\u0441\u0435\u0440<\/h5>\n<p>  \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f Coco\/R \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u2013 Parser \u0438 Scanner. \u041e\u0431\u0430 \u043e\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043c\u043d\u043e\u0433\u043e, \u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u044b\u0437\u043e\u0432\u043e\u0432. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043d\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u043f\u0430\u0440\u0441\u0435\u0440-\u0441\u043a\u0430\u043d\u0435\u0440. \u041f\u0435\u0440\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0441\u043d\u0443\u043b\u0430\u0441\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0441\u043d\u0443\u043b\u0430\u0441\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 Buffer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u201c\u0418\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u201d Coco\/R \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u0430\u0440\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Buffer \u0438 UTF8Buffer. \u041e\u0431\u0430 \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u043c. \u041d\u0430\u043c \u0436\u0435 \u043f\u043e\u0442\u043e\u043a \u043d\u0435 \u043d\u0443\u0436\u0435\u043d: \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0440\u0435\u0442\u044c\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e StringBuffer, \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 IBuffer:<\/p>\n<pre><code class=\"cs\">public interface IBuffer { \tstring GetString(int beg, int end); \tint Peek(); \tint Pos { get; set; } \tint Read(); } <\/code><\/pre>\n<p>  \u0421\u0430\u043c\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f StringBuffer \u043f\u0440\u043e\u0441\u0442\u0430\u044f:<\/p>\n<pre><code class=\"cs\">public class StringBuffer : IBuffer {     int stringLen;     int bufPos;     string str;     public StringBuffer(string str) {         stringLen = str.Length;         this.str = str;         if (stringLen &gt; 0)             Pos = 0;         else             bufPos = 0;     }     public int Read() {         if (bufPos &lt; stringLen)             return str[bufPos++];         else             return StreamBuffer.EOF;     }     public int Peek() {         int curPos = Pos;         int ch = Read();         Pos = curPos;         return ch;     }     public string GetString(int beg, int end) {         return str.Substring(beg, end - beg);     }     public int Pos {         get { return bufPos; }         set {             if (value &lt; 0 || value &gt; stringLen)                 throw new FatalError(&quot;buffer out of bounds access, position: &quot; + value);             bufPos = value;         }     } } <\/code><\/pre>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c<\/b><\/p>\n<div class=\"spoiler_text\">\u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043d\u0435 \u0437\u0440\u044f. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u0438\u043d\u043e\u0439 N:  <\/p>\n<ol>\n<li>\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438;<\/li>\n<li>\u0447\u0442\u0435\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 IBuffer.Read() N \u0440\u0430\u0437) ;<\/li>\n<li>\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 10 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438(\u0432\u044b\u0437\u043e\u0432 IBuffer.GetString(i-10, i) (N-10) \u0440\u0430\u0437).<\/li>\n<\/ol>\n<p>  \u041f\u0440\u0438 N = 100:<br \/>  <b>Init x 100000:<\/b><br \/>  Buffer: 171 \u043c\u0441<br \/>  StringBuffer: 2 \u043c\u0441<br \/>  <b>Read xNx10000:<\/b><br \/>  Buffer: 14 \u043c\u0441<br \/>  StringBuffer: 8\u043c\u0441<br \/>  <b>GetString x (N-10) x 10000:<\/b><br \/>  Buffer: 250 \u043c\u0441<br \/>  StringBuffer: 20 \u043c\u0441  <\/div>\n<\/div>\n<h5>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438<\/h5>\n<p>  \u0413\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f Coco\/R \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%91%D1%8D%D0%BA%D1%83%D1%81%D0%B0_%E2%80%94_%D0%9D%D0%B0%D1%83%D1%80%D0%B0\"><b><abbr title=\"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0411\u044d\u043a\u0443\u0441\u0430-\u041d\u0430\u0443\u0440\u0430\">\u0420\u0411\u041d\u0424<\/abbr><\/b><\/a>(<abbr title=\"Extended Backus\u2013Naur Form\">EBNF<\/abbr>)<b>. <\/b>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438 \u0434\u043b\u044f Coco\/R \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u0420\u0411\u041d\u0424 \u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044e \u0435\u0435 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0432\u0438\u0438 \u0441 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u043e\u0439 Coco\/R \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c atg. <\/p>\n<p>  \u041f\u0430\u0440\u0441\u0435\u0440 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430, \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442\u044c LL(k). \u0421\u043a\u0430\u043d\u0435\u0440 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Deterministic_finite_automaton\">\u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0435<\/a>.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c. \u041f\u0435\u0440\u0432\u044b\u043c \u0432 \u0444\u0430\u0439\u043b\u0435 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438 \u0438\u0434\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430:<\/p>\n<pre><code class=\"cs\">COMPILER FormulaParserGrammar <\/code><\/pre>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043a\u0430\u043d\u0435\u0440\u0430. \u0421\u043a\u0430\u043d\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 case-insensitive, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u044d\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 IGNORECASE. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438. \u041d\u0430\u043c \u043d\u0430\u0434\u043e \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0446\u0438\u0444\u0440\u044b, \u0431\u0443\u043a\u0432\u044b, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"cs\">CHARACTERS   digit\t\t= &quot;0123456789&quot;.   chars\t\t= &quot;~!@#$%^&*()_-+={[]}|\\\\:;\\&quot;',.\/?&lt;&gt; &quot;.   eol\t\t\t= '\\r'.   blank\t\t= ' '.   letter \t\t= ANY - digit - chars - eol - blank + '_'. <\/code><\/pre>\n<p>  Coco\/R \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u043d\u043e \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c. \u0422\u0430\u043a, \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 letter \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e ANY, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430.<\/p>\n<p>  \u0412\u0430\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432\u043e \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u043c \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cs\">TOKENS   ident\t\t= letter {letter | digit | '.'}.     wideident\t\t= letter {letter | digit} ('?'|'\\\\') {letter | digit | '?'|'\\\\'}.   positiveinumber\t= digit {digit}.   fnumber \t\t= \t&quot;.&quot; digit {digit} [(&quot;e&quot; | &quot;E&quot;) [&quot;+&quot; | &quot;-&quot;] digit {digit}]  \t|  \tdigit {digit}  \t\t(  \t\t\t\t&quot;.&quot; digit {digit}\t \t\t\t\t[(&quot;e&quot; | &quot;E&quot; ) [&quot;+&quot; | &quot;-&quot;] digit {digit} ]  \t\t\t| \t\t\t\t(&quot;e&quot; | &quot;E&quot;) [&quot;+&quot; | &quot;-&quot;] digit {digit} \t\t).    space\t\t= blank.    quotedOpenBracket\t= &quot;'[&quot;.   quotedSymbol\t= &quot;''&quot; | &quot;']&quot; | &quot;'@&quot; | &quot;'#&quot;.   pathPart\t\t= &quot;:\\\\&quot;.   trueConstant \t= &quot;TRUE&quot;.   falseConstant \t= &quot;FALSE&quot;. <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u201c\u0442\u043e\u0447\u043a\u0430\u201d. \u0422\u0430\u043a\u0438\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043c\u044f \u043b\u0438\u0441\u0442\u0430 \u0432 \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d. \u0422\u0430\u043a \u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440. \u041e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u0437\u043d\u0430\u043a\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0438\u043b\u0438 \u0431\u0435\u043a\u0441\u043b\u0435\u0448\u0430. \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0432 Excel \u043f\u043e\u043d\u044f\u0442\u0438\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0438 \u0435\u0433\u043e \u0442\u0440\u0443\u0434\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0435. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0438, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u043c \u043a\u0430\u043a ident \u0438 wideident, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0443\u0436\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:  <\/p>\n<ul>\n<li>\u041c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b: _,.,\\,?;<\/li>\n<li>\u041d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u0435\u043d TRUE \u0438\u043b\u0438 FALSE;<\/li>\n<li>\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0443\u043a\u0432\u043e\u0439, \u0437\u043d\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f, \u0438\u043b\u0438 \u0431\u0435\u043a\u0441\u043b\u0435\u0448\u0435\u043c;<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u0442\u0440\u043e\u043a\u0438 \u2013 \u0431\u0435\u043a\u0441\u043b\u0435\u0448, \u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c, \u043b\u0438\u0431\u043e \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d \u0438\u0437: _,.,\\,?;<\/li>\n<li>\u041d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u0445\u043e\u0436 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, A10);<\/li>\n<li>\u041d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u044f\u0442\u0430 \u043a\u0430\u043a \u0441\u0441\u044b\u043b\u043a\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 R1C1. \u041f\u0440\u0438\u0440\u043e\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u0430, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u043c\u0443 \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442: \u201cR1_test\u201d, \u201cR1test\u201d,\u201cRC1test\u201d,\u201cR\u201d,\u201cC\u201d. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u00abRCtest\u00bb \u2013 \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/li>\n<\/ul>\n<p>  \u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 quotedOpenBracket, quotedSymbol \u0438 pathPart \u0432 \u043e\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u2013 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u0432 \u0438\u043c\u0435\u043d\u0430\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435, \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u201c=Table1[Column'[1&#8242;]]\u201d \u0438\u043c\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u2018[\u2019 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u2018]\u2019. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0435\u043c\u0443 \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u043c \u043a\u0430\u043a \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b quotedSymbol(\u2018]) \u0438, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c, \u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u043d\u0430 \u043d\u0435\u043c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f.<\/p>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0443\u043a\u0430\u0436\u0435\u043c \u0441\u043a\u0430\u043d\u0435\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b \u0441\u0442\u0440\u043e\u043a \u0438 \u0442\u0430\u0431\u0443\u043b\u044f\u0446\u0438\u0438.<br \/>  IGNORE eol + &#8216;\\n&#8217; + &#8216;\\t&#8217;. \u0421\u0430\u043c\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a, \u043d\u043e \u043d\u0430 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0443 \u044d\u0442\u043e \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442.<\/p>\n<p>  \u041c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u0443 PRODUCTIONS. \u0412 \u043d\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b. \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0441\u0442\u0430\u0432\u043e\u043a \u0432\u044b\u0440\u0435\u0437\u0430\u044e, \u0442.\u043a. \u043e\u043d\u0438 \u0432\u043d\u0435\u0441\u0443\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438. \u041e\u0441\u0442\u0430\u0432\u043b\u044e \u043b\u0438\u0448\u044c \u043c\u0435\u0441\u0442\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0431\u0435\u0437 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439.<\/p>\n<p>  \u041f\u043e \u0432\u0441\u0435\u043c \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u043c (\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 Coco\/R \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434\u044b) \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 RPN \u0444\u043e\u0440\u043c\u0435, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u0435\u0433\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438. \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0447\u0435\u0439\u043a\u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u2013 Value. \u0414\u0430\u043b\u0435\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f, \u0438 \u0432 \u0432\u0435\u0442\u0432\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043f. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u201c=OFFSET(A1:B1, A1, A2)\u201d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f OFFSET \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0442\u0438\u043f Value, \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 \u0436\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043a Reference, \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0432\u0430 \u043a Value. \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u0439 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u0430\u043a\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u043a\u0430\u043a\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0432 \u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0435\u0439 \u043f\u0430\u0440\u0441\u0435\u0440\u0430 \u0442\u0430\u043a\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043d\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0424\u043e\u0440\u043c\u0443\u043b\u0443 \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439, \u0435\u0441\u043b\u0438 Excel \u043d\u0435 \u0434\u0430\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0443. \u041a\u0440\u043e\u043c\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0435 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u0436\u0435 \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u043c\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0443\u043d\u043a\u0446\u0438\u044f ROW \u043b\u0438\u0431\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u043b\u0438\u0431\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c, \u0438 \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e Reference. \u041c\u044b \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438, \u0447\u0442\u043e \u043a Reference \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0438 \u043e\u0434\u0438\u043d \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0438\u043f, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u00ab=ROW(1)\u00bb, \u00ab=ROW(\u201cA1\u201d)\u00bb \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438.<\/p>\n<p>  \u0422.\u043a. \u043d\u0430\u0448\u0430 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u043d\u043e\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u043e\u0439 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043e\u043d\u0430 \u0442\u0430\u043a \u0436\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u0430\u0440\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u041f\u0435\u0440\u0432\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u2013 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430\u043c\u0438. \u0422.\u0435. \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430.<\/p>\n<p>  \u0414\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0420\u0411\u041d\u0424 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043a\u0443 <a href=\"http:\/\/dotnet.jku.at\/applications\/visualizer\/\">EBNF Visualizer<\/a>. \u0412\u043e\u0442 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0432 \u043d\u0430\u0448\u0435\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0435 \u2013 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/103\/dc4\/afe\/103dc4afe4d5dccdac69c256f99860e5.gif\"\/><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430 \u0434\u043b\u044f Coco\/R. \u0412 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0441\u0442\u0430\u0432\u043a\u0430\u0445, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u201c(.\u201d \u0438 \u201c.)\u201d \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043d\u0443\u0436\u043d\u044b\u0439 ParsedThing \u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044e.<\/p>\n<pre><code class=\"cs\">LogicalClause&lt;OperandDataType dataType, ParsedExpression expression&gt; \t(.\tIParsedThing thing = null;\t.) \t=  \tConcatenateClause&lt;dataType, expression&gt;  \t{ \t\t( \t\t\t'&lt;'\t(.thing = ParsedThingLess.Instance;\t\t.) \t\t\t| '&gt;'\t(.thing = ParsedThingGreater.Instance;\t.) \t\t\t| &quot;&lt;=&quot;\t(.thing = ParsedThingLessEqual.Instance;\t.) \t\t\t| &quot;&gt;=&quot;\t(.thing = ParsedThingGreaterEqual.Instance;\t.) \t\t\t| &quot;&lt;&gt;&quot;\t(.thing = ParsedThingNotEqual.Instance;\t.) \t\t\t| '='\t(.thing = ParsedThingEqual.Instance;\t\t.) \t\t) \t\tConcatenateClause&lt;dataType, expression&gt;  \t\t(.\texpression.Add(thing);\t.) \t} . <\/code><\/pre>\n<p>  \u041f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u0431\u0443\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f: ConcatenateClause, AddClause, MultipyClause, PowerClause, UnaryClause, PercentClause, RangeUnionClause, RangeIntersectionClause, CellRangeClause. \u041d\u0430 CellRangeClause \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b. \u0417\u0430 \u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u043d\u0434 \u2013 OperandCommonClause. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/22d\/5bc\/dde\/22d5bcdde2d72e6b7001f15bccdc74e5.gif\"\/><\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u044c. \u041e\u043d\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e SheetName \u0438 OperandClause \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u2014 \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u201c=Sheet!A1\u201d, \u0430 \u043c\u043e\u0436\u0435\u0442 \u201c=name\u201d. \u0422\u0443\u0442 \u201cSheet\u201d \u0438 \u201cname\u201d \u2013 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, Coco\/R \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b, \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u043c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 \u0432\u043f\u0435\u0440\u0435\u0434. \u0422.\u0435. \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u2018!\u2019, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0439\u0434\u0435\u043d \u2013 \u0442\u043e \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c SheetName, \u0438\u043d\u0430\u0447\u0435 \u2013 OperandClause. \u0412\u043e\u0442 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0430:<\/p>\n<pre><code class=\"cs\">OperandCommonClause&lt;OperandDataType dataType, ParsedExpression expression&gt; \t= \t( \t\tIF(IsSheetDefinition()) \t\t( \t\t\t( \t\t\t\tSheetNameQuoted&lt;sheetDefinitionContext&gt; \t\t\t|   \t\t\t\t[ '[' FileDefinitionSimple ] \t\t\t\t[  \t\t\t\t\tSheetName&lt;out sheetName&gt;  \t\t\t\t\t[  \t\t\t\t\t\t':' SheetName&lt;out sheetName&gt;  \t\t\t\t\t\t| \t\t\t\t\t\t'|' \t\t\t\t\t\t\tSingleQuotedIdent&lt;out ddeTopic&gt; \t\t\t\t\t] \t\t\t\t] \t\t\t) \t\t\t'!' \t\t    CellReferenceClause&lt;dataType, expression&gt;  \t\t) \t| \t\tOperandClause&lt;dataType, expression&gt; \t)  . <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 IsSheetDefinition(), \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 Parser. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u043f\u043e\u043c\u0435\u0442\u0438\u0432 \u043a\u043b\u0430\u0441\u0441 \u043a\u0430\u043a partial.<\/p>\n<p>  \u041d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b SheetName \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0446\u0438\u0444\u0440\u044b \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u0446\u0438\u0444\u0440. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0438\u043c\u044f \u043b\u0438\u0441\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0432 \u0430\u043f\u043e\u0441\u0442\u0440\u043e\u0444\u044b. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, Excel \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0430\u043f\u0440\u043e\u0441\u0442\u0440\u043e\u0444\u044b.<\/p>\n<pre><code class=\"cs\">SheetName&lt;out string sheetName&gt;  \t(.\tint sheetNameStart = la.pos;.) \t= \t( \t\t[positiveinumber | fnumber] \t\t[ident] \t) \t(.\tsheetName = scanner.Buffer.GetString(sheetNameStart, la.pos);\t.) . <\/code><\/pre>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0435 \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430 \u043e\u0448\u0438\u0431\u043e\u043a. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432\u0441\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b. \u0410 \u0432\u043e \u0432\u0442\u043e\u0440\u044b\u0445, \u043e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u0447\u0438\u0441\u043b\u043e\u043c \u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b \u0438\u043b\u0438 \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u043c\u0432\u043e\u043b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 IGNORE. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432, \u043d\u043e \u0443\u0436\u0435 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041f\u0440\u044f\u043c\u043e \u0432 \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430 \u043c\u0435\u0436\u0434\u0443 \u0447\u0438\u0441\u043b\u043e\u043c \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0437\u0430 \u043d\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c:<\/p>\n<pre><code class=\"cs\">SheetName&lt;out string sheetName&gt;  \t(.\tint sheetNameStart = la.pos;.) \t=  \t( \t\tpositiveinumber | fnumber \t\t[\t \t\t\tIF(la.pos - t.pos == t.val.Length) \t\t\tident \t\t] \t\t| \t\tident \t) \t(.\tsheetName = scanner.Buffer.GetString(sheetNameStart, la.pos);\t.) . <\/code><\/pre>\n<p>  \u0412 OperandClause \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u0438\u0437 OperandCommonClause, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043b\u0438\u0441\u0442, \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u043a\u043d\u0438\u0433\u0443 \u0438\u043b\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a DDE. \u0418\u0437 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 ArrayClause, StringConstant(\u043e\u0431\u0430 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043b\u0438\u0441\u0442), CellReferenceClause, \u043b\u0438\u0431\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u043c \u0441\u043a\u043e\u0431\u043a\u0443 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043d\u0430\u0447\u0430\u043b\u0443 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u2013 \u043a LogicalClause.<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/52c\/e3b\/345\/52ce3b3453a54f1bbc4712212e18912c.gif\"\/><\/p>\n<pre><code class=\"cs\">OperandClause&lt;OperandDataType dataType, ParsedExpression expression&gt; \t= \t( \t\t\tCellReferenceClause&lt;dataType, expression&gt;  \t\t|  \t\t\tArrayClause&lt;dataType, expression&gt; \t\t|  \t\t\tStringConstant&lt;expression, dataType&gt; \t) \t| \t\t'('  \t\t\tCommonCellReference&lt;dataType, expression&gt; \t\t')'  \t\t(.\texpression.Add(ParsedThingParentheses.Instance);.) . <\/code><\/pre>\n<p>  CellReferenceClause \u043d\u0430\u0432\u0435\u0440\u043d\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u0432 \u043d\u0435\u043c \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u0432\u0438\u0434\u044b \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u043e\u0432:<\/p>\n<pre><code class=\"cs\">CellReferenceClause&lt;OperandDataType dataType, ParsedExpression expression&gt; \t= \t( \t\t\tIF (IsTableDefinition()) \t\t\tTableReferenceExpressionClause&lt;dataType, expression&gt; \t\t| \t\t\tIF (IsFunctionDefinition()) \t\t\tFunctionClause&lt;dataType, expression&gt; \t\t| \t\t\tIF (IsDefinedNameDefinition()) \t\t\tDefinedNameClause&lt;dataType, expression&gt;  \t\t|  \t\t\tIF(IsRCCellPosition())  \t\t\tCellPositionRCClause&lt;dataType, expression&gt;  \t\t| \t\t\tIF(IsA1CellPosition())  \t\t\tCellPositionA1Clause&lt;dataType, expression&gt;  \t\t| \t\t\tCellError&lt;dataType, expression&gt;  \t\t|  \t\t\tTermNumber&lt;expression&gt; \t\t|  \t\t\tBoolConstant&lt;expression, dataType&gt; \t\t|  \t\t\twideident \t\t\t(.\texpression.Add(new ParsedThingName(t.val);.) \t) . <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432. \u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0433\u0440\u0430\u043c\u043c\u0430\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u043e\u0432. <\/p>\n<h5>\u041f\u0430\u0440\u0441\u0438\u043d\u0433 \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438 \u00ab\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u00bb<\/h5>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432, \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435. <\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/736\/518\/71c\/73651871cd38b6058c5477a5dcb1e758.png\"\/><\/p>\n<p>  \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0435, \u0430 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u043d\u0430\u0434\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0430\u0440\u0441\u0435\u0440, \u043d\u0435 \u043e\u0441\u0438\u043b\u0438\u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0432\u043e\u0437\u0432\u0440\u0430\u0448\u0430\u043b \u0432\u0441\u0435\u0433\u0434\u0430 null. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u0441 \u043d\u0435\u0433\u043e, \u043d\u043e \u043a\u0430\u043a \u0443\u0437\u043d\u0430\u0442\u044c \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u043e\u0438\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430? \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u0441\u0435\u0440 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e \u0445\u043e\u0434\u0443 \u0447\u0442\u0435\u043d\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043f\u043e \u043c\u0435\u0441\u0442\u0430\u043c. \u0422\u0430\u043a, \u0432\u0441\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u043e \u0442\u0438\u043f\u0430\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445. \u041f\u0430\u0440\u0441\u0435\u0440 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 <\/p>\n<pre><code class=\"cs\">void RegisterCellRange(CellRange range, int sheetDefinitionIndex, int position, int length) <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0447\u0442\u0435\u043d\u0438\u044f, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u0447\u043d\u043e \u043e\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u0438\u043b\u0438 \u043d\u0435\u0442, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0441\u0441\u044b\u043b\u043e\u043a.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u0436\u0435 \u0441\u0442\u0430\u043b \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u2013 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f. \u0412 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u201c=1*(1+2\u201d \u043d\u0430\u0440\u0443\u0448\u0435\u043d \u0431\u0430\u043b\u0430\u043d\u0441 \u0441\u043a\u043e\u0431\u043e\u043a, \u043d\u043e, \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0431\u044b\u043b \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u043e\u0431\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0422\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u0434\u043e\u043f\u0438\u0441\u0430\u0432 \u043a \u043d\u0435\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u0430\u0440\u0441\u0435\u0440 \u0441\u0430\u043c \u044d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0430\u0436\u0435\u0442 \u0433\u0434\u0435 \u0438 \u0447\u0435\u0433\u043e \u043f\u043e \u0435\u0433\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u043d\u0430\u043c OperandClause \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:  <\/p>\n<pre><code class=\"cs\">'('  \tCommonCellReference&lt;dataType, expression&gt; \t(. \t\tif(la.val != &quot;)&quot;) \t\t\tparserContext.RegisterSuggestion(new FunctionCloseBracketSuggestion(la.pos)); \t.) ')'  <\/code><\/pre>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0441\u0435 \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u0435\u043b\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0432\u043e\u0434\u044f\u0442 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u044b \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443.<\/p>\n<h4>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/h4>\n<p>  Excel, \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0443\u044e \u0436\u0438\u0437\u043d\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u043d, \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445.<\/p>\n<p>  <b>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 AttrSemi.<\/b> \u042d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0432 \u0442\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 volatile-\u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<p>  <b>\u041a\u043b\u0430\u0441\u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 Mem.<\/b> \u0421\u044e\u0434\u0430 \u0432\u0445\u043e\u0434\u044f\u0442 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u0418\u0445 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043e\u043a. \u041f\u043e \u0441\u0443\u0442\u0438, \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u0435\u0440\u0442\u043a\u043e\u0439 \u043d\u0430\u0434 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f, \u0437\u0430 \u043d\u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0434\u0430\u0441\u0442 Mem. \u041e\u0442\u043b\u0438\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u043b\u044c\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0442. <\/p>\n<ul>\n<li>ParsedThingMemFunc \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0438 \u043d\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 =INDIRECT(\u00abA1\u00bb):B1 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u043e \u0432 MemFunc, \u0442.\u043a. \u0444\u0443\u043d\u043a\u0446\u0438\u044f INDIRECT \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f volatile \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0438 \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/li>\n<li>ParsedThingMemArea. \u0417\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0436\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0438 \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0432 \u0441\u0442\u0435\u043a \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u043e, \u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/li>\n<li>ParsedThingMemErr. \u0417\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043e, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0432\u043d\u043e \u043e\u0448\u0438\u0431\u043a\u0435.<\/li>\n<li>ParsedThingMemNoMem. \u041f\u0440\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 Excel \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u044f \u0442\u0430\u043a\u043e\u0435 \u043d\u0438 \u0440\u0430\u0437\u0443 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b.<\/li>\n<\/ul>\n<p>  <b>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 AttrSum<\/b> \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0437\u0430\u043f\u0438\u0441\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 SUM \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442.<\/p>\n<p>  <b>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 AttrIf<\/b> \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u043e\u0434\u043d\u0438\u043c \u0438\u043b\u0438 \u0434\u0432\u0443\u043c\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438 Goto \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 IF. \u041d\u0430\u043f\u043e\u043c\u043d\u044e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 IF: IF(\u0443\u0441\u043b\u043e\u0432\u0438\u0435, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_\u0438\u0441\u0442\u0438\u043d\u0430, [\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435_\u043b\u043e\u0436\u044c]). \u0418\u0437 \u0434\u0432\u0443\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0438 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c, \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 =IF(condition,\u201dv_true\u201d,\u201dv_false\u201d) Excel \u0433\u0443\u0441\u0442\u043e \u0440\u0430\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/957\/657\/6de\/9576576de8cbdbd60706cec064f42fa2.png\"\/><\/p>\n<p>  \u0412\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u0442 \u0442\u0430\u043a. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 condition \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0435\u043a. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043d\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0438\u0434\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 IF. \u041e\u043d \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0435 \u0441\u0442\u0435\u043a\u0430. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0438\u0441\u0442\u0438\u043d\u043d\u043e \u2014 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442. \u0415\u0441\u043b\u0438 \u043b\u043e\u0436\u043d\u043e, \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u201cv_false\u201d. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u201cv_true\u201d, \u043b\u0438\u0431\u043e \u201cv_false\u201d \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0435\u043a. \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 Goto, \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u043b\u0438 \u0432\u0442\u043e\u0440\u043e\u0439. \u041d\u043e \u043e\u0431\u0430 \u043e\u043d\u0438 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043d\u0435\u0446 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f (\u043b\u0438\u0431\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u044b\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f).<\/p>\n<p>  <b>AttrChoose<\/b> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0444\u0443\u043d\u043a\u0446\u0438\u044f CHOOSE \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0434\u0438\u043d, \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0435. <br \/>  \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043d\u0430 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u043b\u0438\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c. \u0412 AttrChoose \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u0439, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430. \u041f\u043e\u0441\u043b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0439 AttrGoto, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043a\u043e\u043d\u0435\u0446 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 CHOOSE \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<p>  <b>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 Space<\/b> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0438 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f. \u0422\u0438\u043f\u043e\u0432 \u0432\u0441\u0435\u0433\u043e \u0448\u0435\u0441\u0442\u044c:  <\/p>\n<ul>\n<li>SpaceBeforeBaseExpression,<\/li>\n<li>CarriageReturnBeforeBaseExpression,<\/li>\n<li>SpaceBeforeOpenParentheses,<\/li>\n<li>CarriageReturnBeforeOpenParentheses,<\/li>\n<li>SpaceBeforeCloseParentheses,<\/li>\n<li>CarriageReturnBeforeCloseParentheses,<\/li>\n<li>SpaceBeforeExpression;<\/li>\n<\/ul>\n<p>  \u0412\u0437\u0433\u043b\u044f\u043d\u0443\u0432 \u043d\u0430 \u044d\u0442\u0438 \u0442\u0438\u043f\u044b \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e Excel \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u043a\u043e\u043c &#8216;=&#8217;. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0442\u0430\u043a \u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442.<\/p>\n<h4>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h4>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043d\u0430\u0448 \u043a\u043e\u043d\u0442\u0440\u043e\u043b \u0442\u043e\u043b\u044c\u043a\u043e-\u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0443\u0447\u0438\u043b\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OpenXML, \u043c\u044b \u043f\u043e\u0441\u043f\u0435\u0448\u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0434\u0435\u043b\u0435. \u0418 \u0441\u0430\u043c\u044b\u0439 \u043b\u0443\u0447\u0448\u0438\u0439 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u2013 \u043d\u0430\u0439\u0442\u0438 \u043c\u043d\u043e\u0433\u043e- \u043c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0433\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0422\u0430\u043a \u043c\u044b \u043d\u0430\u043a\u0430\u0447\u0430\u043b\u0438 \u043e\u043a\u043e\u043b\u043e 10\u043a \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 OpenXML \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043a\u0443. \u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u0434\u043b\u044f \u043d\u0435\u0435 \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0444\u0435\u0440\u043c\u0435. \u041a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0447\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438 \u0447\u0438\u0442\u0430\u0435\u0442-\u043f\u0438\u0448\u0435\u0442 \u0444\u0430\u0439\u043b\u044b. \u041f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u043a\u0430\u043a\u0438\u0445 \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0432\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043b\u043e\u0433. \u0422\u0430\u043a \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043e\u0442\u043b\u0430\u0434\u0438\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  \u041f\u043e \u043c\u0435\u0440\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b, \u0442\u0430\u043a \u0438 \u0444\u0438\u0447\u0438. \u0422\u0430\u043a \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f 20\u043a xls \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 15\u043a csv \u0444\u0430\u0439\u043b\u043e\u0432. \u0418 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435-\u0437\u0430\u043f\u0438\u0441\u044c, \u043d\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442.<\/p>\n<p>  \u041e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u043d\u0438\u0439 \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0444\u043e\u0440\u043c\u0443\u043b \u0432 Excel \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u0444\u043e\u0440\u043c\u0443\u043b \u0438\u0437 \u0442\u0435\u0445 \u0436\u0435 10\u043a OpenXML \u0438 20\u043a xls \u0444\u0430\u0439\u043b\u043e\u0432. \u0424\u0430\u0439\u043b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u043c\u0435\u0447\u0430\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0438 \u043d\u0430 \u043b\u0438\u0441\u0442\u0435 \u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u0442\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043c\u044b \u0443\u0431\u0438\u043b\u0438 \u0434\u0432\u0443\u0445 \u0437\u0430\u0439\u0446\u0435\u0432 \u2013 \u043e\u0442\u043b\u0430\u0434\u0438\u043b\u0438 \u043f\u0430\u0440\u0441\u0435\u0440 \u0444\u043e\u0440\u043c\u0443\u043b \u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Excel.<\/p>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u044b \u043d\u0435 \u0438\u0437\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0442\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u2013 \u0443\u0436 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u041d\u043e \u0443\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u0438\u0437\u0443\u0447\u0438\u043b\u0438 \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438, \u0438 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u043c. \u041b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0434 \u043d\u0438\u043c, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0438 \u0412\u0430\u043c \u0431\u044b\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e. <\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!      \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/company\/devexpress\/blog\/222523\/\"> http:\/\/habrahabr.ru\/company\/devexpress\/blog\/222523\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">     \t\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0430\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c <a href=\"https:\/\/www.devexpress.com\/products\/net\/controls\/winforms\/spreadsheet\/\">Spreadsheet<\/a>, \u0441\u0442\u0430\u043b \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0443\u043b. \u0420\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430\u0434 \u043d\u0438\u043c, \u043c\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0433\u043b\u0443\u0431\u0438\u043b\u0438\u0441\u044c \u0432 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0432 MS Excel. <\/p>\n<p>  \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b, \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044f\u0445 \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u044f\u0445. \u0410 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0441\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u0443\u0445\u0438\u043c \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u0430\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u00ab\u0438\u0437 \u0436\u0438\u0437\u043d\u0438\u00bb \u2014 \u044f \u0437\u0430\u043e\u0434\u043d\u043e \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u043e \u0442\u0440\u0435\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0444\u043e\u0440\u043c\u0443\u043b \u2013 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438. <br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/getpro\/habr\/post_images\/a01\/8cd\/61e\/a018cd61e5ce946efc1b41b3dde0f3ac.png\"\/>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-222523","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/222523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=222523"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/222523\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=222523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=222523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=222523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}