建立作為另一個表的子查詢的表

建立作為另一個表的子查詢的表

我有一個很大的員工資料表,我想在其他工作表上建立表,其中包含從主資料集中篩選出的資料集。我在編寫大量 VBA 巨集方面經驗豐富,並且可以使用資料庫和 SQL 完成我想要的任務,只需幾分鐘,但我感覺我正在用靴子追尋螞蟻山。

我嘗試使用資料透視表進行此操作,但是我對資料透視表缺乏經驗,無法獲得我滿意的結果。

大型員工資料集包含諸如開始日期、當前部門、專業技能集等內容(您所期望的正常內容)。

我想在其他工作表上建立動態表,例如顯示在 X 部門工作的所有員工或具有 Y 專業技能的所有員工。顯然,我希望在主資料集上變更或新增資料時更新工作表。

我是否認為這裡有一個簡單的解決方案,或者我是否需要使用實際的資料庫來實現它?

答案1

我想建議基於 Excel 函數的方法,將記錄從來源表過濾/提取到另一個表。

來源表:

在此輸入影像描述


在此輸入影像描述


怎麼運作的:

  • 如果條件儲存格為空,則公式不會傳回記錄。
  • 公式適用於單一和多個條件。

情況一:

在此輸入影像描述

情況2:

在此輸入影像描述

  • 單元格中的數組公式B31

{=IFERROR(IF(AND(ISBLANK($B$27),ISBLANK($C$27),ISBLANK($D$27),ISBLANK($E$27),ISBLANK($F$27),ISBLANK($G$27),ISBLANK($H$27))," ",INDEX($B$2:$H$21,SMALL(IF(MMULT(($B$2:$H$21=$B$27:$H$27)*1,{1;1;1;1;1;1;1})=COUNTA($B$27:$H$27),MATCH(ROW($B$2:$B$21),ROW($B$2:$B$21)),""),ROWS($A$1:A1)),COLUMNS($A$1:A1))),"")}

  • 完成公式Ctrl+Shift+Enter並填充。

  • 這個練習的主要特點是MMULT功能。
  • MMULT(矩陣乘法)傳回兩個陣列的矩陣乘積。
  • array1 的列數等於 array2 的行數。
  • 陣列結果包含與 array1 相同數量的行以及與 array2 相同數量的列。

根據需要調整公式中的儲存格引用。

相關內容