返回列表 上一主題 發帖

[發問] 多條件判斷編製名稱 需要用什麼函數

[發問] 多條件判斷編製名稱 需要用什麼函數

[attach]22719[/attach]

想請教各位高手 如附圖
若 項目A 寬為750 長為70 則在I欄自動編製W1_L2
請問這樣的多條件判斷該怎麼寫成公式呢?

RE: 多條件判斷編製名稱 需要用什麼函數

抱歉圖片沒上傳好

TOP

回復 2# mina324


可否上傳檔案?
寫公式也須範例為參照,不要讓解題者再多花時間去建立資料!

TOP

http://blog.xuite.net/hcm19522/twblog/362889454

TOP

可以用VBA嗎?
試試看:
  1. Public arW, arL
  2. '取得寛度與長度界限的陣列, 供Match用
  3. Sub init()
  4.     ReDim arW(3) As Integer
  5.     ReDim arL(3, 3) As Integer
  6.     Dim W1 As Integer, L1 As Integer
  7.     arW(0) = Split(Cells(3, 3), "~")(1)    '寛度的上限
  8.     For W1 = 0 To 2
  9.         arW(W1 + 1) = Split(Cells(W1 * 3 + 3, 3), "~")(0) '寛度按降冪排
  10.         For L1 = 0 To 2
  11.             arL(W1, L1) = Split(Cells(W1 * 3 + L1 + 3, 5), "~")(0)   '長度按升冪排
  12.         Next
  13.         arL(W1, L1) = Split(Cells(W1 * 3 + L1 + 2, 5), "~")(1)     '長度的上限
  14.     Next
  15. End Sub

  16. Private Sub CommandButton1_Click()
  17.     Dim I As Integer, J As Integer, arL2(3) As Integer
  18.     Dim MHW, MHL, IDW As String, IDL As String
  19.     init
  20.     For I = 4 To [G4].End(xlDown).Row
  21.         MHW = Application.Match(Cells(I, 8), arW, -1)
  22.         IDW = Application.Index([B1:B11], MHW * 3, 1)
  23.         For J = 0 To 3
  24.             arL2(J) = arL(MHW - 1, J)    '將2維陣列轉為1維陣列
  25.         Next
  26.         MHL = Application.Match(Cells(I, 9), arL2, 1)
  27.         '長度代號分[D3:D5,D6:D9,D10:D12]三區
  28.         IDL = Application.Index([D3:D5,D6:D8,D9:D11], MHL, 1, MHW)
  29.         Cells(I, 10) = IDW & "_" & IDL
  30.     Next
  31. End Sub
複製代碼
test.gif

TOP

回復 2# mina324


寬度剛好400,700算哪個區間? 超過1000呢?
長度同樣問題~~

TOP

J5=LOOKUP(H5,{0;400;700},{"W3";"W2";"W1"})&"_"&LOOKUP(I5,CHOOSE(RIGHT(LOOKUP(H5,{0;400;700},{"W3";"W2";"W1"})),{0;50;100},{0;30;50},{0;20;50}),{"L1";"L2";"L3"})

TOP

回復 3# 准提部林


    准提部林版主抱歉,我是初學者,公式還不夠熟悉,沒能附上檔案,
    下次我會多注意並努力學習的。  sorry

TOP

hcm19522、ANGELA 謝謝你們幫我解決問題。
yen956  VBA我正在學習,謝謝你特地幫我寫了程式,我會研究看看的。

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題