如何僅複製 Excel 中某一列中的文字行?

如何僅複製 Excel 中某一列中的文字行?

我通常需要從如下所示的文件中提取文字:

Excel 中文件的螢幕截圖

理想情況下,有兩種方式:

  1. 僅單獨的文字行

    例如:
    我們實際上已經出版了一份出版物

    這些數據,我們正在努力

    最近提供的更多數據

  2. 以段落形式(將不同行的文字連接成一個文字區塊,我可以在 Word、Google Docs 等編輯)

    例如:
    我們實際上已經發布了這些數據,並且我們正在研究最近在

當我收到文件時,所有內容都在 A 列中。

顯然,手動執行此操作需要很長時間,因此我們將非常感謝任何幫助。

答案1

看來您需要提取 A 列中每三行的數據,即 A3、A7、A10 ....

首先,請在B列的前兩個單元格中寫入3、7,然後向下拖曳以產生諸如3、7、10、13......的系列

現在,在 C1 中編寫公式 =INDIRECT("A"&B1),它將顯示 A3 單元格的文字。向下複製公式以顯示 A7、A10 等的文字。

在此輸入影像描述

要合併所有文本,如果您有 Excel 2016,則可以使用 CONCAT 或 TEXTJOIN 函數。您也可以忽略空白單元格。在下列範例中,使用空格作為分隔符,並使用 True 來忽略空白儲存格。

=TEXTJOIN(" ",TRUE,C1:C11)

對於早期版本,您可以使用 CONCATENATE 函數,但必須一一寫入所有儲存格參考。

=CONCATENATE(C1,C2,C3,C4,C5,C6,C7,C8).  

答案2

我認為沒有一種簡單的方法可以做到這一點,而不需要編寫一些程式碼。您可能可以在 Excel 中使用 VBA 來完成此操作,但我對此沒有太多經驗。

以下是如何在 Python 中執行此操作的範例。該腳本將遍歷給定列中的儲存格,如果值不以數字開頭,則將值列印到檔案中。

Excel 工作表:

Excel 工作表圖片範例

輸出:

Here's the first string and the second now a third

代碼:

from openpyxl import load_workbook # package for working with xls files
import re # regex package

workbookName = 'test.xlsx'
sheetName = 'Sheet1'
column = 'A'
maxRow = 50
outputFile = 'excelOutput.txt'

# Open the workbook
wb = load_workbook(workbookName)
# Create a file to put the data into
fh = open(outputFile, 'w')

# Loop through all the rows
for kk in range(1,maxRow):
    # Grab the cell's value
    cellValue = wb[sheetName][column+str(kk)].value
    # If the cell isn't empty
    if cellValue != None:
        # If the cell doesn't start with a number
        if not re.search("\\d",str(cellValue)[0]):
            # Write the value from the cell into the text file
            fh.write(cellValue)
# Close the file
fh.close()

答案3

為了簡化刪除範圍中不需要的行的過程,最好先對它們進行排序,以便 f.ex.所有空白行都分組在一起。使用內建的儲存格排序相當簡單,但為了保持文字的初始順序,需要一些額外的步驟。

我將以您的資料處於範圍內A1:A200為例。根據實際數據的需要進行調整。

  1. 1在 cell 中插入數字,在 cell 中插入B1數字。選擇單元格並應用,函數以在列中得到 1 到 200 的結果。稍後這將有助於按初始順序返回文字。2B2B1:B200filllinearB

  2. 選擇範圍A1:B200並套用排序。現在,您將把數字行以及時間範圍行、文字行和空白行分組在一起。因此,可以輕鬆選擇和刪除不想保留的行。刪除不需要的行後,您應該有一個範圍,例如A1:B50列中的文字及其原始行號B

  3. 若要恢復文字的正確順序,請選擇範圍A1:B50並在列上進行排序B

若要將文字複製到Word以進行進一步處理,請選擇、複製並貼上到 中Word。刪除表格格式並透過搜尋和取代連接行(搜尋paragraph並替換為space)。

相關內容