回覆列表
-
1 # Excel辦公小動畫
-
2 # HIPPO
Function RCA(rng As Range)
Application.Volatile True
Dim arr, str1
For Each arr In rng
If arr <> "" Then
str1 = str1 & "、" & arr
End If
Next
RCA = str1
End Function
以上自定義函式,不知道我理解錯沒
-
3 # 精進Excel
分析:題目要求“該方法應該是動態的,隨著資料的增加,可動態重新整理,無需後續修改”,那麼使用普通的工作表函式和公式顯然無法滿足題目要求。
而使用VBA由於學習成本較高也不適合辦公室的非專業技術人員,所以選擇透過Power Query功能,使用M函式來解決本問題,是完全滿足題目要求,且符合行業技術發展趨勢的最佳方案。
Step1:將資料匯入Power Query
Step2:資料分組彙總統計
得到結果如下。
Step3:修改M函式
由於Power Query自帶功能無法滿足我們的個性化需求,所以需要簡單修改M函式來實現。
此時已得到最終結果。
與其它方法相比的優點:
使用工作表函式解決本問題需要使用多個函式多層巢狀來實現,且步驟繁瑣,使用Power Query僅需一個分組步驟即可,同時僅修改一處程式碼即可實現,其餘均為滑鼠點選操作,無論是方法的學習成本還是整個過程的操作成本,以及實現最終結果的效率,都優於工作表函式和VBA。
在實際工作中,可能會經常遇到需要將符合條件的結果全部放到一個單元格內。在Excel中並沒有提供一個可以合併同類項的函式,就像下面的例子中,要求將款號相同的顏色列合併到一個單元格並用逗號隔開,今天給大家說的是一種可以實現的方法:
Step 1: 在C列建立一個輔助列,C2單元格輸入公式:
=B2&IFERROR(","&VLOOKUP(A2,A3:C$16,3,0),"") 輸完公式下拉填充
注意:VLOOKUP函式第二引數,A3:C$16引用的是自公式所在單元格往下一行開始,引用的行數要比資料表最大行數多一些。
=VLOOKUP(B12,$A$2:$C$10,3,0),向下複製,完成同類項的彙總。
工作必備vlookup函式,讓你效率再翻倍!其實還可以透過IF函式來完成:
Step 1: 在C3單元格輸入=IF(A3=A2,C2&B3&",",B3&","),下拉填充
解釋:如果下一行與上一行資料相等,就填充合併結果,否則就是填充 B列的顏色
Step 2:去除上一步結果的最後一個逗號,在D3中輸入公式=LEFT(C3,LEN(C3)-1) ,輸完公式下拉填充,紅色字型為最終結果
Step 3:篩選出最終結果,輸入公式=IF(A3<>A2,"最終結果","") ,下拉填充
篩選“最終結果”複製就完工了!
求和的話就使用SUMIF就行了