返回列表 上一主題 發帖

[發問] 如何讓總表轉化為三張明細表

本帖最後由 Bodhidharma 於 2013-6-20 23:21 編輯

回復 1# s7659109

在各表的A1儲存格輸入貨號(Sheet A001就輸入A001,Sheet A002就輸入A002...)
3張Sheet的A3儲存格陣列公式(CTRL+SHIFT+ENTER輸入)
  1. =INDEX(總表!A$1:A$65536,SMALL(IF(總表!$B$1:$B$1000=$A$1,ROW(總表!$B$1:$B$1000),4^8),ROW(1:1)))&""
複製代碼
下拉右拉

TOP

回復 3# p212
紅字部份&""用意為何?
1、用以回傳組合公式結果均為「文字」型態呈現?
2、抑&""可逕予省略?


如果沒有&""的話,沒有資料範圍的地方會顯示為0
純粹只是讓資料表比較好看,不過的確需要注意公式結果會以「文字」呈現

TOP

回復 5# s7659109

陣列公式,要用CTRL+SHIFT+ENTER三鍵輸入
你把公式貼上後,不能直接按ENTER,要三鍵齊按鍵入

至於公式的原理,看起來你應該對陣列還沒有概念,這樣講起來有點困難…
可參考:
http://office.microsoft.com/zh-tw/excel-help/HA010228458.aspx#BM1
http://isvincent.pixnet.net/blog/post/36660932-excel-%E5%A4%9A%E6%A2%9D%E4%BB%B6%E7%9A%84%E6%9F%A5%E8%A9%A2(index%2Bsmall%2B%E9%99%A3%E5%88%97)

最後,INDEX(A$1:A$65536...)這個部分的65535不宜更改,不然對應不到的會出現錯誤值 (其它部分要更改範圍就沒問題)

TOP

回復 8# s7659109

如果日期是正規格式的話
102.5.xx不是正規日期格式,正規日期格式應該是2013/5/xx,而且是通用格式或是日期格式,不能是文字格式
  1. =IF(ISERROR(INDEX(總表!A:A,MOD(SMALL(IF(總表!$B$1:$B$1000=$A$1,總表!$A$1:$A$1000*10000+ROW($1:$1000),9^9^9),ROW(1:1)),10000))),"",INDEX(總表!A:A,MOD(SMALL(IF(總表!$B$1:$B$1000=$A$1,總表!$A$1:$A$1000*10000+ROW($1:$1000),9^9^9),ROW(1:1)),10000)))
複製代碼
你那種格式要轉正規的話,公式會變得更長…

TOP

回復 10# leoskie

要自動生出N張Sheet的話得用VBA

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題