與 VLOOKUP 類似,但有更多功能

與 VLOOKUP 類似,但有更多功能

所以,我有一份病患名單。然後我有一份銷售訂單列表,與他們需要接受的臨床就診相對應。我想看看誰被看見了,誰沒有被看見。

因此,在第 1 頁上,我有一份病患清單及其 ID 號碼(病患 ID 是唯一的):病患 ID、病患姓名

然後在工作表 2 上,我有一個銷售訂單清單(銷售訂單 ID 是唯一的,病患 ID 不是):病患 ID、銷售訂單 ID、銷售訂單日期

我想要做的是讓 Excel 查看表 2 中的銷售訂單,找到病患 ID 相符的位置,然後依序顯示日期。

因此,工作表 1 將如下所示:患者 ID、患者姓名、銷售訂單 1 日期、銷售訂單 2 日期、空(當沒有更多匹配時)。

我已閱讀了VLOOKUP 和INDEX/MATCH 上能找到的所有內容,但似乎找不到一個可以在第二張表上有多個匹配項的情況下工作的函數(對於表上的每個銷售訂單,患者ID 都會一遍又一遍地相同) 2)。

請幫忙。

答案1

這是一個不需要任何輔助列或對任何表進行排序的解決方案。它只是使用了一個相對簡單的陣列公式。


設定兩個工作表,如下所示,第二個工作表名為Sheet2

工作表 1 螢幕截圖

工作表 2 螢幕截圖

陣列在第一個工作表的儲存格中輸入 ( Ctrl++ Shift)Enter以下公式C3,然後將其複製貼上/填入C3:G7

{=IFERROR(SMALL(IFERROR(1/(1/((Sheet2!$A$2:$A$20=$A3)*(Sheet2!$C$2:$C$20))),""),C$2),"")}


請注意,如果表 1 中的患者表的最後一個日期單元格已填滿,則會出現可能更多未顯示的日期。在範例工作表中,我在表格右側的列中新增了一個公式,以警告是否發生這種情況:

該公式,即輸入的數組H3並複製貼上/填充到 中H3:H7,是:

{=IF(ISERROR(SMALL(IFERROR(1/(1/((Sheet2!$A$2:$A$20=$A3)*(Sheet2!$C$2:$C$20))),""),G$2+1)),"","more")}

答案2

這可以透過計算每個客戶的訂單來解決。解決這個問題的方法有很多種,但這裡是其中之一。

步驟1:

首先按最新訂單將訂單表排序。

第2步:

在銷售訂單末尾新增一列,其中包含計算客戶數量的公式。在新列第二行中,寫入公式=Countif(B$2:B2,B2)

把公式抄下來。

B是找到客戶編號的列。

步驟3:

新增具有唯一鍵的欄位來識別客戶編號和訂單計數。在第二個新列中,第二行寫入公式=B2&" "&X2

B是客戶編號,X是您在步驟 2 中建立的訂單數。

步驟4:

在病患表中,新增一個與最新訂單、第二個最新訂單等的 ID 進行索引相符的資料列,以傳回日期。IFERROR()如果沒有匹配,則使用 an返回空白,並使用絕對引用,以便可以輕鬆複製公式:

(我嘗試從我的挪威語 Excel 翻譯公式)

=IFERROR(INDEX('Order list'!$C:$C,MATCH('Patient list'!$A2&" "&'Patient list'!B$1,'Order list'!$Y:$Y,0)),"")

其中C是包含日期的列,Y是步驟 3 中的鍵所在的位置。

我希望這能讓您走上正確的道路,為您的餐桌找到量身定制的解決方案。您也許可以自動化訂單表等中的公式。

命令:

訂單表截圖

患者:

患者表截圖

相關內容