反饋已提交
網絡繁忙
序號可以用來標識某列資料。
本文介紹透過層次座標函式計算序號的方法。
新建資料庫查詢。
使用以下SQL函式:
SELECT 地區,銷售員,SUM(銷量) AS 總銷量
FROM 銷量
GROUP BY 地區,銷售員
輸入表頭。
將【ds1】的資料欄拖入D3:F3。
預覽。
在B3中輸入以下公式:SEQ()。
將B3的父格設定為E3。SEQ()會傳回一個整數,表示被第幾次執行。此時SEQ()所在儲存格的父格是E3,即E3每擴展出一個格子,SEQ()就會被執行一次。因此資料欄【銷售員】一共有多少列,SEQ()就會被執行多少次。
在C3中輸入以下公式:SEQ(D3)。
將C3的左父格設定為E3。SEQ(D3)依然傳回SEQ()被累計執行的次數,但僅當同一列中D3的值相同時才會進行累計,如果D3的值不同則從1開始重新累計。可以將D3的值看做SEQ()的組號,SEQ()傳回的是在組內被累計執行的次數。
SEQ函式的上限是2047,因此適合為列數不超過2047的表格排序。
普通序號.cpt
將B3中的公式改為:CHAR(SEQ()+64)。
CHAR函式將數字按照ASCII碼參照錶轉換成字元。大寫字母A-Z對應的ASCII碼是65-90。
將C3中的公式改為:CHAR(SEQ(D3)+96)。
CHAR函式將數字按照ASCII碼參照錶轉換成字元。小寫字母a-z對應的ASCII碼是97-122。
在某些場景中,需要將大寫或小寫字母作為序號。因為字母僅有26個,因此字母序號僅適合為列數不超過26的表格排序。
字母序號.cpt
將【ds1】的資料欄拖入C3:E3。
在B3中輸入以下公式:INARRAY(C3,UNIQUEARRAY(C3[!0])) + "." + INARRAY(D3,UNIQUEARRAY(D3[!0]{C3=$C3}))。
將B3的左父格設為D3。
公式片段
含義
UNIQUEARRAY(C3[!0])
取出所有地區的名稱,並且去掉重複的值,傳回一個陣列。
INARRAY(C3,UNIQUEARRAY(C3[!0]))
計算在上一步傳回的陣列中,是第幾個值和當前地區的名稱相同,即計算當前地區的序號。
UNIQUEARRAY(D3[!0]{C3=$C3})
取出某一地區中,所有銷售員的名稱,並且去掉重複的值,傳回一個陣列。這個地區就是當前銷售員所在的地區。
INARRAY(D3,UNIQUEARRAY(D3[!0]{C3=$C3}))
計算在上一步傳回的陣列中,是第幾個值和當前銷售員名稱相同,即計算當前銷售員在地區中的序號。
INARRAY(C3,UNIQUEARRAY(C3[!0])) + "." + INARRAY(D3,UNIQUEARRAY(D3[!0]{C3=$C3}))
將地區的序號和當前銷售員在地區中的序號用"."連接起來。
多級序號.cpt
拖入表格 【產品】。
輸入表頭,B和C兩欄的表頭都是序號。
將【ds1】的資料欄【產品ID】【產品名稱】和【單價】拖入D3:F3。
選中第1、2列,右擊後選擇【設定重複標題列】。
在B3中輸入公式:SEQ()。
在C3中輸入公式:IF(COUNT({B3}=1),1,INARRAY(B3,{B3}))。
將C3的左父格設為D3。
COUNT({B3}=1)
{B3}傳回一個所有序號組成的陣列。
1
如果陣列的長度是1,代表某頁只有一條資料,新的序號也是1。
INARRAY(B3,{B3})
如果陣列的長度不是1,計算陣列中第幾個值等於當前的序號,作為新的序號。
第1頁的最後一條資料,序號是54。
在第2頁,第1欄序號跟隨上一頁從55開始,第2欄序號從1開始。
選中第B欄後右擊選擇【隱藏】。
每頁序號都是從1重新開始。
每頁序號重新開始.cpt
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