
昨天在群里丟了個問題,是關(guān)于一對多查找的,雖然關(guān)于查找的話題永遠(yuǎn)都沒有停止過,不過在工作中對于查找來說也是家常便飯,尤其是類似于人力資源這種部門 。來看看題,原始數(shù)據(jù)如下:

需要根據(jù)提供的身份證號碼查找同一戶號中的所有人員詳細(xì)信息 。

(注:案例純屬虛構(gòu),也是在某個教材中得到的)
第一種:Microsoft365的新增函數(shù)Filter
看標(biāo)題很明顯,必須是365用戶,F(xiàn)ilter中文翻譯就是篩選的意思,因此對于這種篩選的問題用它肯定沒錯 。我們將結(jié)果都寫在最下方:

公式為:
=FILTER($A$2:$F$14,$E$2:$E$14=VLOOKUP($H$2,$C$2:$E$14,3,0),)
只需要將公式寫在一個單元格中就可以了,后面的全部自動帶出,非常的快捷高效;
第二種:固定函數(shù)組合INDEX+SMALL+IF+ROW
關(guān)于這個經(jīng)典函數(shù)組合,在分享中應(yīng)該提過好幾次,原理就不多少說,你只需要記著套用就好了 。
=Index(要取值的范圍,Small(if(取值條件,row(數(shù)據(jù)源行數(shù)),9^9),row(a1))
【個人網(wǎng)上戶籍查詢系統(tǒng) 身份證一鍵查詢所有信息】上述公式中只有取值范圍、取值條件和數(shù)據(jù)源行數(shù)是需要關(guān)注的,一起來看看具體怎么套 。

公式為:
=INDEX($A$2:$A$14,SMALL(IF(VLOOKUP($H$2,$C$2:$E$14,3,0)=$E$2:$E$14,ROW($1:$13),9^9),ROW(A1)))
取值范圍是:A2:A14,因為要得到的是姓名;
取值條件:因為身份證是唯一的,如果用身份證作為查找條件,勢必只能得到一個數(shù)據(jù),所以這里運用了Vlookup進行轉(zhuǎn)換,將身份證對應(yīng)的戶號查找出來,然后再根據(jù)戶號查找所有信息,所以這里的取值條件應(yīng)該是戶號;
數(shù)據(jù)源行數(shù):從趙一開始到最后一行的劉四,總共是13行,所以用了Row(1:13)
上述完成之后拖拽鼠標(biāo)填充公式就好了 。

對于這種錯誤的引用,直接最外面套一個IFERROR就搞定了,公式看似復(fù)雜,其實總結(jié)一下規(guī)律,當(dāng)成我們高中時候?qū)W的那什么固定公式一樣去套用就可以了 。
第三種:Power Query轉(zhuǎn)換(難度較高)
有興趣的可以試試,這個需要對M函數(shù)比較了解的朋友進行操作 。直接在編輯欄中輸入:

代碼為:
= Table.AddColumn(源, 自定義, each Table.SelectRows(戶口信息,(y)=>y[戶號]=Table.SelectRows(戶口信息,(x)=>x[身份證號]=[請輸入身份證號碼])[戶號]{0}))
最后擴展數(shù)據(jù)后,關(guān)閉并上載就可以一鍵刷新、一勞永逸了 。

上述需要搞懂的是:
Table.SelectRows
(x)=>x
表格之前的嵌套關(guān)系
如果你有更好的辦法,歡迎拿出來一起交流,共同進步吧 。
最近在錄制Power Query的課程,從基礎(chǔ)到進階,希望一系列的教程可以幫助你有所提升,畢竟界面的操作只能發(fā)揮全部能力的20%,另外80%的能力都要通過M函數(shù)來實現(xiàn) 。
推薦閱讀
- 網(wǎng)上怎么查賓館開過房記錄
- 一個人能在幾個銀行貸款
- 兩個人的手機怎么互相定位 兩人手機定位怎么定
- 網(wǎng)上怎么查別人的開過房記錄
- 老公出軌了網(wǎng)上怎么查他的酒店開過房記錄
- 個人成份一般是指什么
- 個人征信是不是黑名單怎么查
- 攜程為什么不能網(wǎng)上退票
- 網(wǎng)上訂的機票怎么改簽時間 網(wǎng)上訂的機票怎么改簽
- 促進睡眠的食物療法
