በ excel ውስጥ ያለው የመረጃ ጠቋሚ እና ፍለጋ ተግባራት ለ vpr ምርጥ አማራጭ ናቸው። የተግባር መረጃ ጠቋሚ እና ፍለጋ በ excel - ምርጥ አማራጭ ለ vpr በመስመር ላይ በቁጥር ተከታታይ ቅጦችን ይፈልጉ

ይህ አጋዥ ስልጠና ስለ ተግባሮቹ ዋና ጥቅሞች ይናገራል INDEXእና ግጥሚያበ Excel ውስጥ, ይህም ከ ጋር ሲወዳደር የበለጠ ማራኪ ያደርጋቸዋል VLOOKUP. ተግባሩ የሚያጋጥሙትን ብዙ ውስብስብ ስራዎችን በቀላሉ ለመቋቋም የሚረዱዎትን በርካታ የቀመር ምሳሌዎችን ታያለህ። VLOOKUPአቅም የሌለው።

በበርካታ የቅርብ ጊዜ መጣጥፎች ውስጥ የተግባርን መሰረታዊ ነገሮች ለጀማሪ ተጠቃሚዎች ለማስረዳት የተቻለንን ጥረት አድርገናል። VLOOKUPእና ለላቁ ተጠቃሚዎች ይበልጥ የተወሳሰቡ ቀመሮችን ምሳሌዎች አሳይ። አሁን እርስዎን ከመጠቀም ለማሰናከል ካልሆነ እንሞክራለን። VLOOKUP, ከዚያም ቢያንስ በ Excel ውስጥ ቀጥ ያለ ፍለጋን ለመተግበር አማራጭ መንገዶችን አሳይ.

ይህ ለምን ያስፈልገናል? - ትጠይቃለህ. አዎ, ምክንያቱም VLOOKUPበ Excel ውስጥ ብቸኛው የፍለጋ ተግባር አይደለም ፣ እና ብዙ ውሱንነቶች በብዙ ሁኔታዎች የሚፈልጉትን ውጤት እንዳያገኙ ይከለክላሉ። በሌላ በኩል, ተግባሮቹ INDEXእና ግጥሚያ- የበለጠ ተለዋዋጭ እና ከእነሱ የበለጠ ማራኪ የሚያደርጋቸው በርካታ ባህሪዎች አሏቸው VLOOKUP.

ስለ INDEX እና MATCH መሰረታዊ መረጃ

የዚህ አጋዥ ስልጠና ዓላማ የተግባሮቹን አቅም ለማሳየት ስለሆነ INDEXእና ግጥሚያበ Excel ውስጥ አቀባዊ ፍለጋን ለመተግበር በአገባባቸው እና በመተግበሪያቸው ላይ አንቀመጥም።

ዋናውን ነገር ለመረዳት አስፈላጊውን ዝቅተኛውን እዚህ እንሰጣለን እና ከዚያ የመጠቀም ጥቅሞችን የሚያሳዩ ቀመሮችን በዝርዝር እንመረምራለን INDEXእና ግጥሚያከሱ ይልቅ VLOOKUP.

INDEX - የተግባሩ አገባብ እና አተገባበር

ተግባር INDEX(INDEX) በኤክሴል ውስጥ በተሰጠው ረድፍ እና አምድ ቁጥሮች ላይ ካለው ድርድር ዋጋን ይመልሳል። ተግባሩ የሚከተለው አገባብ አለው፡-


እያንዳንዱ ክርክር በጣም ቀላል ማብራሪያ አለው፡-

  • ድርድር(array) እሴቱን የሚወጣበት የሴሎች ክልል ነው።
  • ረድፍ_ቁጥር(rownumber) እሴቱን ለማውጣት በድርድር ውስጥ ያለው የረድፍ ቁጥር ነው። ካልተገለጸ ክርክር ያስፈልጋል አምድ_ቁጥር(የአምድ_ቁጥር)።
  • አምድ_ቁጥር(የአምድ_ቁጥር) እሴቱን ለማውጣት በድርድር ውስጥ ያለው የአምድ ቁጥር ነው። ካልተገለጸ ክርክር ያስፈልጋል ረድፍ_ቁጥር(መስመር_ቁጥር)

ሁለቱም ክርክሮች ከተሰጡ, ከዚያም ተግባሩ INDEXበተጠቀሰው ረድፍ እና አምድ መገናኛ ላይ ያለውን ዋጋ ከሕዋሱ ይመልሳል።

ቀላል የተግባር ምሳሌ ይኸውና INDEX(INDEX)፡-

ማውጫ(A1:C10,2,3)
=INDEX(A1:C10,2,3)

ቀመሩ በክልል ውስጥ ይፈልጋል A1፡C10እና የሴሉን ዋጋ ወደ ውስጥ ይመልሳል 2ኛመስመር እና 3ሚአምድ, ማለትም ከሴል C2.

በጣም ቀላል, ትክክል? ነገር ግን, በተግባር, የትኛው ረድፍ እና አምድ እንደሚፈልጉ ሁልጊዜ አያውቁም, እና ስለዚህ የተግባር እርዳታ ያስፈልግዎታል ግጥሚያ.

MATCH - የተግባሩ አገባብ እና አተገባበር

ተግባር ግጥሚያ(MATCH) በኤክሴል ውስጥ የተወሰነ እሴት በሴሎች ክልል ውስጥ ፈልጎ በክልል ውስጥ ያለውን አንጻራዊ ቦታ ይመልሳል።

ለምሳሌ ፣ በክልል ውስጥ ከሆነ B1፡B3የኒው ዮርክ ፣ ፓሪስ ፣ ለንደን እሴቶችን ይይዛል ፣ ከዚያ የሚከተለው ቀመር አንድ አሃዝ ይመልሳል 3 ምክንያቱም "ለንደን" በዝርዝሩ ውስጥ ሦስተኛው ንጥል ነው.

MATCH("ለንደን"፣ቢ1፡ቢ3፣0)
=MATCH("ለንደን",B1:B3,0)

ተግባር ግጥሚያ(MATCH) የሚከተለው አገባብ አለው፡-

MATCH(የፍለጋ_እሴት፣ ፍለጋ_ድርድር፣)
MATCH(የፍለጋ_እሴት፣ ፍለጋ_ድርድር፣ [ተዛማጅ_አይነት])

  • የፍለጋ_ዋጋ(lookup_value) የሚፈልጉት ቁጥር ወይም ጽሑፍ ነው። ነጋሪው እሴት፣ ቡሊያን ወይም የሕዋስ ማጣቀሻን ጨምሮ ሊሆን ይችላል።
  • ፍለጋ_ድርድር(lookup_array) መፈለግ ያለበት የሕዋስ ክልል ነው።
  • ግጥሚያ_አይነት(ተዛማጅ_አይነት) - ይህ ነጋሪ እሴት ተግባሩን ይናገራል ግጥሚያትክክለኛ ተዛማጅ ወይም ግምታዊ ግጥሚያ ለማግኘት ይፈልጉ እንደሆነ፡-
    • 1 ወይም አልተገለጸም።- ከፍተኛውን ዋጋ ከሚፈለገው ያነሰ ወይም እኩል ያገኛል። ወደ ላይ እየታየ ያለው ድርድር በከፍታ ቅደም ተከተል ማለትም ከትንሹ ወደ ትልቁ መደርደር አለበት።
    • 0 - የመጀመሪያውን ዋጋ ከተፈለገው ጋር እኩል ያገኛል. ለማጣመር INDEX/ግጥሚያሁልጊዜ ትክክለኛ ግጥሚያ ይፈልጋሉ፣ ስለዚህ ሶስተኛው ተግባር ነጋሪ እሴት ግጥሚያእኩል መሆን አለበት 0 .
    • -1 - ትንሹን እሴት ከሚፈለገው እሴት የበለጠ ወይም እኩል ያገኛል። እየታየ ያለው ድርድር በቁልቁለት መደርደር አለበት፣ ማለትም ከትልቁ ወደ ትንሹ።

በመጀመሪያ እይታ, የተግባሩ ጥቅሞች ግጥሚያጥርጣሬን ይፈጥራል። በክልል ውስጥ የአንድን ንጥረ ነገር አቀማመጥ ማን ማወቅ አለበት? የዚህን ንጥረ ነገር ዋጋ ማወቅ እንፈልጋለን!

የሚፈልጉት እሴት አንጻራዊ ቦታ (ማለትም የረድፍ እና/ወይም የአምድ ቁጥር) ለክርክር ነጥቦቹ በትክክል መግለጽ ያለብን መሆኑን ላስታውስህ። ረድፍ_ቁጥር(መስመር_ቁጥር) እና/ወይም አምድ_ቁጥር(የአምድ_ቁጥር) ተግባራት INDEX(INDEX) እንደምታስታውሱት, ተግባሩ INDEXበተሰጠው ረድፍ እና አምድ መገናኛ ላይ እሴቱን መመለስ ይችላል, ነገር ግን በየትኛው ረድፍ እና አምድ ላይ ፍላጎት እንዳለን ሊወስን አይችልም.

በ Excel ውስጥ INDEX እና MATCHን እንዴት መጠቀም እንደሚቻል

አሁን ስለ እነዚህ ሁለት ተግባራት መሰረታዊ መረጃን ካወቁ, እንዴት ተግባራቱ ቀድሞውኑ ግልጽ እየሆነ እንደመጣ አምናለሁ ግጥሚያእና INDEXአብሮ መስራት ይችላል። ግጥሚያበተሰጠው የሕዋስ ክልል ውስጥ የተፈለገውን እሴት አንጻራዊ ቦታ ይገልጻል፣ እና INDEXያንን ቁጥር (ወይም ቁጥሮች) ይጠቀማል እና ውጤቱን ከተዛማጅ ሕዋስ ይመልሳል.

አሁንም ሙሉ በሙሉ ግልጽ አይደለም? ባህሪያትን ይወክላሉ INDEXእና ግጥሚያበዚህ መልክ፡-

