2017-06-14 338 views
1

我有一個Excel工作表來篩選列。該欄涉及一個人的總體經驗。這些值是5年2個月,32年6個月等...所有的值都是字符串格式。我需要以下功能。如何篩選包含日期/時間字符串的excel列

    1. 當我在文本框(我將在表單創建)進入> 5,應該只顯示其是小於5(過濾)的體驗。我需要一個想法如何在vba中做到這一點。

誰能幫助..?我只需要一種方法來做到這一點。

Screenshot of the column

+0

'''符號的意思是'大於',而不是'小於'。如果輸入'> 5',則表示「大於5」,而不是「小於5」。除了這些理解操作符符號的基礎知識之外,您不需要指定'5'應該應用的單位。幾年或幾個月?本表中的數據結構非常不幸,特別是因爲數字和單位文本之間沒有空格。誰創造了這樣不好的數據?爲什麼? – teylyn

+0

使用整數可能會更容易幾個月,如38年3年和2個月,但至少使用一致的單位來確定持續時間。使用像這樣的文本字段來表示一個可以用數字表示的值是非常不明智的。你會更好地改變持續時間的存儲方式,而不是試圖找到一個複雜的VBA例程,將文本重新拼接成數字值。 – teylyn

+0

真的很抱歉,我的意思是@teylyn大於5年。你手上有那麼複雜的程序嗎?像分裂一年,然後將它添加到整數形式的列表A中,然後刪除所有小於5的值再次使用列表A中的值過濾Excel。這是可能的VBA ..? –

回答

3

考慮下面的屏幕截圖。專欄a有不幸的文字與年和月。

enter image description here

B欄打出了多年。 C列將這幾個月分開。 D列在時間範圍內具有總月數。有了這個功能,您可以使用內置在Excel表格中的Autofilter的過濾器選項來過濾任何列。

的計算公式如下:

年:=MID([@total],1,FIND("Years",[@total])-1)+0

月:=MID(SUBSTITUTE([@total],"Months",""),FIND(" ",[@total])+1,99)+0

期限在三個月:=([@years]*12)+[@months]

現在只需使用過濾器的下拉欄的butttons頭文件,並且完全不需要VBA。

相關問題