excel怎麼把一欄數據分別複製到其他欄?

A欄中有數據:基金名稱,所屬公司,回報率,啟示時間,截止時間(負責人名稱,合同開始時間,結束時間,支付前資金,支付後資金)合同編號,產品編號,需要把基金名稱複製到B欄,所屬公司到C欄,回報率到D……負責人到G,合同編號到M以此類推,就是有很多數據,怎麼能用快一點的方法呢。

曾陽你好,按照你的方法會出現一個情況,就是最後兩個值,也就是兩個價格(如圖中的5001,5000和116003和116000),會自動出現在利率,或者日期的下方,調試過無法分開,請問這個怎麼辦呢


用@曾陽的方式另存了CSV文件,發現不可行,轉置的方式對於分離的數據可行,但是對於在一個單元格里的數據無效。折騰了半天,還是用一串噁心的公式實現了,公式雖然麻煩,但是實用性強,無論多長多亂的字元串,只要符合規律都能提取需要的數據出來,下面介紹一下原理。

這是提取出來的效果,對於所屬機構、起始時間、截止時間、value這幾項公式是通用的,只有回報率有些不同。

公式里一共需要四個函數,分別是FIND(),MID(),LEFT(),LEN()。

FIND函數可以查找指定的字元串,並返回找到的第一個位置,使用格式如下:

FIND(「要查找的字元串」,「查找字元串的位置」,搜索起始位置(默認為1))

比如我要在A2單元格里查找「apple」,則需要輸入「=FIND(A2,"apple")」,函數就會返回找到apple的第一個位置了。

MID函數可以從字元串中截取指定長度的一部分,需要指定開始位置和截取長度,使用格式如下:

MID("要提取的字元串或位置","起始位置","要提取的字元串的長度")

比如要把「我和我的小夥伴們都震驚了」中的「小夥伴」提取出來則用「=MID(「我和我的小夥伴們都震驚了」,5,3)"。

LEFT函數與MID函數類似,區別在於LEFT函數會把指定位置前面的字元全部取出來,格式如下:

LEFT("要提取的字元串或位置",提取長度)

比如「=LEFT("我和我的小夥伴們都震驚了",3)」的結果就是「我和我」

最後一個LEN函數很簡單,就是返回所給的字元串的長度,格式如下:

LEN("要計算長度的字元串「)

好了,下面開始上整個公式了,這個是提取起始時間的公式:

=MID(A2,FIND("dated ",A2)+LEN("dated "),FIND(" due",A2)-FIND("dated ",A2)-LEN("dated "))

看著很亂很噁心是不是,其實沒那麼複雜,我們來拆分看看。

整個公式的原理是這樣的,所需提取的數據雖然不定長,但是數據前面和後面的文本都是固定的,比如所屬機構這一項,前面肯定是「dated 」,後面肯定是「 due」(注意空格),所以只要用FIND函數找到兩個字元串的其實位置,再用MID函數把兩個位置之間的字元取出來就好了。

另外的幾個欄位也是一樣的原理,只要找到所需數據前後固定的字元串就好了,除了」回報率「這一項,因為是在字元串最前面的位置,只需要用LEFT函數配合FIND函數提取第一個百分號前面的內容就好了,就像這樣:

恩基本上就是這樣,如果懶得研究每個函數,我把xls文件放在下面,需要的話下載下來,改一下文本就能用了,之所以用這樣的方式,是因為無論多噁心的數據源,只要有規律都能搞定。

金山快盤網頁版快盤


提示:

1.excel可以把表格保存成csv格式,這種格式是一種用逗號分隔每一列,換行符分隔每一行的純文本文件。

2.記事本可以打開純文本文件,並且可以把空格與括弧替換為逗號。

3.excel可以打開csv格式的文件。

很簡單的。


推薦閱讀:

TAG:數據分析 | MicrosoftExcel |