2017-02-24 33 views
0

首先讓我解釋我想實現的目標。在Excel中搜索某些值,如果發現從單元格左邊的文本中找到值

我現在有一個Excel這樣的:

Names        | Standards 
James        | Standard 1 
James        | Standard 2 
James        | Standard 3 
Francis        | Standard 1 
Francis        | Standard 2 
Francis        | Standard 3 
Leon        | Standard 2 
Leon        | Standard 3 
Peter        | Standard 2 
Michael        | Standard 3 

我想創造這樣的事情:

Standard | Name 1 | Name 2 | Name 3 | Name 4 
Standard 1 | James | Francis |  | 
Standard 2 | James | Francis | Leon | Peter 
Standard 3 | James | Francis | Leon | Michael 

我真正的Excel有300多個標準,所以我想實現自動化這使用Excel公式。我知道這是可能的,但我有一段時間沒有使用Excel,所以我可以用正確的方向推動。

夫婦的事情,我需要(我認爲):

  • 需要統計人的名字列了多少次提到的標準。所以我想知道,我需要2個名稱爲標準1和4爲標準3.我想我可以通過使用COUNTIF方法做到這一點。

  • 我們需要搜索標準的位置。我想我可以通過使用Match功能來做到這一點。這給了我在我原來的Excel中的第一場比賽的位置。通過整理我的原始Excel a-z並將其與countif結果相結合,我知道所有匹配的位置(第一個匹配+ countif =最後匹配的位置,並且其間的所有內容也都是該標準)。

  • 對於第一個提到標準的名稱,我將引用第一個匹配的左側單元格(因爲名稱位於標準左側的單元格中)。對於第二個名字,我會引用第一個匹配下的單元格左邊的單元格。我一直這樣做,直到找到與Countif提到的許多名字相同的名字。所以我需要一個IF語句,以確保如果2個人提到標準1,只有2個名字和2個單元格帶有「」。

  • 我將如何參考細胞?通過另一個如果使用這個語句:Excel Reference To Current Cell,糾正我,如果我錯了,但不能我只說THIS.CELL =我發現的單元格位置(可能應該使用間接嗎?)。

這只是我的頭腦風暴,但我很想知道,如果人有任何其他想法我的問題,或對我目前的計劃的一些反饋。

重要的是要提到的是,我想使用Excel公式來做到這一點。我意識到這並不總是最好的,但VBA不是一個選項。我也不擔心性能問題,因爲我想我會在使用公式找到所有名稱後複製所有值。

在此先感謝!

+0

你能不能使用數據透視表?看起來非常適合你需要的東西 – Jonathan

+0

我不太瞭解數據透視表,我會研究它並嘗試看看我能用它做些什麼。 – CvP

+0

聽起來不錯,請問你是否需要更多幫助。我認爲,如果將「標準」字段和「名稱」字段拖到行數據框中,應該這樣做。 – Jonathan

回答

0

根據你想要如何佈局,我認爲你應該使用數據透視表。將「標準」和「名稱」字段拖到「行」數據框中,然後右鍵單擊標準,單擊「字段設置」 - 「佈局和打印」 - 「以表格形式顯示項目標籤」。 (參見下面的例子。)

example 1 1

如果你一定要在你的問題中的格式的數據,我會用「名稱」字段拖到「列」的數據中編輯數據透視表。然後再次將字段列表中的「標準」字段拖放到「值」框中(請參閱下面的示例)。

在數據透視表下方的空間中,如果存在1,則使用公式IF複製名稱。這種方法顯然是相當脆弱的,所以如果你能用第一種方法做,我認爲你未來會遇到更少的問題。

example 2

+0

非常感謝所有的幫助。我想我現在知道如何使我的Excel中的東西變得更好。 雖然我還有另外一個問題,有沒有簡單的方法讓空單元格消失?或者說另一種說法,是否有一種方法可以使單元格向左移動(如果左側單元格爲空)? – CvP

+0

我不確定這是否正是您的意思,但在數據透視表中,您可以通過單擊和拖動來重新排列每個單元格的順序。所以,例如,如果你點擊名字'彼得'並將其拖動到'邁克爾'的左邊,那麼它會在彼得之前移動邁克爾 – Jonathan

+0

我的意思是:當你使用公式將1變成名字或者「」,它有時會給它「像它應該的」。在這一步之後,我想通過刪除所有回答「」的單元格來使它看起來更好一些。所以,而不是詹姆斯萊昂「」彼得,我會得到詹姆斯萊昂彼得。問題是,我不能使用F5-> options - > blanks來查找所有的空白,因爲它不是一個真正的空白單元格(它是一個帶有返回「」的公式的單元格)。所以問題是,我如何只選擇帶有「」的單元格,以便刪除它們? – CvP

相關問題