2014-01-12 32 views
3

計劃Excel中 - 從動態記錄從分隔單元動態列表/刪除空白

  • 的Excel 2013

目標

  • 使用數據驗證的列表選項,創建從逗號分隔列表中的單元格內下拉列表
  • 使用數據驗證的列表選項,創建值的潔淨行沒有任何空白的內嵌下拉列表,從不可避免地沾染空白動態生成的行

限制

  • 否VBA,宏或其他malarkey - 公式只有
  • 數據保存在一行中,而不是一列。這將是有些困難的數據轉換成一列,我希望避免這樣做

詳細

我原來的計劃是創造出包含一個逗號分隔的列表中的單個細胞,然後將其用於創建數據驗證列表。成功創建一個格式良好的逗號分隔列表後,似乎不能簡單地引用列表並通過數據驗證工具進行翻譯,現在我需要找到一種替代方法。

數據保存在一個長行(不是列,也不能簡單地轉換爲列),它是通過彙總上面的各種值生成的。這意味着兩個值之間可能有很多空白 - 這是不可避免的。

下面的網站上有一個數組公式,用於從塔取出空白單元格的作品,但我有沒有運氣其翻譯成一排工作的公式: http://www.cpearson.com/excel/NoBlanks.aspx

=IFERROR(INDEX(BlanksRange,SMALL((IF(LEN(BlanksRange),ROW(INDIRECT("1:"&ROWS(BlanksRange))))),ROW(A1)),1),"") 

如果任何人有關於使這項工作連續工作的任何想法,我會很感激幫助。它似乎需要的不僅僅是用COLUMN()替換ROW()函數 - 可能與INDIRECT()中的「1:」有關,儘管我不明白公式如何工作。

在此期間我會一直玩這個遊戲,當然如果任何人有任何其他的NON-VBA解決方案來處理行數據或逗號分隔的數據問題,

編輯:爲了澄清,有一個解決方案提供的上述連接提供一個垂直的數據到一個水平結果巷,但這並沒有幫助我的水平數據集。

+0

沒有達到它的底部,但嘗試使用'TRANSPOSE'行到列,然後刪除空白... – zx8754

+0

@ zx8754我曾嘗試使用部分數據,但我遇到問題使公式工作在第一行以外的任何地方,但感謝你的想法。 –

回答

1

這是你想要的嗎?

=IFERROR(INDEX($A$1:$E$1,1,SMALL(IF(LEN($A$1:$E$1)<>0,COLUMN($A$1:$E$1),9.9E+100),COLUMN())),"") 

我只是假定數據是這樣的:
Row1數據和Row2適用公式。

結果在Row2將是Row1數據沒有空格。

EDIT1:

我看見你需要它Data Validation List>
所以我想這是你可能需要的東西:

並使用該公式:

=IFERROR(TRANSPOSE(INDEX($A$1:$E$1,1,SMALL(IF(LEN($A$1:$E$1)<>0,COLUMN($A$1:$E$1),9.9E+100),ROW(A1)))),"") 

希望這有助於。
我只是猜你想要什麼,但這應該給你想法如何調整數組公式。