2013-05-03 160 views
4

我在想如果有一種方法可以從另一個列表中替換單元格值而無需編寫VB腳本。Excel - 根據另一列中的值替換單元格值

這裏的問題是我試圖解決:

我有一個列姓氏:

史密斯
瓊斯
泰勒

我有另一個與列ID例如

Smith_ID
Taylor_B
Jones_C

我想與Smith_ID更換SmithJonesJones_C等。顯然,我的名單比3項更長的時間。

+0

我不認爲它可能只使用公式。 – 2013-05-03 22:55:46

+0

你想如何匹配這些值?我沒有看到兩個列表之間的共同價值。例如,如果兩個列表都有一個說'史密斯'的專欄,那麼你的問題就解決了。 – PowerUser 2013-05-03 23:07:42

+2

創建查找列到你的ID列其中只有最後一個名稱的左邊:如'= LEFT(B5,SEARCH(「_」,B5)-1)'然後你就可以在這兩個列使用VLOOKUP返回匹配的ID在你的姓氏列表中的每個值(當然,假設他們都獨特而你的ID都遵循相同的模式) – 2013-05-03 23:18:38

回答

1

如果你有2個列表之間的共同的價值,那麼你可以使用Vlookup()(見鏈接,更好的例子),以配合2

使用你的榜樣,你有工作表Sheet1,說:
史密斯
瓊斯
泰勒

在Sheet2中,您有:
史密斯4
瓊斯9
泰勒6

則執行以下操作:

  1. Sheet 1中與式=vlookup(A1,Sheet2!$A$3:$B$3,2,False)添加一列。這將返回第一行4,第二行9,等
  2. (可選)如果你想完全擺脫原來的價值,你可以複製&粘貼值並刪除原始列或只是隱藏原始專欄。

這是你要找的嗎?

+0

感謝您的回答卻是不正是我一直在尋找。我有相同的工作表中的信息。列A的姓氏相同,姓名出現的次數多於1,列B有ID。爲了簡單起見,我們可以說ID是姓和名,也就是說他們部分匹配姓。我想根據姓氏查詢ID並將其放在C欄。 – 2013-05-04 00:14:06

2

他可以做到。

  • 與提取物列ID 「_」 字符由 「文本到列」

A柱
史密斯
瓊斯
泰勒

乙柱
史密斯
泰勒
Jones

C色譜柱
ID

Ç

現在寫信給下面的公式

=CONCATENATE(A1;"_";VLOOKUP(A1;$B$1:$C$3;2;FALSE)) 

我希望你做

0

=INDEX('All_Linguists_All_ProjectsFri J'!$DA$2:'All_Linguists_All_ProjectsFri J'!$D$71355,MATCH(A2,'All_Linguists_All_ProjectsFri J'!C:C,FALSE),1)

沒有時間來解釋它,但如果你知道如何在Excel中編寫公式,這應該是有用的。對不起,沒有解釋。

+1

如果您的答案需要解釋,請執行。因爲這個答案會幫助所有其他有相同問題的用戶 – 2013-10-30 11:25:59

0

要回答一般情況下這個問題,假設你有兩列如下:

一位名叫史密斯,瓊斯,泰勒,凱文,叫喊,阿什頓...

b。約翰福音哈佛大學,南加州大學叫喊,凱文克魯斯,阿什頓債券,史密斯石,泰勒換檔...

這裏的經典案例是,你有兩個幾乎相同的列只有略有差異。這可能是一個錯字或其他一些錯誤。 如果我們假設B列是你想要的正確的東西,你想要做的是在B列中用它們替換列A中的單元格的值。

因此對於A中的每個單元格,您想要知道B列中其近似匹配的位置。例如,給定A1(Smith),您想知道Smith Stone在哪裏,在本例中爲B5。

由下式開始與新的列C,具有匹配功能和通配符組合,填充C1:

ROW_INDEX =匹配(A1 & 「」,$ B $ 1:$ B $ 6,0)

您現在使用

=索引提取對應於列A,然後每隔近似匹配的ROW_INDEX($ B $ 1:$ B $ 6 ROW_INDEX,0)

它會在單元格C1中返回「Smith Stone」。其他細胞也一樣。備註:這種方法的最大缺陷是它需要B中的每個單元格的近似匹配應該是唯一的。

0

希望您使用的是excel,並且您希望從另一個相同原料的單元格中替換一個原始單元格的值,並且必須對整個列進行替換,而不是形成選定的原始格式。

在這種情況下,您可以複製要保留的值(即ID列),然後在列姓中刪除相同的值。

如果值是相同的原始,那麼沒有問題,並從您的查詢看來,價值觀是原始的。

1

我有2列,一個是供應商名稱,第二個是供應商地址,但它也包含供應商名稱。我需要刪除供應商名稱,這會讓我不知道供應商名稱。

例如,如果一列有「Con Ed」,下一列有「Con Ed 123 Street,New York,NY 11111」,我需要用空值替換「Con Ed」,並且只有「123 Street,New約克,紐約11111「在一列。

這就是我所做的,我也會讓你知道你能做些什麼來完成你的目標。

首先,我創建了一個新列,並將其設置爲供應商名稱的長度(使用LEN()函數)。

然後我創建了另一個新列,並將其設置爲供應商地址的長度。

第三列,並設置爲使用Right()函數。文本是供應商地址,長度是地址長度減去供應商名稱的長度。

所以考慮:「Con Ed 123街,紐約,紐約11111」 第一列:(供應商的長度):len(Con Ed)= 6 第二列:(供應商地址的長度):len(Con ([供應商地址],31(37-6))=「,紐約州紐約市11111」

最後,我剛纔應用了TRIM功能到第三欄。

在你的情況下,你只想使用連接函數來追加新列的原始列&。

因此,在總結,你將有以下欄目:

1列:名稱: (史密斯,瓊斯,泰勒)

列2:標識: (Smith_ID,Taylor_B,Jones_C)

欄3:LEN([名稱])

Column4:LEN([ID的])

Column5: 「替換」 功能 = TRIM(右([編號]([Column4] - [欄3]))

Column6:字符串一起放回 =串聯([欄3],[Column5])

相關問題