有關excel的公式指令求解~

2015-01-29 11:53 pm
各位擅長excel的大大您好~
這邊有一些excel的公式與指令小弟並不清楚它的執行指令該要怎麼撰寫~
麻煩各位熟練公式指令的大大提供作法,謝謝~

小弟想要的基本公式與指令操作步驟內容:
1(非指令部分).在儲存格A1輸入一個四位數
2(指令).將儲存格A1內的四位數做顛倒的動作,並將結果顯示在儲存格B1
3(指令).將A1減去B1內的數字,並將結果顯示在儲存格C1
4(指令).將C1內的數字取絕對值

小弟想處理的特別狀況:
小弟想讓每個儲存格內的數字都保持''四位數''的形式,因此如果使用上述的操作步驟,很容易出現結果是三位數或二位數的情況,例如:
結果變成563,但依上述步驟,形式必須為0563才能夠進行指令。在正常情況下,excel不會允許數字以這種形式出現
請問有沒有將活頁簿中所有的數字都維持上述''四位數形式''的方式?麻煩各位大大若清楚解決方式,請一併解答小弟的疑問,謝謝~
更新1:

恩...如果各位經驗豐富的大大不嫌麻煩 能否依公式指令的輸入逐字解說? 小弟想了解整個指令語法是怎麼運作的~ 謝謝~

回答 (4)

2015-02-05 6:05 am
✔ 最佳答案
A1 自訂格式為 0000
B1=SUMPRODUCT(MOD(INT(A1/10^{0,1,2,3}),10)*10^{3,2,1,0})
C1=ABS(A1-B1)

2015-02-04 22:05:26 補充:

全選或適當範圍自訂格式為 0000
B1=SUM(MOD(INT(A1/10^{0,1,2,3}),10)*10^{3,2,1,0})
C1=ABS(A1-B1)

因為陣列我不太會解釋
先一個個函數慢慢來

INT(數字) 取高斯整數,以正數來說就是去掉整數後面的小數點。
例如:
INT(1.2)=1
INT(9.8)=9

MOD(被除數, 除數) 求餘數。
例如:
123/10=12...3
MOD(123,10)=3

SUM(範圍) 傳回範圍中的數字總和。
例如:
SUM({3,2,1})=3+2+1=6

2015-02-04 22:06:24 補充:
{陣列} 舉例說明
以 10^{0,1,2,3} 為例
會分別計算出 10^0, 10^1, 10^2, 10^3 得 {1,10,100,1000}

以 563/{1,10,100,1000} 為例
會分別計算出 563/1, 563/10, 563/100, 563/1000 得 {563, 56.3, 5.63, 0.563}

結合函數的例子
INT({563,56.3,5.63,0.563})
會分別取高斯整數得 {563,56,5,0}

MOD({563,56,5,0},10)
會分別將 {563,56,5,0} 除以 10 算出餘數,得 {3,6,5,0}

2015-02-04 22:07:04 補充:
兩個陣列做四則運算會分別以相對應的位置做計算
例如:
{3,6,5,0}*{1000,100,10,1}
會分別計算出 3*1000, 6*100, 5*10, 0*1 得 {3000,600,50,0}

2015-02-04 22:07:31 補充:
設 A1=0563
以 Excel 2010 為例
公式 → 評估值公式 → 評估值 → 評估值 → ...
可以看到運算過程

2015-02-04 22:08:07 補充:
SUM(MOD(INT(A1/10^{0,1,2,3}),10)*10^{3,2,1,0})
=SUM(MOD(INT(563/10^{0,1,2,3}),10)*10^{3,2,1,0})
=SUM(MOD(INT(563/{1,10,100,1000}),10)*10^{3,2,1,0})
=SUM(MOD(INT({563,56.3,5.63,0.563}),10)*10^{3,2,1,0})
=SUM(MOD({563,56,5,0},10)*10^{3,2,1,0})
=SUM({3,6,5,0}*10^{3,2,1,0})

2015-02-04 22:08:49 補充:
=SUM({3,6,5,0}*{1000,100,10,1})
=SUM({3000,600,50,0})
=3650

2015-02-04 22:13:56 補充:
ABS(數字) 取絕對值應該不用舉例了

我的解法就是依序找出個位數、十位數、百位數、千位數
再分別乘以 1000、100、10、1
最後全部加起來
2015-01-30 1:43 am
=TEXT(SUM(IFERROR(MID(A1,5-ROW($1:$4),1)*10^(4-ROW($1:$4)),)),REPT(0,4))

2015-01-30 14:35:59 補充:
http://blog.xuite.net/hcm19522/twblog/302588282
參考
2015-01-30 1:10 am
1.建議以"文字"格式呈現,如上例563就可以輸入成0563
2.新增一個自定義字串顛倒巨集,程式碼:
Function Reverse(Str As String)
Reverse = StrReverse(Str)
End Function
3.假設A1=1234,則
B1=Reverse(A1)→求出4321
C1=ABS(VALUE(A1)-VALUE(B1)) →求出3087

請參考
2015-01-30 1:01 am
1.A1存儲格按右鍵/存儲格格式/數值/文字
2.B1輸入公式=RIGHT(A1)&MID(A1,3,1)&MID(A1,2,1)&LEFT(A1)
3.C1輸入公式=ABS(A1-B1)
試看看!


收錄日期: 2021-04-27 21:40:29
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20150129000015KK03715

檢視 Wayback Machine 備份