iT邦幫忙

2

excel公式問題

最近朋友問了我EXCEL的問題,被考倒了,想來問問各位邦友有沒有方法或者關鍵字可以提供:D

https://ithelp.ithome.com.tw/upload/images/20180320/20103350usAXfMU48Y.jpg
文件大概長這樣,有項目、敘述(會有很多行,最後會有組數字)、空白欄位(可無視)、數量

想問問有沒有辦法透過公式變成如下圖示
https://ithelp.ithome.com.tw/upload/images/20180320/201033501ywu5XgsSw.jpg
主要是希望A欄位抓出每一個項目,B欄位抓出最後的那組數字,C欄位抓出數量

目前想法式看能不能找出該行的某欄位,並顯示該欄位的上一欄的值,看這樣能不能處理B欄位,EXCEL不熟還請各位協助了:D

附上檔案供各位使用GOOGLE雲端硬碟連結,謝謝。

看更多先前的討論...收起先前的討論...
newkevin iT邦高手 1 級 ‧ 2018-03-20 20:58:53 檢舉
隨便想想 如果資料固定模式
假如A行非空值
1.抓取 A$ 到(J行)
2. A$裡面的值到(G行)
3. D$裡面的值 (I行)
當J行有值
將 A取代為B $-1 裡面的值 到 (H行) 驗證是否為8碼
欄位A會不會有重複的項目?
魷魚 iT邦新手 1 級 ‧ 2018-03-21 08:58:01 檢舉
@pcw
先當不會有好了@@"
魷魚 iT邦新手 1 級 ‧ 2018-03-21 09:04:52 檢舉
@newkevin
Q1:有判斷A行如果有值就複製到J行,無果空值則不處理的函數嗎@@"
Q2:"將 A取代為B $-1 裡面的值"我自己也是這樣理解,但是不知道有什麼函數可以處理@@"

1 個回答

0
paicheng0111
iT邦高手 1 級 ‧ 2018-03-21 11:06:37
最佳解答

先假設A欄位不會有重複的項目

我用陣列公式來解,有點複雜。步驟如下:

  1. 先將原始資料格式化為表格,表格名稱設為t_原檔
  2. 建立輔助欄位,G2寫下=COUNTA(t_原檔[項目]),按下ENTER
  3. 在G3寫下=IF(G2="","",IF(G2-1<1,"",G2-1)),按下ENTER,並以G3用填滿控點下拉。

以下是陣列公式

  1. 在H2寫下陣列公式=IF(G2="","",INDEX(t_原檔[項目],LARGE(IFERROR(MATCH(t_原檔[項目],t_原檔[項目],0),0),G2))),按CTRL+SHIFT+ENTER完成陣列公式,再用填滿控點下拉。
  2. 在I2寫下陣列公式=IF(G2="","",IF(G2=1,INDEX(t_原檔[敘述],COUNTA(t_原檔[敘述])),INDEX(t_原檔[敘述],LARGE(IFERROR(MATCH(t_原檔[項目],t_原檔[項目],0),0),G2-1)-1))),按CTRL+SHIFT+ENTER完成陣列公式,再用填滿控點下拉。
  3. 在J2寫下=IF(G2="","",INDEX(t_原檔[數量],MATCH(H2,t_原檔[項目],0)),按CTRL+SHIFT+ENTER完成陣列公式,再用填滿控點下拉。

結果如下圖:

看更多先前的回應...收起先前的回應...
魷魚 iT邦新手 1 級 ‧ 2018-03-21 11:31:52 檢舉

Wow,我還在研究offset能否達成,pcw大就寫好了:D
先謝謝pcw大的幫忙,我沒使用過陣列,讓我消化一下^^/images/emoticon/emoticon41.gif

魷魚 iT邦新手 1 級 ‧ 2018-03-22 08:56:28 檢舉

另外問一下pcw大,如果項目會重複,有辦法做嗎@@"

可以,但要改寫。

魷魚 iT邦新手 1 級 ‧ 2018-03-22 13:24:43 檢舉

OK~我在研究一下,謝謝你的幫忙:D

很高興能幫到你。

我要發表回答

立即登入回答