1-ээс 8.3-аас 0-д хуваах алдаа. Excel дээр тэгээр хуваах алдааг томьёо ашиглан хэрхэн арилгах вэ. Excel дээр тэгээр хуваах алдаа

Цалин ба хүний ​​нөөц 3.0, 8.3.2580 платформ дээр алдаа гарлаа:

Цалин, шимтгэлийн тооцооны баримт бичгийг бөглөхдөө дараах мессеж гарч ирнэ.
X ажилтны 2017 оны 1-р сарын "Цалингаар төлөх" хуримтлалыг тооцоолоход алдаа гарлаа. 0-д хуваах
Тооцоонд ашигласан томъёо: Цалин * TimeInDays / StandardDays.

Шийдэл

Асуудал нь суулгасан тохиргооны тодорхой хувилбартай холбоотой тул үүнийг 3.1 болгож шинэчлэх шаардлагатай байна. Ерөнхий алгоритм нь:

1. Шинэчлэгдсэнплатформ шинэчлэгдсэн.
2. Шинэчлэгдсэн 3.1 хувилбар хүртэлх тохиргоо
3. Дибаг хийх програмыг эхлүүлсэн, алдаа гарсан
4. 1С-ийг бүрэн хааж, туршилтыг эхлүүлсэн chdbfl(алдаа олдсонгүй).
5. Тохируулагчийг эхлүүлж, эхлүүлсэн турших, засахдараах тохиргоотой (дээрээс доош): шалгах, горим, бүх хайрцгийг шалгах, шалгах, засах, хэрэв байхгүй объектуудын холбоос байгаа бол - холбоосыг арилгах, объектын өгөгдөл хэсэгчлэн алдагдсан бол - өөрчлөхгүй.
6. Дибаг хийх програмыг эхлүүлсэн ба Бүх зүйл цаг шиг болж, мэдээллийн сан шинэчлэгдэж, бөглөхөд алдаа гарсангүй

Энэ нь танд хэрэг болсон гэж найдаж байна :)

Математикийн хувьд тэгээр хуваах боломжгүй юм! Энэ дүрмийг тайлбарлах нэг арга бол нэг тоог нөгөө тоонд хуваахад юу болохыг харуулсан үйл явцыг шинжлэх явдал юм.

Excel дээр тэгээр хуваах алдаа

Бодит байдал дээр хуваах нь хасах үйлдэлтэй үндсэндээ адилхан юм. Жишээлбэл, 10-ын тоог 2-т хуваахад 10-аас 2-ыг дахин дахин хасдаг. Үр дүн нь 0-тэй тэнцэх хүртэл давталт давтагдана. Тиймээс араваас 2-ын тоог яг 5 удаа хасах шаардлагатай:

  1. 10-2=8
  2. 8-2=6
  3. 6-2=4
  4. 4-2=2
  5. 2-2=0

Хэрэв бид 10-ын тоог 0-д хуваах гэж оролдвол бид хэзээ ч 0-тэй тэнцүү үр дүнд хүрэхгүй, учир нь 10-0-ийг хасахад үргэлж 10 байх болно. Араваас тэгийг хязгааргүй олон удаа хасах нь биднийг үр дүнд хүргэхгүй = 0. Хасах үйлдлийн дараа үргэлж ижил үр дүн гарах болно =10:

  • 10-0=10
  • 10-0=10
  • 10-0=10
  • ∞ хязгааргүй.

Математикчдын хажуугаар тэд ямар ч тоог тэгээр хуваах үр дүн нь "хязгааргүй" гэж хэлдэг. 0-д хуваахыг оролдсон аливаа компьютерийн программ зүгээр л алдаа гаргадаг. Excel дээр энэ алдаа#DIV/0! нүдэн дэх утгаар харагдана.

Гэхдээ шаардлагатай бол Excel-д 0-ийн алдааг хуваах боломжтой. Хэрэв хуваагч нь 0 тоог агуулж байвал та хуваах үйлдлийг зүгээр л алгасах хэрэгтэй. Уг шийдлийг =IF() функцын аргументуудад операндуудыг байрлуулах замаар хэрэгжүүлнэ.

Тиймээс Excel томъёоалдаагүйгээр тоог 0-д "хуваах" боломжийг бидэнд олгодог. Дурын тоог 0-д хуваахад томьёо нь 0 утгыг буцаана. Өөрөөр хэлбэл хуваагдсаны дараа бид дараах үр дүнг авна: 10/0=0.



Тэг алдааг арилгах томъёо хэрхэн ажилладаг вэ?

Зөв ажиллахын тулд IF функц нь 3 аргументыг бөглөх шаардлагатай:

  1. Логик нөхцөл.
  2. Boolean нөхцөл ҮНЭН бол буцаах үйлдэл эсвэл утгууд.
  3. Boolean нөхцөл нь ХУДАЛ буцаах үед гүйцэтгэх үйлдэл эсвэл утгууд.

