(2.05更新之Type分析系統)

22.Type(E6)

IFERROR(,””)    //因為有使用者輸入,須判斷是否錯誤

IF(D4=””,””,)  //輸入不空白,D4會檢查

IF(OR(D4=20, D4=12, D4=16, D4=36, D4=76/3),”Type A”,)

IF(OR(D4=8, D4=20/3, D4=52/7, D4=28/3, D4=60/7),”Type B”,)

IF(D4=4,”Type C”,)

IF(OR(D4=2, D4=12/5, D4=28/13, D4=12/7, D4=28/15),”Type D”,)

IF(OR(D4=4/5, D4=4/3, D4=1, D4=4/9, D4=12/19),”Type E”,”我不知道這是什麼Type,主人”)

//分別判斷是否為各類型


演算法

為了保持畫面整潔
這裡將程式碼分行
如果程式碼的參數是另一段程式碼時
就會用箭頭佔據並分行
這是我在寫Excel時為了保持整潔與可讀性
刻意做的改變
接下來的程式碼也會用這種方式表示
程式碼後面的雙斜線是對該程式碼的解釋

  備註:未特別註明程式碼皆以ver2.02版本為準


 

0.[標題]([儲存格舉例])([範圍)

[程式碼]

 

其中若儲存格舉例與範圍相同,後者不填



 

 

1.指數計算(AA7)

=AA5+(150+2.5*AA6)*((AA6+1)*10)

//基礎指數 + 每十級計算每升一級平均增加指數 * 可升總級數

//計算在該星等下滿等會有的總指數



 

2. 至少增加-10LV一星(AO13)

=10*(AB13+AD13+AF13+AH13+AJ13+AL13)

//先計算至少會增加的血量攻擊



 

3. 額外加量(AB20,AD20)(AB~AM,20~24)

=10*AB13

=(AD13-AB13)*AD$10*10+AB20

//分別計算不同等級下還會再增加的量



 

4.方便計算格(AS8)(AS~BD)

=IF($E8="A",$AO$13+AB$20,)

  IF($E8="B",$AO$14+AB$21,)

    IF($E8="C",$AO$15+AB$22,)

      IF($E8="D",$AO$16+AB$23,)  

        IF($E8="E",$AO$17+AB$24,"")

//判定各卡牌Type(E),取上面23資料計算

//ASBD欄會分別列出1-6星等下該Type增加的血量攻擊



 

5.星等錯誤警告(A17)

=IFERROR(,"主人,星等請輸入1, 2, 3, 4, 5, 6")    //因為有使用者輸入,須判斷是否錯誤

  IF(,"","主人,星等請輸入1, 2, 3, 4, 5, 6")    //不符合不輸出

    OR(B2=1,B2=2,B2=3,B2=4,B2=5,B2=6)    //星等要是1-6的整數



 

6.血量錯誤警告(A18)

=IFERROR(,"血量必須是四的正倍數喵~~")    //因為有使用者輸入,須判斷是否錯誤

  IF(,"","血量必須是四的正倍數喵~~")    //不符合不輸出

    OR(,B3="")

      AND(B3>=0,)    //輸入值要正

        MOD(B3,4)=0    //輸入值要是四的倍數



 

7.攻擊錯誤警告(A19)

6,除了警示語不同輸入值要是整數以外

其他皆相同



 

8.滿等血量攻擊(H5)(HI)

=IF(E5="","",)

  IF($B$2=1,F5+AS5,)

    IF($B$2=2,F5+AU5,)

      IF($B$2=3,F5+AW5,)

        IF($B$2=4,F5+AY5,)

          IF($B$2=5,F5+BA5,)

            IF($B$2=6,F5+BC5,"")

//判定星等,再到方便計算格取值

//將取值加上該卡牌的基礎數值



 

9. 滿等時潛力剩餘(J5)(J)

=IFERROR($AA$7-(H8/4+I8),"")

//利用定理4來計算潛力



 

10.血、攻、反潛力排名(K5)(K~M )

=IFERROR(,"")    //輸入欄在星等尚未確定時是不會顯現的,此時無法排名

RANK(H5,H$5:H$100)    //排名



 

11.升滿總耗的力量、生命之源(N5)(N)

=IFERROR($B$2*($AA$7-(H5/4+I5)),"")

//計算潛力,根據定理6加成原始星等



 

12.最高量值血量攻擊(O5)(O~P)

=IFERROR(H5+$J5*4,"")

//將所有潛力灌注在攻擊或血量後的數值



 

13.最高量值血量攻擊之排名(Q5)(Q~R)

=IFERROR(,"")    //輸入欄在星等尚未確定時是不會顯現的,此時無法排名

  IF(O5="","",)

    RANK(O5,O$5:O$100)    //排名



 

14.符合條件的喵喵(S5)(S)

=IFERROR(,"")    //因為有使用者輸入,須判斷是否錯誤

  IF(,"選我,喵~~","")    //符合要求的牌就顯示

    AND($A$7="有呦喵~~",$B$3<=O5,$B$4<=P5,O5<>"",P5<>"")   

//要求是:卡片存在且數值符合規範



 


15.分別最多消耗之生命、力量之源(T5)(T~U)

=IFERROR(,"")    //因為有使用者輸入,須判斷是否錯誤

  IF(,,"")

    AND(($B$3/4+$B$4)=$AA$7,$A$7="有呦喵~~")    //卡牌需存在且將血量攻擊填滿才會顯示

    IF(,"      ==",$B$2*($B$3-H5)/4)

      OR($B$2*($B$3-H5)/4<0,$B$2*($B$4-I5)<0)    //定理6



 

16.最多消耗的喵餅乾數(V5)(V)

=IFERROR(J5*$B$2*100,"")    //因為有使用者輸入,須判斷是否錯誤



 

17.最多消耗天數(W5)(W)

=IFERROR(,"")

  IF(,V5/($B$5*24),(V5-)/($B$5*24)+1)

    MOD(V5,$B$5*24)=0

    MOD(V5,$B$5*24)    //消耗天數要是整數,無條件進位

//151617之所以標示最多

//乃因為潛力系統有「大成功」設定
//
活動在最近的更新也有新的管道取得生命、力量之源




18.卡牌中血量攻擊分別的極大值與極小值(H2)(H2,I2,O2,P2)

=MIN(H5:H100)

//這四格是隱藏儲存格

//為了擴充方便,不能放在表格末

//因此偷偷地放在表格最上方



 

19.有沒有這種牌?(A7)

=IFERROR(,"")    //因為有使用者輸入,須判斷是否錯誤

  IF(A17="",,"")    //星等沒問題再繼續

    IF(,"",)    //期望攻擊血量至少填一格再繼續

      AND(B3="",B4="")

      IF(,"有呦喵~~","很抱歉,沒有喵~~")    //顯示有無該卡牌

        AND((B3/4+B4)<=AA7,B3<=O2,B4<=P2)



 

20.還能增加血量攻擊(A9)(A9,A11)

=IFERROR(,"")    //因為有使用者輸入,須判斷是否錯誤

  IF($A$7="有呦喵~~", ,"")    //檢查有無該卡牌

    IF(($O$2-$B$3)/4>$AA$7-($B$3/4+$B$4),($AA$7-($B$3/4+$B$4))*4,$O$2-$B$3)

//只要還沒到上限

//就分別將所有指數灌注在血量攻擊

//如果全部灌注會超過上限

//就顯示到上限即可



 



21.可能必須減少血量攻擊(A13)(A13,A15)

IFERROR(,””)

  IF(,””,)

    OR(A7="有呦喵~~",B3<=H2)

    IF(B4>=P2,B3-H2,)

      IF(B4<=I2,B3-O2,((B3/4+B4)-X5)*4)

//已顯示血量為例

//攻擊超出攻擊能有最大值

//血量只要顯示最小

//此時血量若低於最小則不用減少

//攻擊低於最小

//血量就可以到達上限

//若過多就撿到最大即可