史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   不知有哪位excel高手可以為我解惑??我的會辦文號公式到底該怎麼設定呢??? (http://forum.slime.com.tw/thread239156.html)

pipiwu0426 2008-11-19 05:10 PM

不知有哪位excel高手可以為我解惑??我的會辦文號公式到底該怎麼設定呢???
 
請問一下如果我的excel表格是這樣設計的


A日期 B單位 C主辦人 D案名 E文件種類 F會辦文號

4 97/11/10 業務部 小美 aaa 111 字第971110-1號

5 97/11/10 工務部 小麗 bbb 222 字第971110-1號

6 97/11/10 業務部 小美 aaa 333 字第971110-1號

7 97/11/11 設計部 大風 ccc 111 字第971111-1號

8 97/11/11 設計部 大風 ccc 111 字第971111-2號

9 97/11/11 設計部 大風 aaa 111 字第971111-1號

我想要設定根據不同的"單位"."案名"及"文件種類"可以自動取"會辦文號"(如F4.F5.F6.F7.F8.F9)

原先我的會辦文號公式是這樣設定

=IF(ISBLANK(A5),"","第"&TEXT(A5,"eemmdd")&"-"&IF(EXACT("第",MID(F4,1,1)),IF(EXACT(TEXT(A5,"eemmdd"),MID(F4,FIND("第",F4)+1,FIND("-",F4)-FIND("第",F4)-1)),MID(F4,FIND("-",F4)+1,FIND("號",F4)-FIND("-",F4)-1)+1,"1"),"1")&"號")

可是還要考慮到有可能在同一天,同一種類但不同單位的會辦文號..

不知有哪位excel高手可以為我解惑??我的會辦文號公式到底該怎麼設定呢???


謝謝!!:on_28:

getter 2008-11-19 10:51 PM

先不要考慮公式如何去下

1.先把你要的文號產生的基本公式原則歸納出來。
2.觀察其文號產生的基本公式是否有規律性。
3.選定資料的格式與樣式。
4.選擇適當的函數、公式,進行組合。
5.如果有資料內容就是哪幾樣的固定的選擇情形,如單位、人名時,
可以考慮使用下拉式選單。
6.最後反覆測試找問題。

getter 2008-11-20 03:25 PM

看來看去你的會辦文號原則是︰字第年月日-流水碼號
可以初步拆解為︰"字號"+年月日+"-"+流水碼 +"號"

依據你的公式來說 "字號"+年月日+"-"+流水碼+"號" 部分沒問題

你的問題點可能是流水碼的產生

因此先解決 1.辦文號原則 A 部分: 字第年月日- 號

轉成試算表公式:
語法:

IF(A2="","","字第 "&TEXT(A2,"eemmdd")&"-"&G2&" 號")

輸出為字第 971110-x 號



那個 G2 就是流水碼

------------------------------------------------------
再來是流水碼的產生依據,此依據照你的意思應該是只要當日有提出,
單位+案名+文件種類,就能自動產出吧。

因此初步拆解為:

語法:

IF(是不是當日) then IF(單位+案名+文件種類) then MARK 流水碼(當日從 1 開始累計)
在拆:
語法:

IF(原筆日期=前筆日期 )
  then IF(原筆(單位+案名+文件種類)=前筆(單位+案名+文件種類))
          then MARK 前筆流水碼 else MARK 前筆流水碼+1
else 預設流水碼為 1

轉成試算表公式:
語法:

IF(A2=A1
        ,IF(TRIM(B2)&TRIM(D2)&TRIM(E2)=
            TRIM(B1)&TRIM(D1)&TRIM(E1)
          ,MID(RIGHT(F1,3),1,1)
          ,MID(RIGHT(F1,3),1,1)+1)
        ,1)

最後組合的後的試算表公式:
語法:

IF(A2="","",
    "字第 "&TEXT(A2,"eemmdd")&"-"&
    IF(
A2=A1
            ,IF(TRIM(B2)&TRIM(D2)&TRIM(E2)=
                TRIM(B1)&TRIM(D1)&TRIM(E1)
                ,MID(RIGHT(F1,3),1,1)
                ,MID(RIGHT(F1,3),1,1)+1)
            ,1)
      &" 號")

輸出為字第 971110-1 號
輸出為字第 971110-2 號

這種公式會有幾個缺點:
1.資料需要排序,不然相同的日期下,相同流水碼條件的會有不同的流水碼產生。
2.日期需要使用日期格式儲存。
3.流水碼條件的(單位+案名+文件種類),若有包含空白字元,將會被公式
視為不同。就算是用 TRIM() 排除部分的含空白字元也是如此。
4.每一筆資料的文件案號的儲存格都要有相依的公式不然沒有作用。

因此,若要使用建議應採用 VBA 會比較好,可惜我不會 VBA。

試作表格下載:
修正之後
http://www.badongo.com/file/12166645
原始的多下一個"主辦人"的條件
http://www.badongo.com/file/12163481


如果這不是樓主的意思的話,那就算了,是我想錯了。請樓主慢慢想吧。


所有時間均為台北時間。現在的時間是 10:06 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1