IN энэ тохиолдолднөхцөлт аргумент нь утгын шалгалтыг агуулна. Борлуулалтын баганын нүднүүдийн утга 0-тэй тэнцүү байна уу? Нөхцөлийн үр дүнг ҮНЭН эсвэл ХУДАЛ гэж гаргахын тулд IF функцийн эхний аргумент нь хоёр утгын хооронд харьцуулах операторуудтай байх ёстой. Ихэнх тохиолдолд тэнцүү тэмдгийг харьцуулах оператор болгон ашигладаг боловч >-ээс их эсвэл >-ээс бага гэх мэт бусад тэмдгийг ашиглаж болно. Эсвэл тэдгээрийн хослолууд – >=-ээс их буюу тэнцүү, тэнцүү биш!=.

Хэрэв эхний аргумент дахь нөхцөл нь ҮНЭНийг буцаавал томьёо нь нүдийг IF функцийн хоёр дахь аргументын утгаар дүүргэнэ. Энэ жишээнд хоёр дахь аргумент нь 0 тоог өөрийн утга болгон агуулна. Энэ нь "Борлуулалт" баганын эсрэг талд байгаа нүдэнд 0 борлуулалт байгаа бол "Гүйцэтгэл" баганын нүдийг зүгээр л 0 тоогоор дүүргэнэ гэсэн үг юм.

Хэрэв эхний аргумент дахь нөхцөл нь ХУДАЛ буцаавал IF функцийн гурав дахь аргументын утгыг ашиглана. Энэ тохиолдолд "Борлуулалт" баганын үзүүлэлтийг "Төлөвлөгөө" баганын үзүүлэлтээр хуваасны дараа энэ утгыг бүрдүүлнэ.

Тэг эсвэл тэгийг тоонд хуваах томъёо

=OR() функцээр томьёогоо төвөгтэй болгоцгооё. Дахиад нэгийг нэмье худалдааны төлөөлөгчтэг борлуулалттай. Одоо томъёог дараах байдлаар өөрчлөх хэрэгтэй.

Энэ томьёог Явц баганын бүх нүдэнд хуулна уу:


Одоо тэг нь хуваагч эсвэл тоологчийн аль хэсэгт байгаагаас үл хамааран томъёо нь хэрэглэгчийн хэрэгцээний дагуу ажиллах болно.

Өдрийн мэнд, эрхэм уншигчид. Нөгөө өдөр миний үйлчилдэг нэг компани надтай холбогдож асуудлаа хэлсэн.
1С-д сар хаах үед алдаа гарч ирэв: 0-ээр хуваах.

(Баримт бичиг. Худалдан авалтын дэвтрийн бүртгэлийг бүрдүүлэх. Объект модуль(2466)): 0-д хуваах
VATSstrings = Okr(Хүснэгтийн мөр.НӨАТ * AmountWithoutVATSstrings / TableLine.AmountWithoutVAT, 2);

Юуны өмнө би форумд орж 1С програмистуудаас зөвлөгөө авсан. Олон тооны валютыг шалгахыг надад хэлсэн. Энэ нь 1-тэй тэнцүү байх ёстой.

Валютын хэсэг рүү очихын тулд таб руу очно уу Банкболон табыг сонгоно уу Валютууд. Бид олон талт байдлыг хаа сайгүй шалгадаг, энэ нь тэнцүү байх ёстой 1 . Бид хаагдаагүй хугацааны ханшийг ачаалдаг.

Валютын хэсэг нь дараах байдлаар харагдах ёстой.

Мэдээллийн санг шалгасны дараа би валютын ханш, олон талт үзүүлэлттэй гэдэгт итгэлтэй байсан бүрэн захиалга, гэхдээ сар хэзээ ч хаагдаагүй. (Ихэнх тохиолдолд 0-д хуваах асуудал нь валютын ханшийн үржвэр юм)

Би энэ асуудлыг удаан хугацаанд олж чадаагүй, би худалдан авалт, борлуулалтын дэвтэрт байгаа бүх бичиг баримтыг шалгаж үзсэн.

Хэдхэн хоногийн дараа би энэ хэсэгт ямар ч бичилтгүй, шалгагдаагүй баримтыг оллоо Үйл ажиллагааЗохицуулалтын баримт бичиг 1С.

НӨАТ-ын зохицуулалтын баримт бичигт жагсаалтын төгсгөлд байршуулаагүй баримт олдсон. Юу ч бичээгүй худалдан авалтын ном үүсгэх, би үүнийг хийж, миний гайхшрал юу байсан бэ, сар хаагдсан, асуудал шийдэгдсэн.