答案1
看来您需要提取 A 列每三行的数据,即 A3,A7,A10 ...。
首先,请在 B 列的前两个单元格中写入 3、7,然后向下拖动以生成一系列数字,如 3、7、10、13.....
现在,在 C1 中写入公式 =INDIRECT("A"&B1),它将显示 A3 单元格的文本。将公式向下复制以显示 A7、A10 等的文本。
要合并所有文本,如果您使用的是 Excel 2016,则可以使用 CONCAT 或 TEXTJOIN 函数。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
为了简化删除范围内不需要的行,最好先对它们进行排序,例如,将所有空行分组在一起。使用内置的单元格排序相当简单,但为了保持文本的初始顺序,需要一些额外的步骤。
我将以您的数据在范围内为例A1:A200
。根据需要调整您的实际数据。
1
在单元格中插入数字,在单元格中插入B1
数字。选择单元格并应用,函数,最终在列中得到 1 到 200 的数字。稍后这将有助于按其初始顺序返回文本。2
B2
B1:B200
fill
linear
B
选择范围
A1:B200
并应用排序。现在您将拥有分组在一起的数字行以及时间范围行、文本行和空行。因此,您可以轻松选择和删除不想保留的行。删除不需要的行后,您应该有一个范围,例如A1:B50
列中的文本及其原始行号B
。要恢复文本的正确顺序,请选择范围
A1:B50
并按列进行排序B
。
要将文本复制到Word
进行进一步处理,请选择、复制并粘贴到Word
。删除表格格式并使用搜索和替换连接行(搜索paragraph
并替换为space
)。