良心建議,10000筆EXCEL用這公式跑起來會變很慢,一直顯示計算,不建議使用,建議用VBA。所以....下一位,
D1:
=A1
D2:
=IFERROR(IF(COUNTIF(D$1:$D1,D1)<((LEN(VLOOKUP(D1,$A$1:$B$4,2,0))+1)/2),D1,INDEX($A$1:$A$4,MATCH(D1,$A$1:$A$4,0)+1)),"")
將公式複製到D3:D16(自行調整)
E1:
=IFERROR(MID(VLOOKUP(D1,$A$1:$B$4,2,0),(COUNTIF($D$1:D1,D1)-1)*2+1,1),"")
將公式複製到E2:E16(自行調整)
請問如果有包含10以上的數字,有什麼方式可以不要取到","號嗎? 謝謝~
如果B欄有二位數以上的值,我會用john70096提供的做法。
先將B欄用逗號剖析開來。
H1:
=A1
H2:
=IFERROR(IF(COUNTIF($H$1:H1,H1)<COUNT(OFFSET($A$1,MATCH(H1,$A$1:$A$4,0)-1,1,1,5)),H1,INDEX($A$1:$A$4,MATCH(H1,$A$1:$A$4,0)+1)),"")
將公式複製到H3:H16(自行調整)
I1:
=VLOOKUP(H1,$A$1:$F$4,COUNTIF($H$1:H1,H1)+1)
將公式複製到I2:I16(自行調整)
謝謝你的分享
每週10000筆....
如果你還堅持要用excel做的話
我這邊提供一個思路參考
先對B欄使用資料剖析 ->依逗號分隔 , 在複製 -> 轉置貼上
我只能說,用錯工具了@@"
1萬筆使用excel算是有點找罪受。
(雖然我曾經看過6萬筆以上的)
正常來說。像你這種不定數量的列數。
因該是沒辦法不靠程式來處理了。
畢竟沒有統一的規則性。
所以....下一位
如果會使用Python,程式處理如下,可修改第3、4行的檔名:
import pandas as pd
input_file = './1.xlsx'
output_file = './1_new.xlsx'
df = pd.read_excel(input_file, header=None)
df2 = pd.DataFrame(columns=df.columns)
for index, row in df.iterrows():
#print(row[df.columns[1]])
if len(row[df.columns[1]])<=0:
df2.append(row)
else:
for f in row[df.columns[1]].split(','):
#print({df.columns[0]:row[0], df.columns[1]:f})
df2 = df2.append({df.columns[0]:row[df.columns[0]], df.columns[1]:f}, ignore_index=True)
#print(df2)
df2.to_excel(output_file, index=False, header=None)