返回列表 上一主題 發帖

[發問] 三個值之間的>或=或<的排列組合

[發問] 三個值之間的>或=或<的排列組合

祝福各位大大︰新春快樂!



排列組合.png
2018-2-18 19:33


假設有三個值︰A,B,C
將三個值之間的"大於"或"等於"或"小於"的排列組合(重複的組合,則取其1個組合)表列於A欄。
EX:
A1= A>B,A>C,B>C
A2= A>B,A>C,B=C
A3= A>B,A>C,B<C
其餘......以此類推

請問︰VBA的語法編寫。謝謝!

備註:
A,B,C都是>0的整數。謝謝!

TOP

回復 2# papaya

假設 A=1 , B=2, C=3
最後的輸出結果

你到底是要
(1)
A1= A>B,A>C,B>C
A2= A>B,A>C,B=C
A3= A>B,A>C,B<C

還是
(2)
A1= A<B,A<C,B<C

還是

(3)
A1= 1<2,1<3,2<3

TOP

隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集4100篇 EXCEL函數

TOP

本帖最後由 papaya 於 2018-2-21 20:43 編輯

回復 3# jackyq
j大:新春快樂!
希望最後的輸出結果是:
(1)
A1= A>B,A>C,B>C
A2= A>B,A>C,B=C
A3= A>B,A>C,B<C

重複的組合,則取其1個組合,則共有3*3*3=27組
但不成立的不列出
EX:
A>B,A=C,B>C
A>B,A=C,B=C

勞駕幫忙!謝謝您!

TOP

本帖最後由 papaya 於 2018-2-21 20:56 編輯

回復 4# hcm19522
j大:新春快樂!
感謝您的函數解^^
請問:
1_2007版的IFERROR函數要如何改成2003版的ISNA來應用

2_A,B,C"三者之間的>"或"="或"<"有衝突的(即不能成立)組合,不列出時~
EX:
B4的A>B,A=C,B>C
B5的A>B,A=C,B=C
B7的A>B,A<C,B>C
B8的A>B,A<C,B=C
:
:
公式要如何修正?
勞駕再賜正!
謝謝您!

TOP

回復 6# papaya


    終於看懂你要幹麻

TOP

Public Sub 最簡單法___________試誤()

          ABC = Split("A>B,A>C,B>C", ">")
       運算子 = Split(">,=,<", ",")
    ABC_Count = UBound(ABC) - LBound(ABC) + 1
運算子_Count = UBound(運算子) - LBound(運算子) + 1

Set VBScript = CreateObject("MSScriptControl.ScriptControl")
    VBScript.Language = "VBScript"
     
Cells.Clear
For k1 = LBound(運算子) To UBound(運算子)
For k2 = LBound(運算子) To UBound(運算子)
For k3 = LBound(運算子) To UBound(運算子)

     For value_try1 = 1 To ABC_Count
     For value_try2 = 1 To ABC_Count
     For value_try3 = 1 To ABC_Count
         s = value_try1 & 運算子(k1) & value_try2 & " AND " & _
             value_try1 & 運算子(k2) & value_try3 & " AND " & _
             value_try2 & 運算子(k3) & value_try3 _

         If VBScript.Eval(s) Then
            rr = rr + 1
            Cells(rr, 1) = ABC(0) + 運算子(k1) + _
                           ABC(1) + 運算子(k2) + _
                           ABC(2) + 運算子(k3) + _
                           ABC(3)
            
            value_try1 = ABC_Count
            value_try2 = ABC_Count
            value_try3 = ABC_Count
         End If
     Next
     Next
     Next

Next
Next
Next

End Sub

TOP

回復 4# hcm19522
h大:新春快樂!
感謝您的函數解^^
請問:
方式二C1:C28=IF(ROW(A1)>27,"","A"&MID(">=<",INT(ROW(A9)/9),1)&"B,A"&MID(">=<",MOD(INT(ROW(A3)/3)-1,3)+1,1)&"C,B"&MID(">=<",MOD(ROW(A1)-1,3)+1,1)&"C")
A,B,C"三者之間的>"或"="或"<"有衝突的(即不能成立)組合,不列出時~
EX:
B4的A>B,A=C,B>C
B5的A>B,A=C,B=C
B7的A>B,A<C,B>C
B8的A>B,A<C,B=C
:
:
公式要如何修正?
勞駕再賜正!
謝謝您!

TOP

回復 8# jackyq
j大:
感謝您的程式解^^

測試後~答案完全正確~感恩^^

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題