אקסל חיסור בין 2 מספרים עשרוניים

ohad23

New member
שלום

אני מקבל דוח אקסל שמיוצא מתוך מערכת אחרת.
הדוח מגיע עם עמודות מספרים הכוללת 2 ספרות לאחר הנקודה
נדרשתי לבצע מניפולציה על המספרים ולחלץ מספר מסוים מאחת העמודות על ידי החסרה של מספר במספר.
לדוגמא:
אחת העמודות הכילה את המספר 9012.90 ועמודה שנייה את המספר 9000
אני רציתי לחלץ את הסכום 12.9 לכן יצרתי נוסחה של עמודה פחות עמודה ובעמודה השלישית יצרתי תנאי true או false על 12.9
הופתעתי לגלות שקיבלתי false
כשפתחתי את הספרות לאחר הנקודה העשרונית בעמודה המחושבת שיצרתי רואים לאחר כ 15 ספרות את זה - 12.8999999999996
בחיפוש באינטרנט אני מבין שזה משהו שקשור לנקודה צפה
מה זה אומר?
שבכל חישוב המבוסס על עמודות עשרוניות אני תמיד חייב לבצע round על התוצאה ולקבוע את מספר הספרות?
 

מיכאל אבידן

Member
מנהל
.
כנראה שה-9012.90 איננו "רק" 9012.90.

עזוב את ה-IF וחסר את ה- 9000 מ- 9012.90 כשאתה מרחיב את עמודת התוצאה פי 3, מרוחבה המקורי, ומוסיף 10 ספרות עשרוניות, לתא התוצאה, בעזרת הצלמית שבתמונה.

מה קיבלת ?

אם עדיין לא הבנת - רצוי שתצמיד את הקובץ ובו רק התאים הבעייתיים.

לא יזיק לקרוא באינטרנט אודות: Excel Floating Point


1641761896757.png
 

blzvi

Active member
לא
במאפייני התא אתה יכול להגדיר תצוגה עשרונית עם שתי ספרות לאחר הנקודה
 

קבצים מצורפים

  • oe.jpg
    oe.jpg
    KB 69.4 · צפיות: 4

ohad23

New member
לא
במאפייני התא אתה יכול להגדיר תצוגה עשרונית עם שתי ספרות לאחר הנקודה
להבנתי לא פותר את הבעיה
עדיין חיסור בין 2 העמודות במספרים בדוגמא שנתתי מייצר מספר עשרוני ארוך
 

ziv98

Member
צודק. בעיית הפלואט היא בעיה אמיתית ולא בעיית תצוגה. היא מפריעה "רק" שמחפשים שיוויון בין מספרים (בחישובים - כנראה פער זניח).
בעבר היה לי קובץ ששאב נתונים קבוע ממקור שיצר פלואט, במקום x=y השתמשתי ב:
קוד:
abs(x-y)<0.001
אפשר לפתור את בעיה בדרכים נוספות, תלוי במידת השליטה שלך במבנה הנתונים המקורי, בצורת היבוא (האם במקור הוא אקסל ? ) וכו'

אתה יכול לנסות (אם זה לא פוגע בחישובים אחרים !)
אפשרויות - מתקדם - בעת חישוב - הגדר רמת דיוק כפי שמוצג
 
נערך לאחרונה ע"י מנהל:

ohad23

New member
צודק. בעיית הפלואט היא בעיה אמיתית ולא בעיית תצוגה. היא מפריעה "רק" שמחפשים שיוויון בין מספרים (בחישובים - כנראה פער זניח).
בעבר היה לי קובץ ששאב נתונים קבוע ממקור שיצר פלואט, במקום x=y השתמשתי ב:
קוד:
abs(x-y)<0.001
אפשר לפתור את בעיה בדרכים נוספות, תלוי במידת השליטה שלך במבנה הנתונים המקורי, בצורת היבוא (האם במקור הוא אקסל ? ) וכו'
תודה לך
הבנתי
 
למעלה