返回列表 上一主題 發帖

儲存格排顯示

儲存格排顯示

請問各位先進,小弟有個問題如何簡化或修改設定函數,詳如附檔,謝謝感恩!
儲存格排列顯示.zip (9.25 KB)

請問各位先進對於小弟的檔案函數公式有無較簡化或其他公式,請賜教,謝謝!

TOP

陣列公式(三鍵)
=INDEX(C:C,SMALL(IF(ISERROR(0/(COUNTIF(OFFSET(D$3,ROW($1:$99),,,4),"中")=0)/(C$4:C$99<>"")),4^8,ROW($4:$99)),ROW(A1)))&""

TOP

回復 3# 准提部林


   准大,您的一個公式中只要修改一個字的動態項目,就可以適用其他的情況,真的簡化很多,謝謝指教!

TOP

回復 3# 准提部林


   准大好,如果這公式同時要二個動態項目,如"中"和"康" ,請問公式要如何修改,謝謝感恩!

TOP

回復 5# shan0948


=INDEX(C:C,SMALL(IF(MMULT(1-ISERR(0/(FIND(D$4:G$28,"_中康")>1)),{1;1;1;1})+(C$4:C$28="")=0,ROW($4:$28),4^8),ROW(A1)))&""

TOP

回復 6# 准提部林


    准大晚安,果然多一個變數就變的較複雜了,准大真是厲害,小弟的問題全解決了,謝謝指導!

TOP

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列,學習方案如下,請各位前輩指教
執行前:


執行結果:



Option Explicit
Sub TEST()
Dim Brr, Crr, i&, j%, R&, T$
'↑宣告變數
Brr = Intersect(Range([A1], ActiveSheet.UsedRange), [A:G])
'↑令Brr變數是 裝盛指定儲存格值的二維陣列
ReDim Crr(1 To 1000, 1 To 4)
'↑宣告Crr變數是二維 空陣列
For i = 4 To UBound(Brr)
'↑設順迴圈!i從3到Brr陣列縱向最大索引列號
   If T <> Trim(Brr(i, 1)) And Trim(Brr(i, 1)) <> "" Then T = Trim(Brr(i, 1))
   '↑如果T變數與 i迴圈列第1欄Brr陣列值(且不是空值)不同??就令T是該值
   If Trim(Brr(i, 3)) = "" Then GoTo i01
   '↑如果姓名欄是空的? True就跳到標示 i01位置繼續執行
   For j = 4 To 7
   '↑設順迴圈!j從4到7
      If InStr("/中/康/", "/" & Trim(Brr(i, j)) & "/") Then GoTo i01
      '↑如果 動態欄格裡是"中"或"康"? True就跳到標示 i01位置繼續執行
   Next
   R = R + 1
   '↑令R變數累加 1
   Crr(R, 1) = Brr(2, 1)
   '↑令R變數列第1欄Crr陣列值是 樓層
   Crr(R, 2) = T
   '↑令R變數列第2欄Crr陣列值是 房號
   Crr(R, 3) = Brr(i, 2)
   '↑令R變數列第3欄Crr陣列值是 序號
   Crr(R, 4) = Brr(i, 3)
   '↑令R變數列第4欄Crr陣列值是 姓名
i01: Next
[L:O].ClearContents
'↑令結果欄清除內容
If R = 0 Then Exit Sub
'↑如果R變數是 0(代表沒有符合的資料),就結束程式執行
[L4].Resize(R, 4) = Crr
'↑令指定儲存格擴展剛好的範圍儲存格值以Crr陣列值帶入
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題