返回列表 上一主題 發帖

[發問] 請問 搜尋一固編號 至 空白 再往下搜期搜尋 取出工作表全部相同標號之資料

本帖最後由 Hsieh 於 2012-4-25 15:19 編輯

回復 2# register313


    美中不足,(如圖)

Book1.rar (8.01 KB)
學海無涯_不恥下問

TOP

回復 7# mycmyc
x、y、z、a都是定義名稱,作用儲存格位於第2列時,建立此4個名稱
1、取得A1到此列為止,最後一個文字位置,因為你的日期並非正確日期格式,是以文字串形成的資料,所以必須使用文字搜尋
x參照到公式
=LOOKUP("龘",Sheet1!$A$1:$A2,ROW(Sheet1!$1:2))
可改成
x參照到公式
=LOOKUP(2,1/(Sheet1!$A$1:$A2<>""),ROW(Sheet1!$1:2))
這樣可配合任何資料型態
2、本列以下到第2000列的B欄若為空白就傳回列號,求得這些列號的最小值,這樣可取得資料尾端。
y參照到公式
=MIN(IF(Sheet1!$B2:$B$2000="",ROW(Sheet1!$B2:$B$2000),""))
3、傳回每個區域範圍
z參照到公式
=INDIRECT("Sheet1!B"&x&":B"&y-1)
4、傳回E欄的所有數值
a參照到公式
=SMALL(Sheet1!$E$2:$E$2000,ROW(!A1))
5、E2公式=IF((B2<>"")*(COUNTIF(z,$F$1)>0),ROW(),"")
假如B欄不等於空白,而且所在列的連續資料範圍中含有搜尋準則F1的值,就傳回該列的列號。
6、Sheet2!A2公式=IF(ISERROR(a),"",INDIRECT("Sheet1!"&CHAR(COLUMN(A1)+64)&a))
如果超過Sheet1!E欄數值的數量,a就會是錯誤值,所以判斷a為數值就帶入INDIRECT("Sheet1!"&CHAR(COLUMN(A1)+64)&a)這段來計算
CHAR(COLUMN(A1)+64)這會傳回字串"A",向右複製時就成為CHAR(COLUMN(B1)+64),傳回字串"B",以此類推
INDIRECT是以儲存格參照字串來傳回該位置,所以,("Sheet1!"&CHAR(COLUMN(A1)+64)&a就等於字串"Sheet1!A2"

變動範圍.rar (7.58 KB)
學海無涯_不恥下問

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題