ኢንዴክስ(፣(MATCH) የሚፈለገው ዋጋ,የምንፈልገው አምድ,0))
=INDEX( የሚወጣበት አምድ;(MATCH( የሚፈለገው ዋጋ;የምንፈልገው አምድ;0))

በምሳሌ ለመረዳት እንኳን ቀላል የሚሆን ይመስለኛል። የሚከተለው የክልል ዋና ከተማዎች ዝርዝር አለህ እንበል፡-

የሚከተለውን ቀመር በመጠቀም ጃፓን ከዋና ከተማዋ የአንዷን ህዝብ እንፈልግ።

INDEX($D$2:$D$10፣MATCH("ጃፓን"፣$B$2:$B$10,0))
=INDEX($D$2:$D$10;MATCH("ጃፓን";$B$2:$B$10;0))

አሁን እያንዳንዱ የዚህ ቀመር አካል የሚያደርገውን እንከፋፍል፡-

  • ተግባር ግጥሚያ(MATCH) በአንድ አምድ ውስጥ "ጃፓን" የሚለውን ዋጋ ይፈልጋል እና በተለይም በሴሎች ውስጥ B2፡B10, እና ቁጥር ይመልሳል 3 በዝርዝሩ ውስጥ "ጃፓን" በሦስተኛ ደረጃ ላይ ስለሚገኝ.
  • ተግባር INDEX(INDEX) ይጠቀማል 3 ለክርክር ረድፍ_ቁጥር(መስመር_ቁጥር)፣ ከየትኛው ረድፍ እሴቱ መመለስ እንዳለበት ይገልጻል። እነዚያ። ቀላል ቀመር ተገኝቷል-

    INDEX($D$2:$D$10.3)
    =INDEX($D$2:$D$10,3)

    ቀመሩ እንዲህ ይላል፡ ከ ሕዋሳት ውስጥ ይመልከቱ D2ከዚህ በፊት ዲ10እና እሴቱን ከሶስተኛው ረድፍ ማለትም ከሴል ውስጥ አውጣ D4, መቁጠር የሚጀምረው ከሁለተኛው መስመር ስለሆነ.

በ Excel ውስጥ ውጤቱ ይኸውና:

አስፈላጊ! ተግባሩ በሚጠቀምበት ድርድር ውስጥ ያሉት የረድፎች እና የአምዶች ብዛት INDEX(INDEX)፣ ከነጋሪ እሴቶች ጋር መዛመድ አለበት። ረድፍ_ቁጥር(መስመር_ቁጥር) እና አምድ_ቁጥር(የአምድ_ቁጥር) ተግባራት ግጥሚያ(MATCH) አለበለዚያ የቀመርው ውጤት የተሳሳተ ይሆናል.

አቁም፣ አቁም... ለምን ተግባሩን ብቻ መጠቀም አንችልም። VLOOKUP(VLOOKUP)? ላብራቶሪዎችን ለማወቅ ጊዜን ማባከን ምንም ፋይዳ አለ? ግጥሚያእና INDEX?

VLOOKUP("ጃፓን"፣$B$2:$D$2,3)
=VLOOKUP("ጃፓን"፣$B$2:$D$2,3)

በዚህ ጉዳይ ላይ ምንም ትርጉም አይሰጥም! የዚህ ምሳሌ ዓላማ ሙሉ ለሙሉ ገላጭ ነው, ስለዚህ ተግባሮቹ እንዴት እንደሚረዱ መረዳት ይችላሉ ግጥሚያእና INDEXበጥንድ ስሩ. የሚከተሉት ምሳሌዎች የጥቅሉን እውነተኛ ኃይል ያሳዩዎታል። INDEXእና ግጥሚያ, ብዙ አስቸጋሪ ሁኔታዎችን በቀላሉ የሚቋቋም VLOOKUPይጣበቃል.

INDEX/MATCH ከ VLOOKUP ለምን ይሻላል?

ለአቀባዊ ፍለጋ የትኛውን ፎርሙላ መጠቀም እንዳለብን ሲወስኑ፣ አብዛኞቹ የኤክሴል ሊቃውንት ያንን ያምናሉ INDEX/ግጥሚያበጣም የተሻለ VLOOKUP. ይሁን እንጂ ብዙ የኤክሴል ተጠቃሚዎች አሁንም መጠቀም ይጀምራሉ VLOOKUP, ምክንያቱም ይህ ተግባር በጣም ቀላል ነው. ይህ የሆነበት ምክንያት በጣም ጥቂት ሰዎች የመቀየር ሙሉ ጥቅሞችን በሚገባ ስለሚረዱ ነው። VLOOKUPበጥቅል ላይ INDEXእና ግጥሚያ, እና ማንም ሰው የበለጠ ውስብስብ ቀመር በማጥናት ጊዜ ማሳለፍ አይፈልግም.

MATCH/INDEX በ Excel ውስጥ የመጠቀም ዋናዎቹ 4 ጥቅሞች፡-

1. ከቀኝ ወደ ግራ ይፈልጉ.ማንኛውም ፊደል ያለው የኤክሴል ተጠቃሚ እንደሚያውቀው፣ VLOOKUPወደ ግራ ማየት አይቻልም፣ ይህ ማለት የሚፈለገው እሴት በጥናት ላይ ባለው ክልል በግራኛው አምድ ውስጥ መሆን አለበት ማለት ነው። በዚህ ጊዜ ግጥሚያ/INDEX፣ የፍለጋ ዓምድ በፍለጋው ክልል በግራ ወይም በቀኝ በኩል ሊሆን ይችላል። ምሳሌ፡ ይህን ባህሪ በተግባር ያሳያል።

2. አስተማማኝ መጨመር ወይም አምዶች መወገድ.ከተግባር ጋር ቀመሮች VLOOKUPወደ መፈለጊያ ሠንጠረዥ አንድ አምድ ካስወገዱ ወይም ካከሉ መስራት ያቁሙ ወይም የተሳሳቱ እሴቶችን ይመልሱ። ለተግባር VLOOKUPማንኛውም የገባ ወይም የተወገደ ዓምድ የቀመርውን ውጤት ይለውጣል ምክንያቱም አገባብ VLOOKUPሙሉውን ክልል እና ውሂብ ማውጣት የሚፈልጉትን የተወሰነ የአምድ ቁጥር እንዲገልጹ ይጠይቃል።

ለምሳሌ, ጠረጴዛ ካለዎት A1፡C10, እና ውሂብ ከአምድ ማውጣት ይፈልጋሉ , ከዚያ ዋጋውን ማዘጋጀት ያስፈልግዎታል 2 ለክርክር col_index_num(የአምድ_ቁጥር) ተግባራት VLOOKUP, ልክ እንደዚህ:

VLOOKUP("የመፈለጊያ ዋጋ"፣A1:C10,2)
=VLOOKUP("የመፈለጊያ ዋጋ";A1:C10;2)

በኋላ አዲስ አምድ በአምዶች መካከል ካስገቡ እና , ከዚያ የክርክሩ ዋጋ ከ መቀየር አለበት 2 ላይ 3 , አለበለዚያ ቀመሩ አሁን ከገባው አምድ ላይ ውጤቱን ይመልሳል.

በመጠቀም ግጥሚያ/INDEXየሚፈለገውን ዋጋ የያዘው አምድ በቀጥታ ስለሚገለጽ ውጤቱን ሳታዛባ በጥናት ላይ ባለው ክልል ላይ አምዶችን ማስወገድ ወይም ማከል ትችላለህ። በእርግጥ, ይህ ትልቅ ጥቅም ነው, በተለይም ከፍተኛ መጠን ባለው መረጃ መስራት ሲኖርብዎት. የምትጠቀመውን እያንዳንዱን ባህሪ ማስተካከል እንዳለብህ ሳትጨነቅ ዓምዶችን ማከል እና ማስወገድ ትችላለህ VLOOKUP.

3. በተፈለገው እሴት መጠን ላይ ምንም ገደብ የለም.በመጠቀም VLOOKUPበተፈለገው እሴት ርዝመት ላይ ያለውን ባለ 255-ቁምፊ ገደብ ይገንዘቡ, አለበለዚያ ስህተት ሊያጋጥምዎት ይችላል. #VALUE!(#VALUE!) ስለዚህ, ሠንጠረዡ ረጅም ረድፎችን ከያዘ, ብቸኛው አዋጭ መፍትሄ መጠቀም ነው INDEX/ግጥሚያ.

የሚከተለውን ቀመር ትጠቀማለህ እንበል። VLOOKUPበሴሎች ውስጥ የሚፈልግ ከ B5ከዚህ በፊት ዲ10በሴል ውስጥ የተገለጸው ዋጋ A2:

VLOOKUP(A2፣B5:D10,3፣FALSE)
=VLOOKUP(A2,B5:D10,3,FALSE)

እሴቱ በሴል ውስጥ ከሆነ ቀመሩ አይሰራም A2ከ 255 በላይ ቁምፊዎች. በምትኩ, ተመሳሳይ ቀመር መጠቀም ያስፈልግዎታል INDEX/ግጥሚያ:

ማውጫ(D5:D10፣MATCH(TRUE፣INDEX(B5:B10=A2,0)፣0))
=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))

4. ከፍተኛ የሩጫ ፍጥነት.ከትንሽ የተመን ሉሆች ጋር እየሰሩ ከሆነ የ Excel አፈጻጸም ልዩነት በተለይ በቅርብ ጊዜ ስሪቶች ላይ የሚታይ ላይሆን ይችላል። በሺዎች የሚቆጠሩ ረድፎችን እና በመቶዎች የሚቆጠሩ የፍለጋ ቀመሮችን ከያዙ ትላልቅ ጠረጴዛዎች ጋር እየሰሩ ከሆነ፣ ሲጠቀሙ ኤክሴል በጣም በፍጥነት ይሰራል ግጥሚያእና INDEXከሱ ይልቅ VLOOKUP. በአጠቃላይ እንዲህ ዓይነቱ ምትክ የ Excel ፍጥነትን ይጨምራል 13% .

ተጽዕኖ VLOOKUPየስራ ደብተሩ እንደ በመቶዎች የሚቆጠሩ ውስብስብ የድርድር ቀመሮችን ከያዘ የኤክሴል አፈጻጸም በተለይ የሚታይ ነው። VLOOKUP+ SUM. እውነታው ግን በድርድር ውስጥ ያለውን እያንዳንዱን እሴት መፈተሽ የተለየ የተግባር ጥሪ ያስፈልገዋል VLOOKUP. ስለዚህ፣ ድርድር ብዙ እሴቶችን በያዘ እና ጠረጴዛዎ በያዘ ቁጥር የ Excel ቀርፋፋ ይሆናል።

በሌላ በኩል, ተግባራት ያለው ቀመር ግጥሚያእና INDEXበቀላሉ ፍተሻ ያካሂዳል እና ውጤቱን ይመልሳል፣ ተመሳሳይ ስራ በፍጥነት ይሰራል።

INDEX እና MATCH - የቀመር ምሳሌዎች

አሁን ተግባራትን ለምን መማር እንዳለብዎት ምክንያቶች ተረድተዋል ግጥሚያእና INDEX፣ ወደ በጣም አስደሳች ወደሆነው እንሂድ እና የንድፈ ሃሳባዊ እውቀትን በተግባር እንዴት ተግባራዊ ማድረግ እንደምትችል እንይ።

