Excel日期+亂數問題

2013-12-05 1:42 am
之前曾發問以下問題

A1=2013/11/29(手動輸入日期)

希望B1能自動生成→〝00〞1021129〝-〞3碼亂數
或是 〝0〞20131129〝-〞3碼亂數

例:A1=2013/11/29
B1=001021129-358 或 020131129-358

得到Daniel的解答

但是我是要用excel作一份報價表單
要依不同日期自動生成表單編號
如依照Daniel的方法
我於其他儲存格輸入數值,B1就會跟著變動
這非我所要
不知是否有方法可達成我的需要
更新1:

我希望一個日期就自動產生一個表單編號 不要因為更動其他儲存格內容 而造成表編號更動 如要用巨集才達成 請問巨集要如何寫

更新2:

感謝cjw的回應 我有去載檔 可是不是我所須要的 我要的是 例:A1=2013/12/5 B1=001021205-xxx A1=2013/12/6 B1=001021206-xxx A1=2013/12/7 B1=001021207-xxx A1是可手動更改 B1是自動生成 之前Daniel有給一式 B1=TEXT(A1,"!0!0emmdd")&TEXT(RAND()*999+1,"-000") 是符合我的需求 但是我在其他儲存格輸入資料 B1的後3碼亂數一直變動 就不合我希望一個日期一個表單編號

更新3:

感謝cjw的回應 但這不是我需要的 感謝Worlon的回應 但是我存檔後再開啟都會出現已經停用巨集的訊息 不知除了使用巨集還有其他方法嗎

更新4:

感謝公道伯的回應 對於RAND這個函數我沒接觸過 所以我有去Google 也很感謝您再次的說明 至於我希望表單編號後三碼取亂數 這想法於您來說很爛 毫無意義 自找麻煩 但您不是實際的使用者 您怎知這樣的編碼對我來說有無意義 感謝Harmonica與EXCEL迷的回應 很抱歉我發問不夠詳細 我是一個活頁簿內含4個工作表 每一工作表需有一個表單編號 而2位所提供的公式要在同一工作表才會有變化 較不合我需求 感謝Worlon的回應 我用的是EXCEL 2010 我有找到〝巨集〞 但找不到〝巨集 安全性 中〞

更新5:

感謝Harmonica回應

回答 (7)

2013-12-07 5:49 am
✔ 最佳答案
首先,你要對亂數RAND() 這個函數先有基本的認識。它是只要電腦「重新計算」一次,就會新抓一個數字。你只要enter一次他就更新一次數字。

所以,除非你用「選擇性貼上 值」來「切斷更新」,否則是永遠無法解決你碰到的問題。

另外,歸根究底,你在表單編號後三碼取亂數,就是一個很爛的想法。毫無意義,使自己很困擾,也使別人更困擾而已。
如果你只是為了湊足12碼,何不後三碼固定000, 或111 或固定的三碼就好。
或是給它一個流水號,001, 002,....之類的。

天下本無事,庸人自擾之。

程式設計要越單純越好,不宜發揮太多創意。

2013-12-10 21:38:18 補充:
我們花時間來這邊,是希望對某些人有點幫助。

你會這樣設計,應該有你的目的,你不說出來別人不可能知道。

但要達到你的目的一定有比「設計成亂數」更高明的方法。希望你能拋棄成見試試別的方法,路會更寬廣。

設計成亂數,絕對是程式設計者的大忌。希望你能聽進去。
參考: 公道伯的部落格http://gondabo.blogspot.tw/
2013-12-07 7:46 pm
不同日期 分別編號
=TEXT(A1,"!0!0emmdd")&TEXT(COUNTIF(A$1:A1,A1),"-000")
2013-12-07 4:44 am
還是要去 http://aaashops。com 品質不錯,老婆很喜歡。
劘乛佫偺唤吔匄
2013-12-06 7:59 pm
插入 \ 名稱 \ 定義
X =EVALUATE("RAND()")

A1為日期, B1輸入
=TEXT(A1,"!0!0emmdd")&TEXT(X*999+0.5,"-000")

注意 :
1. … 999 + 0.5 … 才對
2. 因為使用了 EVALUE 這函數, 之後開檔會詢問巨 集勿怪

2013-12-06 15:36:45 補充:
工具 \ 巨集 \ 安全性 \ 中

重開檔案

即可

2013-12-06 15:42:36 補充:
若009也無法接受,就需勤勞些
每次作業完畢就複製選擇性貼上值
2013-12-05 7:52 pm
<<參考檔>>下載地址
http://www.FunP.Net/851928

2013-12-05 12:02:08 補充:
承上,如果編過的碼不再變動的話,參考檔如下:

下載地址

http://www.FunP.Net/53315

2013-12-06 10:24:23 補充:
不知符不符合版大的需求,試看看囉!

下載地址

http://www.FunP.Net/468689
2013-12-05 5:46 pm
隨機亂數本來就會隨著按ENTER而改變,不想讓它再變動要用巨集寫入這樣才會固定。

2013-12-13 13:46:53 補充:
不想用巨集方式,可試用下拉清單方式也可將值固定。
2013-12-05 4:29 am
建議改成
B1能自動生成→〝00〞1021129〝-〞3碼列碼
或是 〝0〞20131129〝-〞3碼列碼

這樣就不會變動了

---

如果一定要用亂數:
複製 → 選擇性貼上 → 值

2013-12-07 09:58:58 補充:
要不要考慮用列碼取代亂碼
=TEXT(A1,"!0!0emmdd")&TEXT(MOD(ROW(),1000),"-000")

2013-12-11 07:15:41 補充:
http://office.microsoft.com/zh-tw/excel-help/HA010354316.aspx

請參閱「變更信任中心的巨集設定」

2013-12-11 07:27:51 補充:
借用 EXCEL 大公式
每個表使用不同公式

表一
=TEXT(A1,"!0!0emmdd")&TEXT(COUNTIF(A$1:A1,A1),"-000")

2013-12-11 07:28:07 補充:
表二
=TEXT(A1,"!0!0emmdd")&TEXT(COUNTIF(A$1:A1,A1)+200,"-000")

表三
=TEXT(A1,"!0!0emmdd")&TEXT(COUNTIF(A$1:A1,A1)+400,"-000")

表四
=TEXT(A1,"!0!0emmdd")&TEXT(COUNTIF(A$1:A1,A1)+500,"-000")


收錄日期: 2021-04-27 20:43:25
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20131204000010KK03357

檢視 Wayback Machine 備份