很謝謝各位大神的解答,我問的函數公式第1問及第2問,在短時間內就獲得解答,而且還不只一種方法,讓我獲益良多,在此我又發起了第3問,題目如下圖所示,請不要回我「樞鈕分析表」,我是要練習寫出函數的公式,先謝謝大家囉有需要此範本檔案的在這:https://drive.google.com/drive/folders/164vHOditec1mJ1-QH4zFzS-N4DpTyPNL?usp=sharing
不就三階正規化鍵[男女] -->類別(姓名)<->引數[數值] 遇到多項次 就是進行矩正排序 抓N的第M項 進行函式計算帶用類別的時候 排序姓名[引數]若使用引數的時候 去排序男女[鍵]使用鍵的時候 帶出引數 排序[姓名]https://zh.wikipedia.org/zh-tw/%E7%AC%AC%E4%B8%89%E6%AD%A3%E8%A6%8F%E5%8C%96簡單來說 鍵只會有單一 (男或女 OR) (單一男 NOR 單一女) (男加女 AND)(類別)姓名可以重複存在<->對應的就是(數值)看懂 資料庫正規化 就知道怎麼做了盲目套用人家寫好的參數 沒太大意義要了解 主鍵 連結的指標內容這樣寫程序的時候 才知道怎麼做方程不會因為數據一多 就不知道"主從"關係用套用的函式寫 其實並不好寫(沒有基礎 理解不了) 只是針對那些不會的人去套參數 還是搞不懂其中的原理
我都習慣+輔助列 或是複製資料到另一個分頁做資料轉換 原分頁保留避免資料遺失不然真的很難用...假設輔助列的話D4=IF(B4="","",COUNTA(B$1:B4)-2)G4=IF(E4="","",COUNTA(B:B)+COUNTA(E$1:E4)-4)以標記總共人數L4=1 L5=N+1 即可J4=IF($L4<=(COUNTA(B:B)-2),INDEX(B:B,MATCH($L4,D:D,0)),INDEX(E:E,MATCH($L4,G:G,0)))就可以按照姓名排序了K4=複製嫌棄輔助列礙眼 文字顏色改成白色即可~
早起想到另一個方式不用輔助列可是公式就很複雜喔~J4=IF(COUNTA(J$1:J3)+1<=(COUNTA(B:B)),B4,INDEX(E:E,COUNTA(J$1:J3)-COUNTA(B$1:B3)+4))K4=複製公式:假如計算J列數量小於等於B列數量,直接顯示女性姓名,不然則顯示男性第(J列數量-女性數量)ps1 因為counta不能計算自己,COUNTA(J$1:J3)再+1 才是J1-J4數量PS2 因為counta不能計算自己,COUNTA(J$1:J3)-女性到J3數量,所以不用額外+1,另外+4是因為男性是從第四個開始排序
用這兩個就可以了=FILTER(B:C, ISNUMBER(C:C))=FILTER(E:F, ISNUMBER(F:F))用ISNUMBER來避掉前面的TITLE部分,剛好成績是數字,用這方式把有數字的欄位挑出來擺的太遠會有間隔擺得太近會出現溢出錯誤,女生資料跟男生資料重疊擺剛好就合併完成,唯一要做的就是複製貼上,橋到剛好的位置至於這樣類似的方法能不能合併,用一行指令完成,我還沒有想法
另一個簡單的方式=VSTACK(B4:C6,E4:F5)如果是要自動產生,我通常會這樣做我會加上一排特地標顏色的區塊,然後把所有欄位拉到這個區塊上如這範例就是拉到C11 F11=FILTER(VSTACK(B4:C11,E4:F11),VSTACK(C4:C11,F4:F11) <> "")然後想辦法用這範圍去達成目標,以後只插入刪除都沒關係只要這個黃色區塊不刪除,自然公式都不用修改如果有可能第一個欄位有可能被刪除掉,那我也會在最開頭插入一排黃色區塊那這兩個區塊之間的資料可以隨意任意增加刪除上述案例是用VSTACK達成相對目標,但是這樣會產生一堆0的內容用FILTER去把空白內容刪除