MATCH እና INDEX በመጠቀም በግራ በኩል እንዴት መፈለግ እንደሚቻል

ማንኛውም የመማሪያ መጽሐፍ VLOOKUPይህ ተግባር ወደ ግራ መመልከት እንደማይችል ይናገራል. እነዚያ። ወደ ላይ እየታየ ያለው ዓምድ በፍለጋ ክልሉ ውስጥ በግራ በኩል ያለው ዓምድ ካልሆነ ከዚያ የማግኘት ዕድል የለም። VLOOKUPየተፈለገውን ውጤት.

ተግባራት ግጥሚያእና INDEXኤክሴል የበለጠ ተለዋዋጭ ነው እና ለማውጣት ዋጋ ያለው አምድ የት እንደሚገኝ ግድ የለውም። ለምሳሌ የክልል ካፒታል እና የህዝብ ብዛት ወዳለበት ወደ ጠረጴዛው እንመለስ። በዚህ ጊዜ ቀመሩን እንጽፋለን ግጥሚያ/INDEX, ይህም የሩሲያ ዋና ከተማ (ሞስኮ) በሕዝብ ብዛት ውስጥ ምን ቦታ እንደሚይዝ ያሳያል.

ከታች ባለው ስእል ላይ እንደሚታየው ቀመሩ ለዚህ ተግባር ትልቅ ስራ ይሰራል፡-

INDEX($A$2:$A$10፣MATCH("ሩሲያ"፣$B$2:$B$10,0))

አሁን ይህ ቀመር እንዴት እንደሚሰራ ለመረዳት ምንም ችግር የለብዎትም-

  • በመጀመሪያ, ተግባሩን እንጠቀም ግጥሚያበዝርዝሩ ውስጥ "ሩሲያ" የሚለውን ቦታ የሚያገኘው (MATCH)

    ግጥሚያ("ሩሲያ"፣$B$2:$B$10.0))
    =MATCH("ሩሲያ"፣$B$2:$B$10,0))

  • በመቀጠል ለተግባሩ ክልሉን ያዘጋጁ INDEX(INDEX) እሴቱን ለማውጣት። በእኛ ሁኔታ, ይህ A2፡A10.
  • ከዚያ ሁለቱንም ክፍሎች እናገናኛለን እና ቀመሩን እናገኛለን-

    INDEX($A$2:$A$10;MATCH("ሩሲያ"፤$B$2:$B$10;0))
    =INDEX($A$2:$A$10፣MATCH("ሩሲያ"፣$B$2:$B$10,0))

ፍንጭ፡ትክክለኛው መፍትሔ ሁል ጊዜ ፍጹም ማጣቀሻዎችን መጠቀም ነው። INDEXእና ግጥሚያቀመሩን ወደ ሌሎች ህዋሶች በሚገለበጥበት ጊዜ የፍለጋ ክልሎች እንዳይጠፉ።

INDEX እና MATCHን በ Excel (AVERAGE፣ MAX፣ MIN) የሚጠቀሙ ስሌቶች

ሌሎች የ Excel ተግባራትን መክተት ይችላሉ። INDEXእና ግጥሚያለምሳሌ ዝቅተኛውን፣ ከፍተኛውን ወይም ከአማካይ እሴቱ ጋር ቅርብ ለማግኘት። በሠንጠረዥ ላይ እንደተተገበረው ለቀመር ጥቂት አማራጮች እዚህ አሉ።

1. ማክስ(MAX) ቀመሩ ከፍተኛውን በአንድ አምድ ውስጥ ያገኛል ተመሳሳይ መስመር:

INDEX($C$2:$C$10፣MATCH(MAX($D$2:I$10)፣$D$2:D$10,0))
=INDEX($C$2:$C$10፣MATCH(MAX($D$2:I$10)፣$D$2:D$10,0))

ውጤት፡ ቤጂንግ

2. ደቂቃ(MIN) ፎርሙላ በአንድ አምድ ውስጥ አነስተኛውን ያገኛል እና ዋጋውን ከአምዱ ይመልሳል ተመሳሳይ መስመር:

INDEX($C$2:$C$10፣MATCH(MIN($D$2:I$10)፣$D$2:D$10,0))
=INDEX($C$2:$C$10፣MATCH(MIN($D$2:I$10)፣$D$2:D$10,0))

ውጤት፡ ሊማ

3. አማካይ(አማካይ)። ቀመሩ በክልል ውስጥ ያለውን አማካኝ ያሰላል D2፡D10, ከዚያ ወደ እሱ በጣም ቅርብ የሆነውን አግኝ እና እሴቱን ከአምዱ ይመልሳል ተመሳሳይ መስመር:

ኢንዴክስ($C$2:$C$10፣ ግጥሚያ(አማካይ($D$2:D$10)፣$D$2:D$10,1))
=INDEX($C$2:$C$10፣MATCH(አማካይ($D$2:D$10)፣$D$2:D$10,1))

ውጤት: ሞስኮ

የAVERAGE ተግባርን ከINDEX እና MATCH ጋር ሲጠቀሙ ማስታወስ ያለባቸው ነጥቦች

ተግባሩን በመጠቀም አማካይጋር በማጣመር INDEXእና ግጥሚያ, እንደ ሦስተኛው ተግባር ክርክር ግጥሚያብዙውን ጊዜ መግለጽ ያስፈልግዎታል 1 ወይም -1 የሚታየው ክልል ከአማካይ ጋር እኩል የሆነ እሴት እንደያዘ እርግጠኛ ካልሆኑ። እንደዚህ አይነት ዋጋ እንዳለ እርግጠኛ ከሆኑ ያስቀምጡ 0 ትክክለኛ ተዛማጅ ለማግኘት.

  • እርስዎ ከገለጹ 1 , በፍለጋ ዓምድ ውስጥ ያሉት እሴቶች በከፍታ ቅደም ተከተል መደርደር አለባቸው, እና ቀመሩ ከፍተኛውን እሴት ከአማካይ ያነሰ ወይም እኩል ይመልሳል.
  • እርስዎ ከገለጹ -1 , በመፈለጊያ ዓምድ ውስጥ ያሉት ዋጋዎች በሚወርድበት ቅደም ተከተል መደርደር አለባቸው, እና ከአማካይ የሚበልጥ ወይም እኩል የሆነ ዝቅተኛ እሴት ይመለሳል.

በእኛ ምሳሌ ውስጥ, በአምዱ ውስጥ ያሉ እሴቶች በከፍታ ቅደም ተከተል የተደረደሩ ናቸው፣ ስለዚህ የማዛመጃውን አይነት እንጠቀማለን። 1 . ፎርሙላ INDEX/SEARCHPOዜድ"ሞስኮ" ይመልሳል ምክንያቱም የሞስኮ ህዝብ ከአማካይ (12,269,006) ጋር በጣም ቅርብ ዝቅተኛ ዋጋ ነው.

በሚታወቅ ረድፍ እና አምድ ላይ ለመፈለግ INDEX እና MATCHን እንዴት መጠቀም እንደሚቻል

ይህ ቀመር ከ2D ፍለጋ ጋር እኩል ነው። VLOOKUPእና በተወሰነ ረድፍ እና አምድ መገናኛ ላይ እሴቱን እንዲያገኙ ያስችልዎታል.

በዚህ ምሳሌ, ቀመር INDEX/ግጥሚያበዚህ ትምህርት ውስጥ ቀደም ሲል ከተነጋገርናቸው ቀመሮች ጋር በጣም ተመሳሳይ ይሆናል, በአንድ ልዩነት ብቻ. እስቲ ገምት?

እንደምታስታውሱት, የተግባር አገባብ INDEX(INDEX) ሶስት ነጋሪ እሴቶችን ይፈቅዳል፡-

INDEX(ድርድር፣ ረድፍ_ቁጥር፣)
INDEX(ድርድር፣ ረድፍ_ቁጥር፣ [የአምድ_ቁጥር])

እና እርስዎ ያወቁትን እንኳን ደስ አለዎት!

የቀመርውን አብነት በመጻፍ እንጀምር። ይህንን ለማድረግ, ቀድሞውኑ የታወቀውን ቀመር እንወስዳለን INDEX/ግጥሚያእና ሌላ ተግባር ይጨምሩበት ግጥሚያ, ይህም የአምድ ቁጥሩን ይመልሳል.

INDEX(የእርስዎ ጠረጴዛ፣(MATCH(,፣ ዓምድ ለመፈለግ,0)),(MATCH(, ለመፈለግ ሕብረቁምፊ,0))
=INDEX(የእርስዎ ጠረጴዛ፣(MATCH( ለአቀባዊ ፍለጋ ዋጋ,ዓምድ ለመፈለግ,0)),(MATCH( አግድም ፍለጋ ዋጋ,ለመፈለግ ሕብረቁምፊ,0))

እባክዎን ለሁለት አቅጣጫዊ ፍለጋ በክርክሩ ውስጥ ሙሉውን ሰንጠረዥ መግለጽ ያስፈልግዎታል ድርድር(ድርድር) ተግባራት INDEX(INDEX)

አሁን ይህንን ስርዓተ-ጥለት እንፈትነው። ከዚህ በታች በአለም ላይ በጣም ህዝብ የሚበዛባቸውን ሀገራት ዝርዝር ታያለህ። የእኛ ተግባር እ.ኤ.አ. በ2015 የዩናይትድ ስቴትስን ህዝብ ብዛት ማወቅ ነው እንበል።

እሺ፣ ቀመሩን እንፃፍ። በ Excel ውስጥ ውስብስብ ፎርሙላ ከጎጆ ተግባራት ጋር መፍጠር ሲያስፈልገኝ በመጀመሪያ እያንዳንዱን ጎጆ ለብቻው እጽፋለሁ።

ስለዚህ በሁለት ተግባራት እንጀምር ግጥሚያ, ለተግባሩ የረድፍ እና የአምድ ቁጥሮችን የሚመልስ INDEX:

  • MATCH ለአምድ- በአምድ ውስጥ እየተመለከትን ነው ፣ የበለጠ ትክክለኛ ለመሆን ፣ በክልል ውስጥ B2፡B11, በሴል ውስጥ የተገለጸው ዋጋ H2(አሜሪካ) ተግባሩ ይህንን ይመስላል።

    ግጥሚያ($H$2፣$B$1:$B$11.0)
    = ግጥሚያ($H$2፣$B$1:$B$11,0)

    4 , "USA" በአምዱ ውስጥ የዝርዝሩ 4 ኛ አካል ስለሆነ (ርዕስ ጨምሮ)።

  • MATCH ለሕብረቁምፊ- የሕዋስ ዋጋን እየፈለግን ነው H3(2015) በመስመር 1 በሴሎች ውስጥ ማለት ነው A1፡E1:

    ግጥሚያ($H$3፣$A$1:$E$1,0)
    = ግጥሚያ($H$3፣$A$1:$E$1,0)

    የዚህ ቀመር ውጤት ይሆናል 5 ምክንያቱም "2015" በ 5 ኛው ዓምድ ውስጥ ነው.

አሁን እነዚህን ቀመሮች ወደ ተግባር እናስገባቸዋለን INDEXእና voila:

INDEX($A$1፡$E$11፣ ግጥሚያ($H$2፣$B$1፡$B$11.0)፣ ግጥሚያ($H$3፣$A$1:$E$1.0))
=INDEX($A$1፡$E$11፣ ግጥሚያ($H$2፣$B$1፡$B$11፣0)፣ግጥሚያ($H$3፣$A$1:$E$1,0))

ተግባራቶቹን ከተተካ ግጥሚያበሚመለሱት እሴቶች ላይ ቀመሩ ቀላል እና ለመረዳት የሚቻል ይሆናል-

ኢንዴክስ($A$1:$E$11,4,5))
=INDEX($A$1:$E$11,4,5))

