发布网友 发布时间:2022-04-23 02:00
共2个回答
热心网友 时间:2023-10-10 22:35
假设表格位置如图所示。
将右侧表格数据导入左侧表格,在C2单元格输入公式:
=VLOOKUP(INDEX(A:A,ROW(A$2)+4*INT((ROW()-ROW(A$2))/4),0),E$1:I$9,MOD(ROW()-ROW(A$2),4)+row(A$2),0)
公式解释:
左侧表格C列的数据来自于右侧表格的F2:I9矩阵,所以使用VLOOKUP函数来检索。
除了右侧表格的数据矩阵,VLOOKUP函数还有两个检索参数(检索字和数据所在列位置)和一个检索方式
对于VLOOKUP函数而言,检索字必须是在右侧表格数据矩阵的第一列(城市名称)。
对于左侧表格来说,城市名称总是位于A列该城市数据的第一行,每个城市占4行。所以检索字用INDEX函数来求得,其检索参数由单元格所在行数确定:ROW(A$2)+4*INT((ROW()-ROW(A$2))/4。
ROW(A$2)确定了首行位置,4*INT((ROW()-ROW(A$2))/4使得检索参数总是4的倍数。
VLOOKUP函数中的“数据所在列位置”,也是由单元格所在行数计算出来的。由于左侧表格中项目维度从上到下的排列顺序与右侧表格中从左到右的一样,所以可以用左侧表格中项目维度的行数来表示右侧表格中项目维度的列位置:
MOD(ROW()-ROW(A$2),4)+ROW(A$2)
其中MOD函数计算行数除以4的余数,而ROW(A$2)是首行数据位置
VLOOKUP函数的检索方式参数:0表示精确查找,1表示模糊查找。在这里为精确查找。
将左侧表格数据导入右侧表格,在F2单元格输入公式:=INDEX($C:$C,MATCH($E2,$A:$A,0)+COLUMN()-COLUMN($F1))
公式解释:
F2:I9的数据都来自于C列,所以使用INDEX函数来检索
检索参数(即左侧表格的行数)由右侧表格的城市(行数)和项目维度来决定:
检索参数=每个城市项目维度的首行位置+项目维度的行数
左侧表格中的城市名称固定在每个城市项目维度的首行,所以用MATCH函数查找城市,就得到每个城市项目维度的首行。
左侧表格中项目维度从上到下的排列顺序与右侧表格中从左到右的一样,所以可以用右侧表格中项目维度的列数来表示左侧表格中项目维度的行数。
热心网友 时间:2023-10-10 22:35
=SUBSTITUTE(TEXTJOIN("/",FALSE,A6:A20),"//","/A/");
如果连续空格很多,这个就没法解决了。要不套几层SUBSTITUTE,或者先处理空格然后再TEXTJOIN追问
空格部分,最后会有连续的很多,图中是实例,A列有时间值,要取的是B列中的数据,只需取A列有数据的B列的值,但这个范围必须得是6~117行,