Excel 將A表的基礎數據拼接到B表中來-三種方法: ctrl+回車, VLOOKUP()函數,宏


A表  基礎信息表

  

 

B表 業務信息表

  

 

將a表中的基礎數據 拼接到B表的后面,

  

 

應用場景是:

B表很多數據,很繁亂,名字不一定全,

A表也是比較多的行,B表亂:比如有8行有李晨的,卻只有3行是范仲淹的,現在需要快速拼接:

 方法一:不用函數,利用ctrl+Enter 

xls表格 ctrl+D 和ctrl+Enter區別 --快速填充相同數據,同時填充多個不同數據 - 海藍steven - 博客園
https://www.cnblogs.com/rogge7/p/8075115.html  --利用這博文介紹

兩個表的數據合並放在一個表

 B 列當做姓名,C D 列當做B表的學科和分數。E F G列 當做A基礎信息列。

A表復制過來的時候,要空出列,以便后面的數據可以接上B表的后面。【總的任務就是快速自動填 EFG列】

還有一點,兩個表前面要加上一列 標志列。如上圖A表的左邊加上A標志服,B表的左邊隨便加點標志。

對B列進行排序,發現要向上填充數據,不太符合本實踐要求。

  

改進:全選所有列,自定義排序:對E列做次排序

  

變成
  

 按照博文說的,選擇列,Ctrl+G 定位 選擇 空值  在編輯欄中輸入=上一個格子的地址,( 是上一個值的格子) 再按CTRL+Enter完成填充

這樣就會自動往下填充了,整列完成,瞬間完成(我的幾萬行數據)。同時對多列是否可以操作,還沒有試(后來試了,不可以)。

 

最后一步:把基礎A表的數據刪除:先將整個表的復制,到另一個新表格 粘貼為數值(不要帶格式的)

對表的A列排序,把A列中有A字符的行全部刪除(這是A表的基礎數據),完成。

 方法二:用函數 VLOOKUP

復制excel指定內容到另一個表格     -- 開工前先看此例子
https://www.kafan.cn/A/enoj498kvw.html

  

 

VLOOKUP(參數1,參數2,參數3,參數4)

 =VLOOKUP(要查找的值、要在其中查找值的區域、區域中包含返回值的列號、精確匹配或近似匹配 – 指定為 0/FALSE 或 1/TRUE)。
參數2中數據區域,區域的第一列就是要查找的列,區域后面列是要返回的列,

 在D1中輸入公式回車,快速下拉填完整列的公式

發現有些數據找不到,明明在數據表 里面的。【奇怪的是,同一台車,有些行可以找到,有些行找不到,有空格?】

下面網上的說法:

原因有以下幾個方面:
1.字符串后面有空格。
2.數據類型不匹配。雖然有些數字看起來都是一樣的,但有的是數值型的,有的是文本型的,這二者是匹配不到一起的。
3.有重復的數據。VLOOKUP只能查找到第一個數據,后面的重復數據是查找不到的。

但我數據沒有空格,數值類型應該都是一樣的,我覺得第3點 網友說得不對。

我仔細分析,發現我寫的是: =VLOOKUP(A1,車輛列表基礎信息!B2:E1575,2,0)  猜想是區域數據,沒有絕對引用造成的。

點擊參數2 ,按F4 絕對引用。變成:=VLOOKUP(A1,車輛列表基礎信息!$B$2:$E$1575,2,0)  問題解決。

-- 后來發現,函數用第一種寫法,的第四個參數 把0改成1 模糊查找,也可以找出值來。

 

--拓展:VLOOKUP 是縱向查找, HLOOKUP 橫行查找。 微軟的excel ,點擊函數幫助的時候,會跳轉到此函數的中文教學視頻。而wps沒有教學視頻。

方法三:利用宏,

   wps需要安裝 vbs模塊, 微軟自帶的宏默認是禁止的,需要啟動。

本人網上下載的是 vba提取自WPS2012專業增強版,解壓,點擊 vba6chs.msi 安裝,重啟wps,打開有宏的xls,啟用宏。

下載地址:http://dl.pconline.com.cn/download/470217.html

  

開發工具--查看代碼-- 會跳轉到VB編輯器

 准備數據:本人將A表復制在B表的 尾端,如下截圖

  

1到2106是業務表的, 2110到 3683行是基礎信息表的, (車牌字段唯一),寫了個宏,超級簡單就是兩個for循環。代碼如下:

 意思:根據業務表的車牌去 基礎數據表中找到這個車牌所在行並且把后面的的基礎數據復制回來放到業務表對應車牌的后面。

Sub Macro1()
'
' Macro1 Macro
' 宏由 CLP 錄制,時間: 2018/08/22
'
    Dim x As Integer
    Dim Y As Integer
    For x = 1 To 2106 Step 1       '外層循環 循環B表所有車牌號碼
      For Y = 2110 To 3683 Step 1    '循環A表所有車牌號碼
        If Range("a" & x).Value = Range("a" & Y).Value Then  ' B表查詢A表的值
          Range("B" & Y & ":" & "D" & Y).Select    '選擇區域
          Selection.Copy     '復制
          Range("D" & x).Select   ' 選擇
          ActiveSheet.Paste  '粘貼
          Exit For   '退出內層循環
        End If
       Next Y
    Next x

End Sub

   

 

執行一下 ,蠻久的(1分多鍾),完成了。

 

 

 ==待續...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM