Board logo

標題: [發問]分類整理配方需要量 [打印本頁]

作者: rakefrank    時間: 2013-9-5 21:21     標題: [發問]分類整理配方需要量

本帖最後由 rakefrank 於 2013-9-5 21:22 編輯

A1=G(a+b)(1.2+2)
B1=H(a+b+c)(3+1+4.2)
C1=K{a+(b+c)}{1.5+(2+2)}
D1=L{a+(b+c)}{1.5+(2+2)}

這是G、H、K、L配方的表示法
有辦法將a、b、c、d要多少量整理加總嗎?
請協助幫忙,感謝!

[attach]15959[/attach]
作者: p212    時間: 2013-9-6 09:36

本帖最後由 p212 於 2013-9-6 09:38 編輯

回復 1# rakefrank
就附件檔而言,您要的結果不是已整理好了嗎? (若就配方項目G、H、K、L...可能擴展項目數而言,依您的方法只要將「總需要量」列置於a、b、c、d列之上即可)
可以再將問題描述一下嗎?讓大夥兒一起研究吧!
謝謝!
作者: owen06    時間: 2013-9-6 09:48

你的陳述有點抽象,可以再說的清楚一點嗎?
因為就你的表來看,你都已經加總好了,不明白你還需要什麼其他功能?
作者: rakefrank    時間: 2013-9-6 13:56

本帖最後由 rakefrank 於 2013-9-6 13:57 編輯

因為只有4筆資料我可以馬上整理好
但是實際上配方大概有上萬種
而且成份也不只4種
有什麼辦法可以讓EXCEL解讀配方而自動計算成份
資料格式來源是txt檔

希望能自動分出成份
感謝大家的指導
作者: rakefrank    時間: 2013-9-6 14:09

[attach]15966[/attach]
附件B2~B5、C2~C5就是我嘗試要將成份比例解讀
有更好、更有效率的方法嗎
作者: ANGELA    時間: 2013-9-6 20:07

本帖最後由 ANGELA 於 2013-9-6 20:51 編輯

把C2公式改成=SUBSTITUTE(SUBSTITUTE(MID(A2,IF(ISERROR(SEARCH("}",A2,1)),SEARCH(")",A2,1),SEARCH("}",A2,1))+2,LEN(A2)-IF(ISERROR(SEARCH("}",A2,1)),SEARCH(")",A2,1),SEARCH("}",A2,1))-2),"(",),")",)往下copy
C13=--MID(SUBSTITUTE($C2,"+",REPT(" ",50)),1,50)
D13=--MID(SUBSTITUTE(C2,"+",REPT(" ",50)),51,50)
E13=IF((LEN(C2)-LEN(SUBSTITUTE(C2,"+",)))<2,"",--MID(SUBSTITUTE($C2,"+",REPT(" ",50)),101,50))
F13=IF((LEN(C2)-LEN(SUBSTITUTE(C2,"+",)))<3,"",--MID(SUBSTITUTE($C2,"+",REPT(" ",50)),151,50))
B2=IF(ISERROR(SEARCH("{",A2,1)),MID(A2,SEARCH("(",A2,1),SEARCH(")",A2,1)-SEARCH("(",A2,1)+1),MID(A2,SEARCH("{",A2,1),SEARCH("}",A2,1)-SEARCH("{",A2,1)+1))
作者: rakefrank    時間: 2013-9-6 21:29

回復 6# ANGELA

感謝你提供的建議
原來SUBSTITUTE和REPT這麼好用
作者: rakefrank    時間: 2013-9-6 21:34

再請教一下用SUBSTITUTE把字串變成B2=a+b+c+d後
想繼續分成C2=a
                      D2=b
                      E2=c
                      F2=d
麻煩指導
作者: ANGELA    時間: 2013-9-7 00:09

回復 8# rakefrank

    B2=a+b+c+d
    C2=TRIM(MID(SUBSTITUTE($B2,"+",REPT(" ",50)),COLUMN(A1)*50-49,50))向右copy
作者: rakefrank    時間: 2013-9-7 08:44

回復 9# ANGELA


    感謝指導
作者: ML089    時間: 2013-9-9 13:05

B2、C2公式簡化
  1. B2=MID(A2,2,-LOOKUP(,-FIND({")(","}{"},A2))-1)
  2. C2=MID(A2,-LOOKUP(,-FIND({")(","}{"},A2))+1,99)
複製代碼

作者: rakefrank    時間: 2013-9-9 21:26

感謝提供簡化
研究ANGELA和ML089給的公式
套用到現有全部配方中
發現還是有些配方會出問題
好像是有些特別配方命名比較不同
[attach]15992[/attach]
如:B(c+d)(3+120du+8)、C(e+f)(2+3hr+1.5atm+5)
         F{C(e+f)+k}{(2+3hr+1.5atm+5)+8hr+6)}
我再多整理一些比較奇怪的配方
再次感謝各位的回覆
作者: ML089    時間: 2013-9-10 10:25

回復 12# rakefrank

公式分解成B、C欄都沒有問題
之前成份名稱與份名份量是一對一,後來給的變成不是一對一情況?

你應該找一些標準格式(大部分)及特例格式,並把你希望取出來的格式及值作一個是範例,才能精準評估使用方式。
作者: rakefrank    時間: 2013-9-10 18:05

回復 13# ML089

造成困擾真的很抱歉
因為我也是剛接這個東西
看到文字檔時我整個傻眼
就開始人工慢慢整理
後來想到excel有函數可以使用
開始想如何用函數區分
且再經各位先進指導
發現真的很好用

但我將更多配方放進來時
就發現問題愈來愈多了

這些文字檔有上百個
裡面也各有上百個配方

一開始的配方只有單純的數量
但後來因為條件愈來愈多
所以也將條件加入到配方中
如果名稱與數量不相同的部份無法用函數拆解
那我只有以人工來做

來這裡能多學到一些大家寫函數的思維及技巧才是最重要的!
作者: ML089    時間: 2013-9-11 10:42

回復 14# rakefrank
  1. B2 =MID(A2,2,-LOOKUP(,-FIND({")(","}{"},A2))-1)
  2. C2 =MID(A2,-LOOKUP(,-FIND({")(","}{"},A2))+1,99)
  3. D2{ =MID($B2,SMALL(IF(LOOKUP(CODE(MID($B2,ROW($1:$22),1)&0),{0,97,123},{0,1,0}),ROW($1:$22),99),COLUMN(A:A)),1) }
  4. E2{ =TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(SUBSTITUTE($C2,"+",REPT(" ",99)),COLUMN(A:A)*99-98,99),"(",),")",),"{",),"}",)) }
複製代碼

作者: rakefrank    時間: 2013-9-11 19:26

回復 15# ML089

感謝提供
這個我要好好研讀一下才能夠了解




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)