EXCEL 如何将一个表中一个列的值合并到另一个表中的一个单元格中?

作者&投稿:伍胀 (若有异议请与网页底部的电邮联系)
excel一个表的数值关联到另一个表中合并单元格?~

合并单元格的地址为该合并单元格左上角的地址。
所以直接在一个表中引用另一个表中的合并单元格的最左上角地址即可。
同表演示如下(跨表相同原理):

用公式=sheet1!A1,公式下拉。公式下拉如果变成sheet1!A3的话,在sheet1里,假设你数据在A列,有100行,则在B列第1到100行分别下拉填1 3 5 7……,第101到200行填2 4 6 8……,再把AB两列按B列升序排序

假设表格位置如图所示。

将右侧表格数据导入左侧表格,在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)

公式解释:

  1. 左侧表格C列的数据来自于右侧表格的F2:I9矩阵,所以使用VLOOKUP函数来检索。

  2. 除了右侧表格的数据矩阵,VLOOKUP函数还有两个检索参数(检索字和数据所在列位置)和一个检索方式

  3. 对于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的倍数。

  4. VLOOKUP函数中的“数据所在列位置”,也是由单元格所在行数计算出来的。由于左侧表格中项目维度从上到下的排列顺序与右侧表格中从左到右的一样,所以可以用左侧表格中项目维度的行数来表示右侧表格中项目维度的列位置:

    MOD(ROW()-ROW(A$2),4)+ROW(A$2)

    其中MOD函数计算行数除以4的余数,而ROW(A$2)是首行数据位置

  5. VLOOKUP函数的检索方式参数:0表示精确查找,1表示模糊查找。在这里为精确查找。


    将左侧表格数据导入右侧表格,在F2单元格输入公式:=INDEX($C:$C,MATCH($E2,$A:$A,0)+COLUMN()-COLUMN($F1))

    公式解释:

  1. F2:I9的数据都来自于C列,所以使用INDEX函数来检索

  2. 检索参数(即左侧表格的行数)由右侧表格的城市(行数)和项目维度来决定:

    检索参数=每个城市项目维度的首行位置+项目维度的行数

  3. 左侧表格中的城市名称固定在每个城市项目维度的首行,所以用MATCH函数查找城市,就得到每个城市项目维度的首行。

  4. 左侧表格中项目维度从上到下的排列顺序与右侧表格中从左到右的一样,所以可以用右侧表格中项目维度的列数来表示左侧表格中项目维度的行数。



=SUBSTITUTE(TEXTJOIN("/",FALSE,A6:A20),"//","/A/");
如果连续空格很多,这个就没法解决了。要不套几层SUBSTITUTE,或者先处理空格然后再TEXTJOIN