ይህ ቀመር በመስቀለኛ መንገድ ላይ ያለውን ዋጋ ይመልሳል 4ኛመስመሮች እና 5ኛበክልል ውስጥ ያሉ አምዶች A1:E11ማለትም የሕዋስ ዋጋ E4. ብቻ? አዎ!

በ INDEX እና MATCH በበርካታ መስፈርቶች ይፈልጉ

በመማሪያ መጽሐፍ ውስጥ VLOOKUPተግባር ያለው ቀመር ምሳሌ አሳይተናል VLOOKUPበበርካታ መስፈርቶች ለመፈለግ . ይሁን እንጂ የዚህ መፍትሔ ጉልህ ገደብ ረዳት አምድ መጨመር አስፈላጊ ነበር. መልካም ዜና፡ ቀመር INDEX/ግጥሚያረዳት አምድ መፍጠር ሳያስፈልግ በሁለት አምዶች ውስጥ በእሴቶች መፈለግ ይችላል!

የትዕዛዝ ዝርዝር አለን እንበል እና ድምርን በሁለት መመዘኛዎች ማግኘት እንፈልጋለን - የገዢው ስም(ደንበኛ) እና ምርት(ምርት)። አንድ ገዢ ብዙ የተለያዩ ምርቶችን በአንድ ጊዜ መግዛት ስለሚችል ጉዳዩ ውስብስብ ነው, እና በሉህ ላይ ባለው ሰንጠረዥ ውስጥ የገዢዎች ስም የመፈለጊያ ጠረጴዛበዘፈቀደ ቅደም ተከተል የተደረደሩ.

ቀመሩ ይኸውና INDEX/ግጥሚያችግሩን ይፈታል;

(=INDEX("የመፈለጊያ ጠረጴዛ"!$A$2:$C$13,MATCH(1,(A2="የመፈለጊያ ሠንጠረዥ"!$A$2:$A$13)*
(B2="የመፈለጊያ ሠንጠረዥ"!$B$2:$B$13),0),3))
(=INDEX("የመፈለጊያ ጠረጴዛ"!$A$2:$C$13;MATCH(1;(A2="የመፈለጊያ ጠረጴዛ"!$A$2:$A$13)*
(B2="የመፈለጊያ ጠረጴዛ"!$B$2:$B$13);0);3))

ይህ ፎርሙላ ቀደም ብለን ከተነጋገርናቸው ከሌሎቹ የበለጠ የተወሳሰበ ነው, ነገር ግን በተግባሮቹ እውቀት የታጠቁ INDEXእና ግጥሚያታሸንፋታለህ። በጣም አስቸጋሪው ነገር ተግባሩ ነው ግጥሚያመጀመሪያ መገለጽ ያለበት ይመስለኛል።

ግጥሚያ(1፣(A2=«የመፈለጊያ ጠረጴዛ»!$A$2፡$A$13)፣0)*(B2=«የመፈለጊያ ጠረጴዛ»!$B$2፡$B$13)
MATCH(1;(A2= "የመፈለጊያ ጠረጴዛ"!$A$2:$A$13);0)*(B2="የመፈለጊያ ጠረጴዛ"!$B$2:$B$13)

ከላይ በሚታየው ቀመር ውስጥ, የሚፈልጉት እሴት ነው 1 ፣ እና የመፈለጊያ አደራደር የማባዛት ውጤት ነው። እሺ ምን እናባዛለን እና ለምን? ሁሉንም በቅደም ተከተል እንይዘው፡-

  • በአምዱ ውስጥ የመጀመሪያውን እሴት ያግኙ (ደንበኛ) በአንድ ሉህ ዋና ጠረጴዛእና በሉህ ላይ ባለው ሰንጠረዥ ውስጥ ካሉት የገዢዎች ስም ሁሉ ጋር ያወዳድሩ የመፈለጊያ ጠረጴዛ(A2፡A13)።
  • ግጥሚያ ከተገኘ፣ እኩልታው ይመለሳል 1 (TRUE) እና ካልሆነ - 0 (ውሸት)
  • በመቀጠልም ለዓምዱ ዋጋዎች ተመሳሳይ ነገር እናደርጋለን (ምርት)።
  • ከዚያም የተገኘውን ውጤት (1 እና 0) እናባዛለን. በሁለቱም አምዶች ውስጥ ግጥሚያዎች ከተገኙ ብቻ (ማለትም ሁለቱም መመዘኛዎች እውነት ከሆኑ) ያገኛሉ 1 . ሁለቱም መመዘኛዎች ውሸት ከሆኑ ወይም ከመካከላቸው አንዱ ብቻ ከተሟላ, ያገኛሉ 0 .

ለምን እንደጠየቅን አሁን ይገባሃል 1 እንደ ተፈላጊው እሴት? ተግባሩ ትክክል ነው። ግጥሚያቦታውን የመለሰው ሁለቱም መመዘኛዎች ሲሟሉ ብቻ ነው።

ማስታወሻ:በዚህ ሁኔታ, ሶስተኛውን አማራጭ ተግባር ነጋሪ እሴት መጠቀም አለብዎት INDEX. አስፈላጊ ነው, ምክንያቱም በመጀመሪያው ነጋሪ እሴት ውስጥ ሙሉውን ጠረጴዛ እንገልፃለን እና እሴቱን ከየትኛው አምድ እንደሚያወጣ ተግባሩን መንገር አለብን። በእኛ ሁኔታ, ይህ አምድ ነው (ስም) እና ስለዚህ አስተዋውቀናል 3 .

እና በመጨረሻም, ምክንያቱም በድርድር ውስጥ ያለውን እያንዳንዱን ሕዋስ ማረጋገጥ አለብን፣ ይህ ቀመር የድርድር ፎርሙላ መሆን አለበት። ይህንን በታሸገው በተጠማዘዙ ማሰሪያዎች ማየት ይችላሉ። ስለዚህ ቀመሩን አስገብተው ሲጨርሱ መጫንዎን አይርሱ Ctrl+Shift+Enter.

ሁሉም ነገር በትክክል ከተሰራ, ከታች ባለው ስእል እንደሚታየው ውጤቱን ያገኛሉ.

INDEX እና MATCH ከ IFERROR ጋር በ Excel ውስጥ ተጣምረው

ምናልባት ቀደም ሲል እንዳስተዋሉት (እና ከአንድ ጊዜ በላይ) ፣ የተሳሳተ እሴት ካስገቡ ፣ ለምሳሌ ፣ በሚታየው ድርድር ውስጥ ያልሆነ ፣ ቀመሩ INDEX/ግጥሚያስህተት ዘግቧል #N/A(#N/A) ወይም #VALUE!(#VALUE!) እንዲህ ዓይነቱን መልእክት የበለጠ ለመረዳት በሚያስችል ነገር መተካት ከፈለጉ ቀመር ማስገባት ይችላሉ። INDEXእና ግጥሚያወደ ተግባር ESLIOSHIBKA.

የተግባር አገባብ ESLIOSHIBKAበጣም ቀላል:

IFERROR(እሴት፣እሴት_if_ስህተት)
IFERROR(እሴት፣ እሴት_if_ስህተት)

ክርክሩ የት ነው። ዋጋ(ዋጋ) ለስህተት እየተረጋገጠ ያለው ዋጋ ነው (በእኛ ሁኔታ፣ የቀመርው ውጤት INDEX/ግጥሚያ); እና ክርክሩ ስህተት ከሆነ ዋጋ(value_if_error) ቀመሩ ስህተት ከጣለ የሚመለሰው ዋጋ ነው።

ለምሳሌ, ተግባር ውስጥ ማስገባት ይችላሉ ESLIOSHIBKAልክ እንደዚህ:

IFERROR(INDEX($A$1:$E$11፣MATCH($G$2፣$B$1:$B$11.0)፣መመሳሰል($G$3፣$A$1:$E$1.0))፣
"ምንም ተዛማጅ አልተገኘም። እባክዎ እንደገና ይሞክሩ!") =IFERROR(INDEX($A$1:$E$11፣MATCH($G$2፣$B$1:$B$11,0)፣MATCH($G$3፣$A$1) :$E$1;0));
"ምንም ተዛማጅ አልተገኙም። እባክዎ እንደገና ይሞክሩ!")

እና አሁን፣ አንድ ሰው የተሳሳተ እሴት ከገባ፣ ቀመሩ የሚከተለውን ውጤት ይሰጣል።

ስህተት ከተፈጠረ ሕዋሱን ባዶ መተው ከመረጡ፣ የትዕምርተ ጥቅስ ምልክቶችን ("") እንደ ሁለተኛው ተግባር ነጋሪ እሴት መጠቀም ይችላሉ። ESLIOSHIBKA. ልክ እንደዚህ:

