2016-03-02 160 views
2

在我的「小品」表和表我有一大堆的ID如下:使用膠印,VLOOKUP,並連接到返回一個列表

Level ID Tenant Type Level SQM Tenant 
1358001  Retail    1000 VACANT 
1358002  Retail    1000 Schoc 
1358003  Retail    1000 VACANT 
1358004  Retail    1000 Wishbone 
1358005  Retail    1000 Zebrano Ltd 
1358006  Retail    1000 Cranfields 
1358007  Retail    1000 Astoria 
1358008  Retail    1000 Mall Drycleaners 
1358009  Unaccounted Area 1000 Unaccounted Area 

我已經然後有一個「前」片,其中數據被排序等。 我希望能夠在前臺列出單個級別的多個租戶。在上面的例子中,所有租戶都處於同一級別:「00」。

在「正面」表單上,我通過使用=CONCATENATE(F5,B15)F5= 1358B15= 00來拉起我在單元格I30中查找的關卡ID。

單元格I32包含: =COUNTIF(pieces[Level ID],(CONCATENATE(I30,"?")))它返回9

在此之下,我想爲00級的所有租戶製作一個「動態」列表。我不完全確定如何做到這一點(並且我可能會朝錯誤的方向行進),但我相信我有零件難題我只是不知道如何拼湊在一起。

我可以返回一個租戶具有以下forumla:

=VLOOKUP(CONCATENATE(I30,"1"), pieces[[#All], [Level ID]:[Tenant]], 4, FALSE) 

其正確地返回第一個租戶( 「懸空」)。

然後我想我可以拉下名單「(只是到下面的單元格),通過使用類似:

=OFFSET(VLOOKUP(CONCATENATE(I30,"1"),pieces[[#All],[Level ID]:[Tenant]],4,FALSE),0,0,I32) 

它會用我COUNTIF聲明做出了一個9的高度。然而,這個公式不工作,我不能設法得到它的權利,甚至找了一個

+0

所以你的等級ID是僞裝成真實數字的文本......?如果不是,那麼CONOOKATCH中的VLOOKUP如何工作? – Jeeped

+0

@Jeeped是的基本上,他們必須在文本下,所以我可以使用水平等00等,而不僅僅是0. – Berry

+0

我不知道這是否可以用普通公式完成。你是否熟悉VBA? – JamesFaix

回答

1

使用AGGREGATE¹ function後,從表中返回第一,第二,第三,等匹配的行號到INDEX function

=IFERROR(INDEX(pieces[Tenant], AGGREGATE(15, 6, (ROW(pieces[Level ID])-ROW(pieces[#Headers]))/(LEFT(pieces[Level ID], LEN(I$30))=I$30), ROW(1:1))), "no more") 

填滿,直到您用完比賽。如果您希望不匹配的單元格顯示爲空白,請將「不再」更改爲零長度字符串(例如"")。

aggregate_next_tenants


¹AGGREGATE function用Excel 2010中引入的。它是不是在早期版本。

+0

完美的作品!感謝您的幫助,非常感謝 – Berry

+0

想知道是否可以添加一個文本框(或用戶窗體或形狀等)的堆疊在一起的特定數字(由單元格定義)。每個形狀/盒子/表格可以有公式和其他細節。這將以某種方式消除「不再需要」。可能比在工作表中使用零長度字符串等更清潔的解決方案 – Berry

+0

公式不會以這種方式工作;實際上,有些[google-sheets]公式可以做,但不是[excel]。使用[excel],您需要將公式填入可能匹配的最大數量。使用VBA,您可以動態更改退貨數量,但不能使用原生工作表公式。 – Jeeped

相關問題