אקסל: המרת מספר עשרוני לבסיס אחר, כגון 5 (ולא 2, 8, 16)

סקרמנטה

New member
אקסל: המרת מספר עשרוני לבסיס אחר, כגון 5 (ולא 2, 8, 16)

איך מבצעים באקסל 2007 (או לפחות ב-2010)? לדוגמא המרה לבסיס 5, וכמובן גם להיפך.
לא מצאתי פונקציה כזו.
תודה מראש, ושבוע טוב, וגמר חתימה טובה.
 

u333

New member
אחת האפשרויות - באמצעות ה-UDF הבאה (משוטטות ברשת)

Function BaseConv(InputNum, BaseNum)Dim Quotient, Remainder As Single
Dim Answer As String
Quotient = InputNumRemainder = InputNumAnswer = "" Do While Quotient <> 0 Remainder = Quotient Mod BaseNum Quotient = Int(Quotient / BaseNum) Answer = Remainder & Answer LoopBaseConv = Val(Answer)End Function
המשתנה הראשון - המספר
המשתנה השני - הבסיס
 

מיכאל אבידן

Member
מנהל
את מוזמנת לבדוק את ה-UDF שלהלן . . .


Function BaseConv(InputNum, BaseNum) Do While InputNum <> 0
BaseConv = Mid("0123456789", InputNum - BaseNum * Int(InputNum / BaseNum) + 1, 1) + BaseConv
InputNum = Val(Int(InputNum / BaseNum)) LoopEnd Function
 

u333

New member
גילוי נאות והצעת ייעול - הרחבת הפונק' עד בסיס 16

כעת - ב-2 הפונק' שהוצגו - הן עובדות עד בסיס 10
ניתן בקלות להסב את הפונקציה שהצעת להרחבה עד בסיס 16 ע"י החלפת השורה המתאימה לכזו::
BaseConv = Mid("0123456789ABCDEF", InputNum - BaseNum * Int(InputNum / BaseNum) + 1, 1) + BaseConv
הפונקציה שהוצעה על ידי פועלת רק עד בסיס 10
 

u333

New member
קראי במאמרי הפורום אודות UDF

התקיני את אחת הפונקציות שהוצעו לך בקובץ אקסל וראי איך זה משתלב.
אם את נתקלת בבעיות - ההמשך רק בצירוף קובץ עם הנסיונות ונסי להסביר את המשפט שלך "אני רוצה לארגן לעצמי טבלאות המרה מוכנות ולכן חשוב לי באקסל..."
ובקובץ שתצרפי תני דוגמא למה שאת קוראת "טבלת המרה"
 

מיכאל אבידן

Member
מנהל
לא, ממש, הצלחתי להבין באיזו בעיה נתקלת . . .


בניסיון להמיר את המספר העשרוני 123 לבסיס 5


למיטב זכרוני - הפונקציה המובנית, Dec2Base, מבצעת בדיוק את ההמרה.
 

סקרמנטה

New member
אבל אין פונקציה כזו

יש Dec2Bin, Dec2Oct, Dec2Hex .
אם היה Dec2Base לא הייתי שואלת כאן

אני רוצה לארגן לעצמי טבלאות המרה מוכנות ולכן חשוב לי באקסל, כי ברשת לא חסרים אתרי מחשבונים הממירים מספר בודד.
 
למעלה