如何在excel上提取數值並在後面顯示?
原始的數據是這樣
操作後的數據是這樣
即同樣學生的名字,那麼他們的費用依次排列,並且在後面有增加學生的時候,也依次顯示。
兩個數組公式可以完成,一個返回去重複後的學生,一個返回費用。
如圖
D列公式自動對學生去重顯示,D3輸入數組公式 {=IFERROR(INDEX(A$2:A$15,MATCH(,COUNTIF(D$1:D1,A$2:A$15),)),"")} 下拉即可。
費用區域可根據數據添加6、7、……,E3中輸入數組公式 {=IFERROR(INDEX($B$2:$B$15,SMALL(IF($A$2:$A$15=$D3,ROW($A$2:$A$15),9E+307),E$2)-1),"")} 再向右向下拖動複製公式即可。
不知道是否符合您的要求。
有個問題,趙二蛋的100為什麼在數據區的第二列,王冰冰表示同問,如果你確切的知道他們繳費的批次,完全不用以空行作為標記,記錄下他們繳費的批次就好,然後透視表就太輕鬆了啊
我也是用vlookup,所以核心是找到唯一的值。
[名字出現的順序+名字]就是唯一的值,然後就可以用vlookup了。
下圖處理的順序是從左到右,
- 先處理出唯一的值
- 然後再查詢
- [圖裡沒有],最後轉置一下就可以獲得要求的結果了,當然也可以批量替換下empty, iferror函數裡面的第二個參數直接填"",就是空格了[我寫empty是個人習慣,寫一個有意義的值,ε=ε=ε=┏(゜ロ゜;)┛]
如果數據量大的話,有些需要注意的:
- 需要通過刪除重複項找到全部的唯一的名字
- H一列下面有1~8的數字,這個數字的最大值是擁有最多的數據的值,具體拉到多少可以用countif+max
那個公式用的太複雜了,建議這樣做。
1. 使用數據透視表,取出所有不重複的學生姓名,單獨放一列。
2. 使用if 在指定範圍內判斷(如從第二行到第10行),取出對應值即可。
如果大批量的數據建議用宏處理。聽說微軟要在excel裡面加入對python的支持了。等支持python了我來答題
數據透視表 10svlookup 3m如果數據約1000行數據透視表 10svlookup 5m
vlookup和數據透視表都可以做到
推薦閱讀:
※怎麼知道格式刷刷了什麼格式?
※如何在Excel實現採用星星符號評級的功能?
※這個公式是什麼意思=0/(A3<>A2)?
※如何將多個sheet的同一列數據快速放到一張表,並以sheet名作為相應每一列的名字?
※如何處理EXCEL中存在大量合併單元格的跨頁斷行問題?
TAG:MicrosoftExcel | Excel使用 | Excel技巧 |