Horse 發問時間: 電腦與網際網路軟體 · 1 0 年前

EXCEl條件篩選後的文字要用CONCATENATE合併起來

品項 銷售數量

A 0

B 1

C 0

D 2

E 3

想要的結果在找出銷售數量>0後, 最後可以給我品項是BDE

謝謝!

已更新項目:

謝謝您的回答, 但因為我的資料期數很多(2年), 我要如何才能不需要每期都做判斷式呢?

2 個已更新項目:

給小花的!

請問我總共欄數到BB, 請問我是所有欄數都要寫進巨集裡嗎?

我有找到一各相關的巨集(知識裡找到的) 是一個叫Cobitexif的(不知道可不可以把那貼到我的問題, 所以就不貼了)

但我跑出得值(文字字串總合)是0

謝謝您的回答

3 個解答

評分
  • 小花
    Lv 5
    1 0 年前
    最佳解答

    你可能要用巨集的方式來做,按工具的巨集選項,選巨集,出現對話窗後再選編輯選項,就會出現編輯器,在編輯器中,將以下內容剪下貼上

    Sub篩選 ()

    Dim str(5) As String

    Dim str2 As String

    For i = 1 To 5 '5是你的資料列數當i=1時cell(i,2)意思是B1儲存格

    If ActiveSheet.Cells(i, 2).Value > 0 Then '判斷B1是否大於0

    ActiveSheet.Cells(i, 3).Value = Cells(i, 1) '如果大於0將A1的值(品項)存到C1

    str(i) = Cells(i, 1)

    End If

    str2 = str2 str(i)

    Next i

    ActiveSheet.Cells(1, 4).Value = str2 '這行是將大於0的品項加總貼到D1

    End Sub

    完成後在巨集選項的對話窗,會出現一個名稱為篩選的巨集,再選擇對話窗中的選項按鍵,可以設定快捷鍵

    希望能幫到你

    不過你可能要了解Cells的屬性,Cells(1,4)是指D1儲存格,Cells(2,4)是D2,前一個數字是列數,後一個則是欄數,我是依你的問題做設計,如果你資料C欄及D欄另有資料的話,那自己就要修正巨集公式,將結果存到其他儲存格

    2007-10-24 20:56:48 補充:

    修正巨集公式,請改貼以下公式

    Sub 篩選()

    Dim str(5) As String '5也是列數

    Dim str2 As String

    For i = 1 To 5 '5是你的資料列數當i=1時cell(i,2)意思是B1儲存格

    If ActiveSheet.Cells(i, 2).Value > 0 Then '判斷B1是否大於0

    str(i) = Cells(i, 1)

    End If

    str2 = str2 + str(i)

    Next i

    ActiveSheet.Cells(1, 4).Value = str2 '這行是將大於0的品項加總貼到D1

    End Sub

    2007-10-30 12:20:47 補充:

    Function Cobitexif(Rng As Range, Crng As Range) As String

    Dim Ntex()

    For i = 1 To Rng.Count

    If Rng(i) >0 Then

    ReDim Preserve Ntex(s)

    Ntex(s) = Crng(i): s = s + 1

    End If

    Next

    Cobitexif = Join(Ntex)

    End Function

    2007-10-30 12:21:12 補充:

    和參考資料不同處,原本有三引數,我去掉中間引數依你的意思改為挑選大於0

    第一個引數(Rng)選取品項數量範圍儲存格,第二個引數(Crng)選品項名

    依你題意就是Rng=B1:B5 Crng=A1:A5

    希望能解決你的問題

    2007-10-30 12:22:35 補充:

    如果你要更改挑選條件

    在If Rng(i) >0這裡更改,目前是設選出大於0

  • Trump
    Lv 7
    1 0 年前

    優質問題,且「問題標題」相當清楚,值得推薦!

    2007-10-24 19:23:12 補充:

    如問題尚未解決,請提出哪部份尚未解決~

    請透過以下網址,來信告訴筆者,來信時請記得附上問題網址。

    http://tw.knowledge.yahoo.com/my/mailto_profile?ki...

  • Max
    Lv 4
    1 0 年前

    要經過三個步驟

    1.先下if函數於C2位置,=IF(B2>0,A2,"")

    2.以C2之函數往下複製至C6位置

    3.在C7位置加上=CONCATENATE(C2,C3,C4,C5,C6)

    執行結果如下

    ........A.............B............C

    --------------------------------------

    1|...品項.....銷售數量....if判斷

    2|......A............ 0............

    3|......B............ 1............ B

    4|......C............ 0............

    5|......D............ 2............D

    6|......E............ 3............E

    7|..................................BDE

    參考資料: 我自己的經驗
還有問題?馬上發問,尋求解答。