IFERROR(INDEX(ድርድር፣MATCH(የፍለጋ_እሴት፣ ፍለጋ_ድርድር፣0)")))
IFERROR(INDEX(ድርድር፣MATCH(የፍለጋ_እሴት፣ፍለጋ_ድርድር፣0)")))

በዚህ ማጠናከሪያ ትምህርት ውስጥ ከተገለጹት ቀመሮች ውስጥ ቢያንስ አንዱ ለእርስዎ ጠቃሚ መስሎ እንደሚታይዎት ተስፋ አደርጋለሁ። በዚህ ትምህርት ውስጥ ካሉት መረጃዎች መካከል ተስማሚ መፍትሄ ማግኘት ያልቻሉባቸው ሌሎች የፍለጋ ተግባራት ካጋጠሙዎት በአስተያየቶቹ ውስጥ ችግርዎን ለመግለጽ ነፃነት ይሰማዎ እና ሁላችንም አንድ ላይ ለመፍታት እንሞክራለን ።

የተጠቃሚ መመሪያ.

NatClass

የክዋኔው ስም

የጂኖሚክ ቅደም ተከተሎችን የመመደብ እና የመተንተን ግንባታ.

ቀዶ ጥገናው የሚቻልባቸው ሁኔታዎች

የአሠራር ቅደም ተከተል
የዝግጅት እርምጃዎች

በሚፈለገው ቅደም ተከተል መሰረታዊ ድርጊቶች.

1.

የፕሮግራሙ ግቤት ውሂብ በ FASTA ቅርጸት ውስጥ ሁለት ተከታታይ ናሙናዎች ናቸው፡ አዎንታዊ ቅደም ተከተሎች (የጂኖሚክ ቅደም ተከተሎች ምርጫ, አሉታዊ ቅደም ተከተሎች (የዘፈቀደ ቅደም ተከተሎች ምርጫ, ወይም ተቃራኒ ጂኖሚክ ቅደም ተከተሎች).

የስልጠና መረጃን ለመጫን የምናሌ ትዕዛዝን ይጠቀሙ ምንጭ ->አክልአዎንታዊቅደም ተከተሎች(ምስል 1) ወይም የመሳሪያ አሞሌ አዝራር. አንድ ጠንቋይ በማያ ገጹ ላይ ይታያል እና የአዎንታዊ/አሉታዊ ቅደም ተከተል ምርጫ ፋይል ስም እንዲገልጹ ይጠይቅዎታል።

በዚህ ፕሮግራም ቀደም ብለው የተቀመጡ የፕሮጀክት ፋይሎች እንደ ግብዓት ውሂብ ሆነው ሊያገለግሉ ይችላሉ። በእንደዚህ ዓይነት የፕሮጀክት ፋይሎች ውስጥ, በተቀመጠበት ጊዜ የተጫኑ ወይም የተቀበሉት ሁሉም መረጃዎች ሊቀመጡ ይችላሉ.

2.የፕሮግራሙን መለኪያዎች ማቀናበር. ቅጦችን የማመንጨት ሂደት መጀመር.

በመጀመሪያው ትር ላይ,ደንቦች ", የስርዓተ-ጥለት ፍለጋ አካላት አሉ (ምስል 2). ለቅጦች ፍለጋ መለኪያዎችን ማዘጋጀት እና "ጀምር" ቁልፍን ጠቅ ማድረግ አስፈላጊ ነው.

የፍለጋ አማራጮች፡-

የመተማመን ክፍተት ሁኔታዊ ዕድል ዝቅተኛ ደረጃ;

ደቂቃ የ CP ደረጃ ለአሳ ማጥመጃ መስፈርት ዋጋ ጣራ;

የማጠናቀቂያ ቋት መጠን የተገኙ ቅጦች ብዛት;

የንዑስ ማቋረጫዎች መጠን የስርዓተ ጥለት ድጋፍ ቋት መጠን።

የአሰራር ዘዴው እንዲሁ ተመርጧል: ቋሚ ቦታዎች (ቋሚ ቦታዎች ) ወይም ተንሸራታች መስኮት ሁነታ (የመቀየሪያ ቦታዎች ). የኋለኛው ከረዥም የጂኖሚክ ቅደም ተከተል ጋር ለመተዋወቅ ጥቅም ላይ ይውላል እና የመስኮቱ መጠን እንዲገለጽ ይፈልጋል (የፍተሻ ፍሬም ስፋት)

መርሃግብሩ ስርዓተ-ጥለቶችን የማመንጨት ሂደትን ("አቁም" ቁልፍን በመጫን) ለአፍታ እንዲያቆሙ ወይም ሂደቱን እንዲያቆሙ ("አቁም" ቁልፍን በመጫን) እንዲያቆሙ ያስችልዎታል።


ሩዝ. 2. የስርዓተ-ጥለት ፍለጋ ክፍሎችን ዕልባት ያድርጉ።

ስርዓተ-ጥለቶችን በመፈለግ ሂደት መጨረሻ ላይ ፕሮግራሙ መልእክቱን ያሳያል "ቅጦችን የመፈለግ ሂደት በተሳካ ሁኔታ ተጠናቅቋል." በውጤቱም, የተገኙት ንድፎች በተገኙበት ቅደም ተከተል ለተጠቃሚው ይቀርባሉ (ምሥል 3).

ሩዝ. 3 የተገኙ ቅጦች።

3. ተስማሚ ክፍል ነገሮች ግንባታ.

ከተገኙት ቅጦች በተጨማሪ የፕሮግራሙ ውጤትNatClassእንዲሁም ተስማሚ ክፍል ተወካዮች ናቸው. ለግንባታቸውየነገሮች ትር ” ፕሮግራሞች (ምስል 4). ጥሩ ነገሮች ከአዎንታዊ የስልጠና ስብስብ በመነሻ ነገሮች ሊገነቡ ይችላሉ (አማራጭ “የመጀመሪያ እቃዎች ”) ወይም በሕጉ መሠረት (“መደበኛነት ”) እንዲሁም ለግንባታ ስልተ ቀመር ከሶስት አማራጮች ውስጥ አንዱን መምረጥ ይችላሉ (ሃሳባዊነት አይነት ), በማስወገድ እና በማከል ባህሪያት መካከል ቅድሚያ መስጠት. ጥሩ ዕቃዎችን ከገነባ በኋላ መርሃግብሩ የመማሪያ ቁሳቁሶችን ከተገኙት ክፍሎች በአንዱ ይመድባል ወይም እንደ አዲስ ክፍል ይገነዘባል ።አዲስ ". ቅጦችን ከማመንጨት ሂደት ጋር በማነፃፀር, የሃሳባዊነት ሂደት ሊታገድ ይችላል("አፍታ አቁም" የሚለውን ቁልፍ በመጫን) ወይም አቁም ("አቁም" የሚለውን ቁልፍ በመጫን)።

ሩዝ. 4. ተስማሚ ዕቃዎችን ለመገንባት ንጥረ ነገሮችን ማስቀመጥ.

ቅጦችን በመፈለግ ሂደት መጨረሻ ላይ ፕሮግራሙ "የማሳየት ሂደት በተሳካ ሁኔታ ተጠናቅቋል" የሚለውን መልእክት ያሳያል.

4. የተገኙትን መደበኛነት አተገባበር. የማወቂያ ስህተቶች ስሌት.

ክፍሎች ትር የተቀበለውን የውጤት መረጃ ለማስኬድ ተግባራትን ይዟል (ምስል 5).

የመቁጠር ውጤቶችን ለመተንተን የሚከተሉት ተግባራት እዚህ ይገኛሉ፡ የቁጥጥር ናሙናዎች ምደባ ("ምደባ ”)፣ የሚገኙትን ክፍሎች በተመለከተ እውቅና (“እውቅና ቁጥጥር ውሂብ ”)፣ የማወቂያ ስህተቶችን መቁጠር (“የማወቂያ ስህተቶች ይቆጠራሉ ”)፣ የቡት ስታራፕ አሰራር።

የቁጥጥር ቅደም ተከተሎችን ለመጫን የምናሌውን ትዕዛዝ ይጠቀሙ ተቆጣጠር ->አክልመቆጣጠርአዎንታዊ።

የማወቂያ ስህተቶችን ሲያሰሉ ፕሮግራሙ ጥሩውን ውጤት ይሰጣል (ሂስቶግራም ይገነባል) ነገር ግን ተጠቃሚው የማወቂያ ጣራውን በማዘጋጀት በተናጥል ሊያስተካክለው ይችላል ("እወቅደረጃ ”)፣ ወይም የመጀመርያው ዓይነት ስህተት ዋጋ (“1 ሴንትደረጃ ስህተት").


ሩዝ. 5. ዕልባት "ክፍሎች”.

ፍጹም በሆነ ነገር ላይ በቀኝ ጠቅ ማድረግ ነገሩን ለማጥፋት አማራጭ ይሰጥዎታል ("ሰርዝ ", ሩዝ. 6) የክፍል ዕቃዎችን አሳይ ("ነገሮችን አሳይ ", ሩዝ. 7) ፣ ቅጦች ("መደበኛ ሁኔታዎችን አሳይ ”)፣ የትንበያ ማትሪክስ (“የትንበያ ማትሪክስ ”)፣ እውቅና ማትሪክስ (“እውቅና ማትሪክስ”፣ fig. 8)

ሩዝ. 6 በፕሮግራሙ የተከናወኑ ክዋኔዎች ተስማሚ በሆነ ነገር።

ሩዝ. 7 የክፍል ዕቃዎችን የማሳየት ተግባርአሳይእቃዎች”.


ሩዝ. 8 የክፍል ዕቃዎችን የማወቂያ ማትሪክስ የማሳየት ተግባር "እውቅናማትሪክስ”.

የማወቂያ ውጤቶች እና ስህተቶች በቅጹ ውስጥ ባለው ፕሮግራም ተቀምጠዋል html ጠረጴዛዎች.

የሙከራ ጉዳይ፡ የጽሑፍ ግልባጭ ማያያዣ ጣቢያዎች (TFS) ምደባ እና ትንተና መገንባት EGR1.

1.

እንደ አወንታዊ ናሙና, የፕሮግራሙ ግብአት ነው SSTF EGR 1፡

> S1916;

gtccgtggt

> S4809;

ttgggggcga

> S6067;

gaggggggcgg

ፋይል EGR1_pos.seq

እንደ አሉታዊ - በአዎንታዊ ቅደም ተከተሎች ከተመሳሳዩ የኑክሊዮታይድ ድግግሞሾች ጋር የተፈጠሩ የዘፈቀደ ቅደም ተከተሎች፡-

> S1916 ;_N1_H1_W1;

gggtcttggc

> S1916 ;_N1_H2_W1;

gggcgtttcg

> S1916 ;_N1_H3_W1;

ggggggctct

ፋይል neg _2200. ተከታይ

የግቤት ውሂብ ለማውረድ የተጠቃሚ መመሪያን ነጥብ 1 ይመልከቱ

2.የፕሮግራሙን መለኪያዎች ማቀናበር. ቅጦችን የማመንጨት ሂደት መጀመር.

የፍለጋ አማራጮች ተዘጋጅተዋል፡-

የመተማመን ጊዜ: 0.05

ደቂቃ የሲፒ ደረጃ፡ 0 ,8 ;

የማጠናቀቂያው መጠን: 2000;

የንዑስ ማቋቋሚያዎች መጠን፡ 100

ፕሮግራሙ 2000 ቅጦችን አግኝቷል (ምስል 9).


ሩዝ. 9 የፍለጋ መለኪያዎችን የሚያረኩ ቅጦች.

3. ተስማሚ የክፍል ዕቃዎች ግንባታ.

በፕሮግራሙ ምክንያት አንድ ክፍል ተገኝቷል. የክፍሉ ተስማሚ ነገር እና የትንበያ ማትሪክስ በምስል ውስጥ ይታያሉ። 10.


ሩዝ. 10. ለ FSTF ተስማሚ ክፍል ነገር እና ትንበያ ማትሪክስ EGR1.

4. የተገኙትን መደበኛነት አተገባበር. የማወቂያ ስህተቶች ስሌት.

እንደ አወንታዊ ቅደም ተከተሎች በተመሳሳይ የኑክሊዮታይድ ድግግሞሽ የተፈጠሩ ቅደም ተከተሎች እንደ አሉታዊ ቁጥጥር ተወስደዋል. ፋይልመቆጣጠር_ neg _1000. ተከታይ. መርሃግብሩ የእያንዲንደ ነገርን ክብደት ስሌት, አመዳደብ እና እውቅና (ምስል 11) አከናውኗል.


ሩዝ. 11. ለ PTFS የመቆጣጠሪያ ዕቃዎችን መለየት እና መለየት EGR1.

ሪፖርትህ በብዙ ዓምዶች ውስጥ ብዙ ውሂብ ያለው ሠንጠረዥ ይዟል እንበል። የእንደዚህ አይነት ሠንጠረዦች ምስላዊ ትንተና እጅግ በጣም አስቸጋሪ ነው. እና ከሪፖርቱ ጋር አብሮ ለመስራት አንዱ ተግባር ከአንድ ወር ጋር የተያያዙ የረድፎችን እና የአምዶችን ርዕሶችን በተመለከተ መረጃን መመርመር ነው. በመጀመሪያ ሲታይ, ይህ በጣም ቀላል ስራ ነው, ነገር ግን አንድ መደበኛ ተግባር በመጠቀም ሊፈታ አይችልም. አዎ ፣ በእርግጥ መሣሪያውን መጠቀም ይችላሉ-"ቤት" - "ማስተካከያ" - "ፈልግ" CTRL + F በ Excel ሉህ ላይ የፍለጋ መስኮቱን ለመጥራት። ወይም ለሠንጠረዡ ሁኔታዊ ቅርጸት ደንብ ይፍጠሩ. ነገር ግን ከዚያ በተገኘው ውጤት ተጨማሪ ስሌቶችን ለማከናወን የማይቻል ይሆናል. ስለዚህ ተገቢውን ቀመር መፍጠር እና በትክክል መተግበር አስፈላጊ ነው.

በ Excel ድርድር ውስጥ እሴት ማግኘት

የችግር አፈታት ዘዴው ይህንን ይመስላል።

  • በሴል B1 ውስጥ እኛ የምንፈልገውን ውሂብ እናስገባለን;
  • ሕዋስ B2 የሕዋስ B1 ዋጋን የያዘውን የአምድ ርዕስ ያሳያል
  • ሕዋስ B3 የሕዋስ B1 ዋጋን የያዘውን የረድፍ ስም ያሳያል።

በእውነቱ, በ Excel ውስጥ መጋጠሚያዎችን መፈለግ ያስፈልግዎታል. ለምንድን ነው? ብዙውን ጊዜ የጠረጴዛውን መጋጠሚያዎች በዋጋ ማግኘት አለብን። እንደ የተገላቢጦሽ ማትሪክስ ትንታኔ ትንሽ። አንድ የተወሰነ ምሳሌ በአጭሩ ይህንን ይመስላል። በቁጥሮች ውስጥ የተቀመጠው ግብ የመጀመሪያ እሴት ነው, ለዚህ ግብ በጣም ቅርብ የሆነው ማን እና መቼ እንደሆነ መወሰን አስፈላጊ ነው. እንደ ምሳሌ ከዚህ በታች ባለው ስእል እንደሚታየው ሶስት አራተኛውን የተሸጡ ዕቃዎችን ሪፖርት የሚያቀርብ ቀላል የመረጃ ማትሪክስ እንጠቀም። ሁሉም ቁጥሮች መመሳሰል አስፈላጊ ነው. የ Excel ተመን ሉህ ከባዶ በእጅ ለመፍጠር እና ለመሙላት ፍላጎት ከሌለ በአንቀጹ መጨረሻ ላይ ዝግጁ የሆነ ምሳሌ ማውረድ ይችላሉ።

የተለያዩ ውስብስብ መፍትሄዎችን በቅደም ተከተል እንመለከታለን, እና በአንቀጹ መጨረሻ - የመጨረሻው ውጤት.

በኤክሴል አምድ ውስጥ እሴት ማግኘት

በመጀመሪያ፣ የሠንጠረዥ አምድ ራስጌዎችን በዋጋ እንዴት ማግኘት እንደምንችል እንማር። ይህንን ለማድረግ የሚከተሉትን ደረጃዎች ይከተሉ:

  1. በሴል B1 ውስጥ ከሠንጠረዥ 5277 የተወሰደውን እሴት አስገባ እና ለግቤት መስኩ ተነባቢነት ዳራውን በሰማያዊ አጉልተው (በተጨማሪ አዲስ እሴቶችን ለመሞከር በሴል B1 ውስጥ ሌሎች ቁጥሮችን እናስገባለን)።
  2. በሴል C2 ውስጥ ይህን እሴት የያዘውን የሰንጠረዡን ዓምድ ርዕስ ለማግኘት ቀመሩን ያስገቡ፡-
  3. ቀመሩን ለማረጋገጥ ቀመሩን ከገቡ በኋላ ትኩስ የቁልፍ ጥምርን CTRL + SHIFT + Enter ን ይጫኑ ምክንያቱም ቀመሩ በድርድር መከናወን አለበት። በትክክል ከተሰራ፣ የተጠማዘዙ ማሰሪያዎች () በቀመር አሞሌው ጠርዝ ዙሪያ ይታያሉ።

በኤክሴል ረድፍ ውስጥ ዋጋ ማግኘት

አሁን ለተመሳሳይ እሴት (5277) የመስመር ቁጥሩን እናገኛለን. ይህንን ለማድረግ በሴል C3 ውስጥ የሚከተለውን ቀመር ያስገቡ።

ለማረጋገጥ ቀመሩን ከገቡ በኋላ እንደገና የቁልፍ ጥምርን CTRL + SHIFT + አስገባ ይጫኑ እና ውጤቱን ያግኙ።


ቀመሩ ቁጥር 9 ን መልሷል - የሉህ ረድፉን ርዕስ በተዛማጅ ሰንጠረዥ እሴት አገኘ። በውጤቱም, የ D9 እሴት ሙሉ አድራሻ አለን.



የሠንጠረዡን የአምድ ርዕስ እና የረድፍ ርዕስ እንዴት ማግኘት እንደሚቻል

አሁን ሙሉውን ሉህ ሳይሆን የአሁኑን ሰንጠረዥ መጋጠሚያዎች እንዴት በዋጋ ማግኘት እንደምንችል እንማር። በአንድ ቃል፣ ራስጌዎችን ለማግኘት ከD9 ይልቅ በ5277 እሴት መፈለግ አለብን፡-

  • ለሠንጠረዡ ዓምድ - መጋቢት;
  • ለመስመሩ - ንጥል 4.

ይህንን ችግር ለመፍታት ቀመሩን በሴሎች C2 እና C3 ውስጥ ከተገኙት እሴቶች ጋር እንጠቀማለን ። ይህንን ለማድረግ ይህንን እናደርጋለን-


በውጤቱም, የጠረጴዛው ውስጣዊ መጋጠሚያዎች በዋጋ - መጋቢት; ንጥል 4፡


በ Excel ክልል ውስጥ ተመሳሳይ እሴቶችን ማግኘት

በሠንጠረዡ ዋጋዎች መካከል የተባዙ መኖራቸውን ለመቆጣጠር, የተባዙ መኖራቸውን የሚያሳውቅ እና ቁጥራቸውን ለመቁጠር የሚያስችል ቀመር እንፈጥራለን. ይህንን ለማድረግ በሴል E2 ውስጥ ቀመሩን ያስገቡ-

በተጨማሪም ፣ ለሠንጠረዡ ክፍል ክልል ፣ ሁኔታዊ ቅርጸት ደንብ እንፈጥራለን-



እንደሚመለከቱት, ብዜቶች ካሉ, የርዕስ ፎርሙላ ርእሱን ከመጀመሪያው ብዜት በአግድም (ከግራ ወደ ቀኝ) ይወስዳል. እና የመስመሩን ስም (ቁጥር) ለማግኘት ቀመር ቁጥሩን ከመጀመሪያው ብዜት በአቀባዊ (ከላይ እስከ ታች) ይወስዳል። ይህንን መፍትሄ ለማስተካከል 2 መንገዶች አሉ-


በዚህ ሁኔታ, ቀመሮቹን አንድ ወይም ሌላ እንለውጣለን, ግን በአንድ ጊዜ ሁለት አይደሉም. የድሮው ቀመር በሴል C3 ውስጥ መቆየት እንዳለበት ማስታወሱ ጠቃሚ ነው-


እዚህ, የመጀመሪያው ብዜት (ከላይ ወደ ታች) ቀጥ ያሉ መጋጠሚያዎች በትክክል ይታያሉ - I7 ለሉህ እና ነሐሴ; ለጠረጴዛው ምርት 2. ይህንን አማራጭ ለቀጣዩ የመጨረሻ ምሳሌ እንተወው።

በኤክሴል ክልል ውስጥ በጣም ቅርብ የሆነውን ዋጋ ማግኘት

ይህ ጠረጴዛ አሁንም ፍጹም አይደለም. ከሁሉም በኋላ, ሲተነተን, ሁሉንም እሴቶቹን በትክክል ማወቅ ያስፈልግዎታል. በሴል B1 ውስጥ የገባው ቁጥር በሰንጠረዡ ውስጥ ካልተገኘ ስህተት ተመልሷል - #VALUE! በሠንጠረዡ ውስጥ የመጀመሪያ ቁጥር ከሌለ ቀመሩ ራሱ ሠንጠረዡ የያዘውን የቅርቡን ዋጋ ቢመርጥ ጥሩ ነው። እንደዚህ ያለ የሰንጠረዥ ትንተና ፕሮግራም ለመፍጠር በሴል F1 ውስጥ አዲስ ቀመር ያስገቡ፡-

ከዚያ በኋላ ይከተላል በሁሉም ሌሎች ቀመሮች፣ ከ B1 ይልቅ ማጣቀሻውን ይቀይሩ F1 መሆን አለበት!እንዲሁም አገናኙን በሁኔታዊ ቅርጸት መቀየር አለብዎት። ይምረጡ: "ቤት" - "ስታይል" - "ሁኔታዊ ቅርጸት" - "ደንቦችን ማስተዳደር" - "ደንብ አርትዕ". እና እዚህ መለኪያዎች ውስጥ ከ B1 ይልቅ F1 ይግለጹ. ፕሮግራሙን ለመፈተሽ በሴል B1 ውስጥ በሠንጠረዡ ውስጥ የሌለ ቁጥር ያስገቡ ለምሳሌ 8000. ይህ ወደ መጨረሻው ውጤት ይመራል.


አሁን ማንኛውንም የመጀመሪያ እሴት ማስገባት ይችላሉ, እና ፕሮግራሙ እራሱ በሰንጠረዡ የያዘውን የቅርቡን ቁጥር ይመርጣል. ከዚያ ለአሁኑ ዋጋ የአምድ ራስጌ እና የረድፍ ስም ያሳያል። ለምሳሌ፣ ቁጥር 5000 ካስገቡ፣ አዲስ ውጤት እናገኛለን፡-


በኤክሴል ውስጥ ያለን ፕሮግራማችን ለዋናው እሴት 4965 ያለውን የቅርብ ዋጋ አገኘ - 5000. እንዲህ ዓይነቱ ፕሮግራም በንግድ እቅድ ውስጥ የተለያዩ የትንታኔ ችግሮችን በራስ-ሰር ለመፍታት ፣ ግቦችን ለማውጣት ፣ ምክንያታዊ መፍትሄ ለማግኘት ፣ ወዘተ. እና የተገኙት ረድፎች እና አምዶች አዲስ የ Excel ቀመሮችን በመጠቀም የዚህ አይነት ሪፖርቶችን የማስላት ችሎታዎችን የበለጠ ለማስፋት ያስችሉዎታል።

በተግባራዊ ፕሮግራሚንግ FP (ኤፍፒ) ድጋፍ ፈንድ ስር በተያዘው ተግባራዊ ፕሮግራም ላይ። በተለምዶ የውድድሩን ውጤት ጠቅለል አድርጌ በሃሽል የፕሮግራም አወጣጥ ቋንቋ በመጠቀም የውድድር ችግርን ስለመፍታት ማውራት እፈልጋለሁ። ስለዚህ ይህን ትንሽ ማስታወሻ ለማንበብ ፍላጎት ያላቸው ሁሉ እጋብዛለሁ።

እንደ ውድድር ተግባር ፣ “በዘፈቀደ” በሚመስሉ ክስተቶች ውስጥ ቅጦችን ለመፈለግ አንድ ተግባር ቀርቧል። ነገር ግን በዚህ ዓለም ውስጥ እንዳለ ማንኛውም ነገር፣ እንደሚታየው፣ የኳንተም ግዛቶችን የመለካት ውጤቶች በዘፈቀደ ብቻ ናቸው፣ ስለዚህም በሁሉም ነገር ውስጥ አንዳንድ ቅጦችን ማግኘት ይችላሉ። ስለዚህ እዚህ. አንዳንድ ክስተቶች የተከሰቱበት የቀናት ዝርዝር ተሰጥቷል፣ እና ሁለት ጥያቄዎችን ለመመለስ ታቅዶ ነበር።

  1. ቢያንስ በአንድ ቀን ውስጥ የአንድ ክስተት ድግግሞሽ የመከሰት እድሉ ከ 50% ጋር እኩል ወይም የበለጠ የሚሆንበት ዝቅተኛው ጊዜ ስንት ነው?
  2. ከውድድሩ ቀን ጀምሮ እስከ ያዝነው አመት መጨረሻ ድረስ የዝግጅቱን መገለጥ ትንበያ መስጠት አስፈላጊ ነበር.

ሁለት ተወዳዳሪዎች ብቻ መፍትሄዎችን መስጠት ችለዋል። ይሁን እንጂ ሁለቱም የተሳሳቱ ነበሩ, ምክንያቱም የመጀመሪያው ጥያቄ ትክክለኛ መልስ ቁጥር 24 ነው. ነገር ግን ሁለተኛው ተግባር በዓመቱ መጨረሻ ላይ, የክስተቶች መገለጫዎች ላይ ስታቲስቲክስ በሚገለጥበት ጊዜ ይከናወናል. ስለዚህ ለመጀመሪያው ጥያቄ ሽልማቱ ሳይወጣ የቀረ ሲሆን የሁለተኛው ጥያቄ ሽልማት በሚቀጥለው ዓመት ተጨማሪ ነጥብ ለሚያስመዘግብ ተወዳዳሪ ይሰጣል።

ደህና፣ በ Haskell ፕሮግራሚንግ ቋንቋ ውስጥ የእነዚህን ችግሮች መፍትሄ ማጤን እዚህ ይቀራል።

የጊዜ ፍለጋ

በመጀመሪያ ደረጃ የክስተት መገለጫዎች ዝርዝር ተገልጿል፡-

ቀኖች:: ቀኖች = ["09/27/2013", "10/06/2013", "10/23/2013", "11/06/2013", "11/26/2013", "11/27" /2013፣ "12/21/2013", "12/30 .2013", "01/06/2014", "01/16/2014", "01/17/2014", "01/17/2014", "01/21/2014" "፣ "01/25/2014", "01/26/2014", "02/05/2014", "02/11/2014", "02/21/2014", "02/21/2014", "03/02/2014", ". "03/07/2014", "03/30/2014", "04/08/2014", "04/18/2014", "04/23/2014", "04/27/2014", "04/27/2014", "05 /02/2014, "05/15/2014", "05/17/2014", "05/18/2014", "05/19/2014", "05/20/2014", "05/25" /2014፣ "05/26/2014"፣ "05/28 .2014"]

የጠቋሚ እይታ እንኳን በዚህ ዝርዝር ውስጥ ምንም ግልጽ ቅጦች እንደሌሉ ያሳያል. ነገር ግን በተከታታይ ለበርካታ ቀናት በእሱ ላይ ማሰላሰል አንድ ነገር ሊገለጥ ይችላል. በማሰላሰል ላይ ትርጉም የለሽ ጊዜን ላለማባከን ፣ በተለያዩ ርዝማኔዎች ውስጥ ቅጦችን ለመፈለግ ፕሮግራም ለመፃፍ ብቻ ተወስኗል። በተግባራዊ ፕሮግራሚንግ ቋንቋዎች እንደተለመደው ከላይ እስከ ታች ይህን ፕሮግራም መፃፍ እንጀምር። የፕሮግራሙ ዋና ተግባር እነሆ፡-

ዋና:: IO () ዋና = putStrLn አድርግ (" ++ "በቀን ቅደም ተከተል በትንሹ የርዝመት ጊዜ ውስጥ የሚገኙ ቅጦች" ++ ትዕይንት (ርዝመት ማግኘትMinimalPeriod) ++ "ቀናቶች።

እዚህ ሁለት የተግባር ጥሪዎች አሉ, በሚቀጥለው እንመለከታለን. የመጀመሪያው፣ FindMinimalPeriod፣ ለተወሰነ የመሆን ገደብ አነስተኛውን የርዝማኔ ጊዜ ይመልሳል። በትኩረት የሚከታተለው አንባቢ ምንም ክርክሮች እንዳልተተላለፉ ያስተውላል፣ ስለዚህ የመመቻቸት ጣራ እንደ ቋሚ በሆነ ቦታ ይገለጻል። በአጠቃላይ ይህ ለተግባራዊ ፕሮግራሚንግ ፓራዲጅም መጥፎ አሠራር ነው, ነገር ግን አንዳንድ ጊዜ ለምርምር ዓላማዎች በፍጥነት ውጤቶችን ለማግኘት ይረዳል. ስለዚህ ትርጉሙ ይኸውልህ፡-

አስፈላጊነት :: Int ትርጉም = 5 lowProbability :: ተንሳፋፊ lowProbability = 0.5 findMinimalPeriod::

ትርጉሙ ቋሚው የጊዜ መለኪያው የተጎዳበትን የሲሊንደር ዝቅተኛውን "ቁመት" ይወስናል (ከሁሉም በኋላ, ወቅቶችን ለማግኘት, የዝግጅቱን ቀናት በረዥም ቴፕ ላይ ምልክት ማድረግ ይችላሉ, ከዚያም በዙሪያው በመጠምዘዝ ይንፉ. የተወሰነ ክብ ያለው ሲሊንደር ፣ እሱም ክፍለ-ጊዜውን የሚወስነው ፣ በዚህ መሠረት ንድፎቹ ቀጥ ያሉ መስመሮችን ይመስላሉ)። ደህና፣ ዝቅተኛ ፕሮባቢሊቲ ቋሚ ለክስተቱ መከሰት አነስተኛውን የይሁንታ ገደብ ያዘጋጃል። የ FindMinimalPeriod ተግባር እራሱ ከተጠቀሰው ገደብ ያላነሰ እድል መኖሩ ዝርዝሩን ካጣራ በኋላ የተገኘውን የዝርዝሩን ራስ ይወስዳል፣ ይህም (ዝርዝሩ) የሚገኘው በሂደት (የሂደቱ ተግባር) ከ 1 እስከ አንዳንድ የላይኛው ወሰን ቁጥሮች ነው።

የላይኛው ድንበር የሚወሰነው የጊዜ ክፍተት ተግባሩን በመጠቀም ነው ፣ ትርጉሙም እንደሚከተለው ነው ።

ክፍተት ::Int ክፍተት = መጨረስ - ከተጀመረበት ጀምር = stringToDayOfYear $head ቀኖች ያበቃል = 365 + stringToDayOfYear(የመጨረሻ ቀኖች)

እንደሚመለከቱት, እዚህ የዝግጅቱ መግለጫዎች የተቀመጡበትን የጊዜ ርዝመት እንመለከታለን. የመጀመሪያውን ቀን ከመጨረሻው ቀን እንቀንሳለን (ምናልባት 1 ማከል አስፈላጊ ሊሆን ይችላል). ይህ ተግባር በጣም ጥሩ አይደለም, ምክንያቱም ቁጥር 365 አለው, ይህም ማለት ሁለንተናዊ አይደለም. ለማንኛውም። በተጨማሪም የቀደመው ተግባር (FindMinimalPeriod) በአጠቃላይ በደንብ ያልተጻፈ ነው እና ወደ ጭንቅላት ተግባር የተላለፈውን ዝርዝር ባዶነት ማረጋገጥ ባለመቻሉ የአሂድ ጊዜ ስህተት ሊጥል ይችላል።

አሁን ወደ የሂደቱ ተግባር ፍቺ እንሂድ፡-

ሂደት :: ክፍልፋይ a => ኢንት -> [(Int, a)] ሂደት p = ካርታ (l -> (fst $head l, ((/) `on` fromInteger) ( ድምር $ ካርታ snd l) (toEnum $ ርዝመት l))) $ በቡድን በ ((==) `በ fst) $ ዓይነት በ (fst በማወዳደር) $ ካርታ (የመጀመሪያው (`mod` p) . i -> i `elem` ds3 ከሆነ ከዚያ (i, 1) ሌላ (i፣ 0)) የት ds1 = የካርታ stringTodayOfYear ቀኖች ds2 = ያልበሰለ (++) $ ሰከንድ (ካርታ (+365)) $span (>= ራስ ds1) ds1 ds3 = ካርታ (መቀነስ (ራስ ds2)) ds2

ተግባሩ የወቅቱን የጊዜ ርዝመት እንደ ግብአት ይቀበላል እና የጥንዶች ዝርዝር (ሂስቶግራም) ይመልሳል ፣ በዚህ ውስጥ የመጀመሪያው ንጥረ ነገር በጊዜው ውስጥ ያለው የቀን ብዛት ነው ፣ ሁለተኛው ደግሞ በዚህ ቀን የመከሰት እድሉ ድግግሞሽ ነው። . የአካባቢያዊ ፍቺዎችን ds1, ds2 እና ds3 በመጠቀም ክስተቱ የተከሰተበት ተከታታይ ቀናት ዝርዝር ይገነባል, በቀናት ዝርዝር ውስጥ ከመጀመሪያው ቀን ጀምሮ. ከዚያም ይህ ዝርዝር በሚከተለው ቅደም ተከተል ይከናወናል. ለሁሉም ቁጥሮች ከ 1 እስከ ክስተቱ የተከሰተበት የመጨረሻ ቀን ቁጥር ፣ የቀረው ክፍል በጊዜው ርዝመት ይፈለጋል። ለእንደዚህ አይነት ቀሪዎች ሁሉ፣ በተዛማጅ ቀን ምንም ክስተት ከሌለ ባንዲራ 0 ተቀናብሯል፣ እና ከሆነ ባንዲራ 1። ከዚያም ባንዲራ ያላቸው ቀሪዎች ዝርዝር በቅሪቶች ይመደባሉ, ከዚያ በኋላ ቡድኖቹ በቅጹ ጥንድ ይወድቃሉ (በጊዜው ውስጥ ያለው የቀን ቁጥር, የዝግጅቱ የመከሰት እድል). ሁሉም።

እዚህ ሁለት ተጨማሪ የአገልግሎት ተግባራትን ግምት ውስጥ ማስገባት አለብን.

ድርብ:: a -> (a, a) double x = (x, x) stringTodayOfYear:: ሕብረቁምፊ -> Int stringToDayOfYear = uncurry (monthAndDayToDayOfYear ውሸት)። (አንብብ . መውሰድ 2 . drop 3 *** ማንበብ . መውሰድ 2 ) . ድርብ

ስለ መጀመሪያው ምንም የሚናገረው ነገር የለም (ትርጉሙ በመደበኛ ፕሪሉድ ሞጁል ውስጥ አለመኖሩ ብቻ ነው ፣ ምንም እንኳን ይህ ለመረዳት የሚቻል ቢሆንም ፣ እሱ በጣም ቀላል ስለሆነ)። ሁለተኛው ተግባር ቀኑን ከ "DD.MM.YYY" የሕብረቁምፊ ውክልና ወደ የቁጥር ውክልና በ Data.Time.Calendar.Monthday ሞጁል ውስጥ ወደተቀበለው የቁጥር ውክልና ይቀይረዋል፣ እሱም ቀኖችን ለማስኬድ ይጠቅማል።

በመጨረሻ፣ የመገለጥ ቅደም ተከተሎችን ተግባር እንገልፃለን፡-

የመገለጫ ቅደም ተከተሎች :: [(Int, ተንሳፋፊ)] -> IO () የገለጽ ቅደም ተከተሎች ps = አድርግ l = ርዝመት ps(d1, p1) = ከፍተኛ በ(snd በማወዳደር) ps(d2, p2) = ከፍተኛ በ(snd በማወዳደር) $ሰርዝ d1, p1) ps putStrLn ("ከፍተኛው የዝግጅቱ መገለጫ (ይቻላል:" ++ አሳይ p1 ++ ") የሚከሰተው በ" ++ ትዕይንት (d1 + 1) ++" ኛ ቀን በ" ++ ትዕይንት l + + "-day period.") putStrLn ("ሁለተኛው ከፍተኛ (ይቻላል:" ++ አሳይ p2 ++ ") የሚከሰተው በ" ++ ትዕይንት (d2 + 1) ++ "ኛ ቀን.")

እንደሚመለከቱት ፣ በተሰጠው ዝርዝር (ሂስቶግራም) ውስጥ የዝግጅቱን መግለጫ ሁለት ጫፎች በቀላሉ ያገኛል እና ያሳያል። ይህ ተግባር ለጥናቱ ምቾት ብቻ የተተገበረ ሲሆን በውድድሩ ውስጥ ከተቀመጠው ተግባር መፍትሄ ጋር የተያያዘ አይደለም.

ትንበያ

አሁን ወደ ውድድር ሁለተኛው ጥያቄ እንሂድ - የዝግጅቱ መገለጥ ቀናት ከዓመቱ መጨረሻ በፊት መተንበይ። በአጠቃላይ የትንበያ ስራ ምስጋና ቢስ ተግባር መሆኑን ልብ ሊባል ይገባል. አንድ ጥያቄ ግልጽ የሆነ ንድፍ ሲኖረን (ምንም እንኳን ሊሆን የሚችል ቢሆንም) እና ብዙ ወይም ያነሰ የመወሰን ቀመር መተግበር እንችላለን. የተወሰነ (በጣም ትንሽ) የእሴቶች ቁጥር ሲኖር ሙሉ ለሙሉ የተለየ ጉዳይ ነው, በዚህ መሠረት የወደፊቱን ጊዜ መገንባት አስፈላጊ ነው. እጅግ በጣም ብዙ የሁለትዮሽ ነጥቦች አሉ ፣ ስለዚህ መቻቻል እና የጊዜ ክፍተት ስሌት እንኳን አይረዱም። ሆኖም ፣ የተወሰነ ጊዜ ካለፈ በኋላ አንዳንድ ዘዴዎችን ልንፈጥር እና ተፈጻሚነቱን ለመገምገም ልንሞክር እንችላለን እና የተበላሹትን እሴቶች ከትክክለኛዎቹ ጋር ማነፃፀር እንችላለን።

በዚህ መንገድ እናድርገው. የሚከተለው ዘዴ ሊመከር ይችላል. ሁሉንም ሊሆኑ የሚችሉ ወቅቶችን ግምት ውስጥ ያስገቡ ፣ በቀድሞው ደረጃ ከተገኙት ዝቅተኛ (ትናንሾቹ ፣ በእውነቱ ፣ በስታቲስቲክስ አሳማኝነት ላይ እምነትን አያበረታቱ) እና በመቻቻል ደንብ (“ውፍረት”) በተከፋፈለው የታወቀ የምልከታ ጊዜ ርዝመት ያበቃል። ቀደም ብለን እንደጠራነው) . ለእያንዳንዱ እነዚህ ጊዜያት የሂደቱን ተግባር በመጠቀም ይህንን ለማድረግ ቀደም ሲል ስለተማርን በእያንዳንዱ ቀን ውስጥ የክስተቶች የመከሰት እድሎችን እናገኛለን። በመቀጠል፣ ከግምት ውስጥ በማስገባት ለእያንዳንዱ ጊዜ ከተገኙት ሁሉም ዕድሎች ይልቅ ለእያንዳንዱ ቀን አማካኝ እድልን በቀላሉ እናገኛለን።

በሚከተለው ተግባር የሚተገበረው ይህ ዘዴ ነው.

ትንበያ ::የፋይል መንገድ -> ሕብረቁምፊ -> ሕብረቁምፊ -> አይኦ () ትንበያ fp sd fd = አድርግ (b, e) = (ርዝመት ማግኘትMinimalPeriod, interval`div` ጠቀሜታ) ጻፍ ፋይል fp $unlines $ ካርታ (((n, q) ) -> ፍቀድ (m፣ d) = dayOfYearToMonthAndday ሐሰት (n - 365) በ ቆንጆShowInt d ++ "." + 1))) $ foldr1 (ዚፕWith ((d,q1) (_, q2) -> (d, q1 +q2))) $ map getProbabilities where getProbabilities p = let ds = stringTodayOfYear $ ዋና ቀኖች fs = 365 + stringTodayOfYear (የመጨረሻ ቀኖች) d1 = 365 + stringToDayOfYear sd d2 = 365 + stringToDayOfYear fd በ drop (የጊዜ ክፍተት + (d1 - fs)) $ zipWith (x (_, q) -> (x, q)) $ ዑደት $ ሂደት p ዜሮ እየመራ. :: ሕብረቁምፊ -> ሕብረቁምፊ እየመራ ዜሮ [c] = "0": [c] leadingZero c = c prettyShowInt i = leadingZero $ show i prettyShowFloat f = let (d, r) = span (/= ".") $ አሳይ ( f*100) በመምራት ዜሮ d++ 5 መውሰድ (r++ ዑደት "0")

ትርጉሙ በተወሰነ ደረጃ አስፈሪ ይመስላል፣ ነገር ግን የስሌቶቹ አስኳል የ GetProbabilities አካባቢያዊ ፍቺ ነው (ከስሙ የየትኛው ዘዴ ደረጃ ጋር እንደሚዛመድ ግልጽ መሆን አለበት። የተቀረው በውድድር ሁኔታዎች በተገለፀው ቅርጸት የተገኙትን እሴቶች ወደ ፋይል ለማውጣት አስገዳጅ ብቻ ነው።

በአጠቃላይ, ሁሉም ነገር. አሁን የዓመቱን መጨረሻ መጠበቅ እና ትንበያውን ከእውነታው ጋር ማወዳደር ብቻ ይቀራል.