答案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 工作表:
輸出:
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
在 cell 中插入數字,在 cell 中插入B1
數字。選擇單元格並應用,函數以在列中得到 1 到 200 的結果。稍後這將有助於按初始順序返回文字。2
B2
B1:B200
fill
linear
B
選擇範圍
A1:B200
並套用排序。現在,您將把數字行以及時間範圍行、文字行和空白行分組在一起。因此,可以輕鬆選擇和刪除不想保留的行。刪除不需要的行後,您應該有一個範圍,例如A1:B50
列中的文字及其原始行號B
。若要恢復文字的正確順序,請選擇範圍
A1:B50
並在列上進行排序B
。
若要將文字複製到Word
以進行進一步處理,請選擇、複製並貼上到 中Word
。刪除表格格式並透過搜尋和取代連接行(搜尋paragraph
並替換為space
)。