1樓:匿名使用者
用vba吧,你提出的這個型別一般資料量都比較大的。應該不止這幾門成績的統計吧。
下面的**複製到vba中執行即可:
sub scorepx()
dim kid as single '定義學號
dim rowend as single '定義結束行號
dim rowrecord as single '定義新序列插入位置
dim colw as single
dim sumx as single '定義總分
activeworkbook.activesheet.sort.sortfields.clear
activeworkbook.activesheet.sort.sortfields.add key:=range("b1"), _
sorton:=xlsortonvalues, order:=xlascending, dataoption:=xlsortnormal
with activeworkbook.activesheet.sort
.setrange range("a2:d5000") '可通過修改"d5000"的值擴大排序範圍
.header = xlno
.matchcase = false
.orientation = xltoptobottom
.sortmethod = xlpinyin
end with
rowend = 1
rowrecord = 2
do until activesheet.cells(rowend, 2) = ""
kid = 1
sumx = 0
do until activesheet.cells(rowend + kid, 2) <> activesheet.cells(rowend + kid + 1, 2) or activesheet.
cells(rowend + kid + 1, 2) = ""
activesheet.cells(rowrecord, kid + 7) = activesheet.cells(rowend + kid, 4)
sumx = sumx + activesheet.cells(rowrecord, kid + 7)
kid = kid + 1
loop
activesheet.cells(rowrecord, kid + 7) = activesheet.cells(rowend + kid, 4)
sumx = sumx + activesheet.cells(rowrecord, kid + 7)
activesheet.cells(rowrecord, kid + 8) = sumx
activesheet.cells(rowrecord, 6) = activesheet.cells(rowend + kid, 1)
activesheet.cells(rowrecord, 7) = activesheet.cells(rowend + kid, 2)
if rowend = 1 then
colw = kid + 1
activesheet.cells(1, colw + 7) = "總分合計"
do until colw <= 1
activesheet.cells(1, colw + 6) = activesheet.cells(colw, 3)
colw = colw - 1
loop
end if
rowrecord = rowrecord + 1
rowend = rowend + kid
loop
end sub
在使用上述**前,請確保以下事項:
1、對原資料**進行備份
2、確保「姓名」在a列,「學號」在b列,「科目」在c列,「成績」在d列
3、在執行**前,確保欲排序的**處於啟用狀態
4、請確保每個人員的科目數目一樣多,如果某科目無成績,請將相關專案充填為零,否則程式將出錯。
這段**的執行過程:
首先對資料按照學號進行擴充套件排序,然後通過迴圈語句進行資料的讀取和賦值。
程式功能:
1、無論科目多少,都可以排序,自動橫向充填
2、以學號為排序依據,名字可以重複,但學號肯定不會重複
3、增加個人成績總分統計功能
4、如果需要,可以在增加**的基礎上,完**員成績排名
最後,為你做這個**,是衝著高分來的,使用滿意請給分。話說回來,即便是分不給我,本人也沒有辦法,**已經公開了,誰想用都可以,就算是練手和做貢獻了。 附圖顯示了執行後的效果。
2樓:匿名使用者
隨便找個軟體就可以。
3樓:匿名使用者
用條件求和公式可以轉
=sum(if($a$2:$a$7(說明:舊錶中學生姓名所在列)=$f2(說明:
相對引用,新表學生姓名單元格),if($c$2:$c$7(說明:舊錶中學生科目所在列)="語文",$d$2:
$d$7(說明:舊錶中學生成績所在列))))
在一個單元格中做好公式,注意用絕對相用和相對引用 其餘單元格就可以直接複製公式填充了
4樓:**哥哥
有的回答的好複雜呀!
排序—主要關鍵字為「科目」,次要為「學號」,選「有標題行」,點「確定」,然後你對應著複製,貼上吧
得在2個表上操作 ,沒改的一個表,改後的單獨一個表
5樓:
很難說的 說了你也不一定看得懂 嘎嘎
6樓:
你直接把**發過來,我給你改下不就完了
7樓:
使用vlookup函式查詢即可
關於excel的,打個比方,比如有一張表,我想查詢姓名張三的,然後計算語文的分數(好幾個學期的分數相加) 5
8樓:阿靜
按下ctrl+f,查詢張三,既然有好幾個學期的,那麼張三出現好幾次,用顏色標記好,然後用sum(求和函式)計算,具體怎麼用sum你可以再具體查查。
9樓:作業五隊
用excel表中的自動求和就能立刻算出分數的總和。
10樓:匿名使用者
你把具體的**發過來幫你做下,最好 能給個理論的結果,我給你寫一下公式[email protected]
EXCEL中第一張表中有姓名和身份證號碼,如何在第二張表中輸
假設在sheet1中,a列是姓名,b列是身份證號,在第二張表中,姓名輸入在a1,身份證號要顯示在b1,那麼b1中的公式是 vlookup a1,sheet1 a b,2,false 然後用b1向下拖公式就行。但有一個問題就是,在sheet1表中,姓名一定要唯一,比如 張三 有兩個或超過兩個人的時候,...
EXCEL中第一張表中有姓名和身份證號碼,如何在第二張表中與
假設第一張表的姓抄名在a列,襲身份證號在b列。第二張表的姓名同樣在a列。要在b列顯示身份證號。在b2輸入 vlookup a2,sheet1 a b,2,下拉就可以得到。excel excel中第一張表中有姓名和身份證號碼,如何在第二張表中與姓名相對應的身份證號碼自動生成?假設第一張表的姓名在a列,...
Excel怎麼把一張表某一列對映到另一張表的指定列
推薦使用vlookup 函式處理。祝您成功!網頁連結 如何把excel一個 中的資料轉入另一個 並在相應的單元格 1.一個excel表,需要在另一個表中找出相應同學的班級資訊。2.把游標放在要展示資料的回單元格答中,如下圖。3.在單元格中輸入 vl 會自動提示出vlookup函式,雙擊藍色的函式部分...