在 Excel 的儲存格中輸入了多個字元的字串,如何來計算這些字元的數量呢?(參考下圖)
儲存格C2:=LEN($A2)-LEN(SUBSTITUTE($A2,C$1,""))
原理是:將儲存格C2的字串總長度(字元數),減掉去除某個字元的字串總長度(字元數)。
複製儲存格C2至儲存格C2:L12。
當你有了以上的每個字元的數量,如果要計算總和(參考13列)是很容的事。如果你不想透過先將每一列中每個字元的數量算出來,直接想得到總和,該如何做呢?
在 Excel 的儲存格中輸入了多個字元的字串,如何來計算這些字元的數量呢?(參考下圖)
儲存格C2:=LEN($A2)-LEN(SUBSTITUTE($A2,C$1,""))
原理是:將儲存格C2的字串總長度(字元數),減掉去除某個字元的字串總長度(字元數)。
複製儲存格C2至儲存格C2:L12。
當你有了以上的每個字元的數量,如果要計算總和(參考13列)是很容的事。如果你不想透過先將每一列中每個字元的數量算出來,直接想得到總和,該如何做呢?
有人問到 Excel 2010 的最大欄數是XFD,這個數字代表第幾欄呢?我們可以把Excel的欄名順序看成是一種26進制的表示法,A, ~ , Z, AA ~ AZ, BA ~ ZZ, AAA ~ XFD。
以3個位元字母的第XFD欄(最後一欄)為例:
XFD1:=SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),"")
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),ROW(),"")
=SUBSTITUTE(ADDRESS(1,16384,4),ROW(),"") [取得列數和欄數]
=SUBSTITUTE("XFD1",ROW(),"") [將列數和欄數轉成欄名列號字串]
在 Excel 中如果要將時間轉為十進制表示,該如何處理呢?以下先以「分」來列舉,1-60分鐘如果要轉換成小時,而以十進制表示(請參考下表),則每1分鐘代表1/60小時。
如果要將一個時間(時:分)轉成十進制表示,則:
儲存格B2:=TEXT(HOUR(A2),"00") & "." &SUBSTITUTE(MINUTE(A2)/6,".","")
HOUR(A2)為取出儲存格A2中的時間之「時」的部分,TEXT(HOUR(A2),"00") 則將格式設定為以二位數表示,不足二位數者要補0。
MINUTE(A2)/6乃將儲存格A2中的時間之「分」的部分除以6,而SUBSTITUTE(MINUTE(A2)/6,".","")乃將MINUTE(A2)/6所得數值的部分之小數點去除(即左移一位,例:0.16666666變為.01666666),相當於除以10。所以整個公式為將儲存格A2中的時間之「分」的部分除以60。請觀察下圖較容易理解:
在 Excel 中如果想要有規律的改變間隔列的底色(參考下圖)該如何處理呢?假設第1列的數字做為標記間隔列數,並依先深色間隔白色的規律。
儲存格B2:=LEFT(MOD(ROW()-2,B$1*2)<B$1,1),複製儲存格B2至儲存格B2:G25。
公式中的MOD(ROW()-2,B$1*2)會得到如下圖的數字,MOD(ROW()-2,B$1*2)<B$1會得到TURE/FALSE的數列,透過LEFT函數取出第一個字母。
因此,只要將儲存格B2:G25的格式化條件設定為=MOD(ROW()-2,B$1*2)<B$1,成立時改變其底色即可。
在 Excel 中取得一個學生考試成績記錄表(參考下圖),現在有部分成績將不予採計,該如何計算平均呢?
採用的方式是在各個成績欄位上標記「X」記號,表示該成績不予計算,而且該欄位的成績會予以淡化。
(1) 計算平均
儲存格M3:{=AVERAGE(IF(UPPER($C$1:$L$1)<>"X",C3:L3,FALSE))}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。複製儲存格M3,往下各列貼上。
透過UPPER函數可以接受「X、x」的標示,公式中將不符合條件者,給予FALSE,該數將不會列入平均。
在 Excel 中取得學生成績表(如下圖),因為學生成績是依座號順序輸入,而學生是以亂數分組而成。共有40位學生,每4位學生一組,共分為10組。現在要根據這個成績表,來計算A成績的最高分、B成績的不及格數和三個科目的加權平均成績。
請注意:以下均為這是陣列公式,輸入完成應按 Ctrl+Shift+Enter 鍵。
(1) A成績的最高分
{=MAX(($C$3:$C$42=$H3)*D$3:D$42)}
=MAX((符合組別1的True/False陣列)*A成績陣列)
當你在 Excel 取得一個資料表(如下圖左),想要以符號字元(例如:「■、□」字元)來繪製達成率的統計圖表,該如何做呢?
特別注意圖表是以月份為中心,左邊為未達目標(達成率為負數),右邊為超過目標(達成率為正數)。而且未達目標者是以中心往左填入「■」字元,而超過目標者是以中心往右填入「■」字元。
儲存格E2:=IF(D2<0,REPT("□",10+ROUND(D2*100,0))&REPT("■",-ROUND(D2*100,0)),REPT("□",10))
利用ROUND函數將達成率乘以100後四捨五入,再以REPT函數重覆「■」字元。因為全為要填滿10個字元,所以其餘以「□」字元呈現。而且要先判斷達成率如果是負數才填入,如果不是負數,則填入10個「□」字元。
儲存格G2:=IF(D2>0,REPT("■",ROUND(D2*100,0))&REPT("□",10-ROUND(D2*100,0)),REPT("□",10))
同上原理,先判斷達成率如果是正數才填入,如果不是正數則,填入10個「■」字元。
如果在 Excel 中的取得一個時間的數列(含分:秒),如何計算排名與總和呢?
儲存格C2:=RANK(B2,$B$2:$B$16,1)
複製儲存格C2至儲存格C2:C16。
RANK函數中的參數1,代表要遞增排序。(參數0,代表要遞減排序)
(2) 計算總和
在 Excel 中如果取得一個Email地址的清單,如果想要將Email中的帳號和伺服器名稱分離出來,該如何處理呢?
儲存格B2:=LEFT(A2,FIND("@",A2)-1)
儲存格C2:=RIGHT(A2,LEN(A2)-FIND("@",A2)-1)
複製儲存格B2:C2,往下貼上即可。
FIND:在某個文字字串內找到另一個文字字串,並傳回該文字字串在第一個文字字串中的起始位置。 |
在 Excel 中取得一個數列(如下圖),想要標示出數列中不重覆的數、重覆的數、重覆的數但不包第1個、排除重覆的數(圖中深色底、紅色字的儲存格為標示)。這次要以設定格式化條件來處理,而且只要使用COUNTIF函數即可。
(1) 重覆的數
選取儲存格B2:B20,設定公式條件:=COUNTIF($B$2:$B$20,B2)=1
(2) 重覆的數