【问题标题】:Copy values from specific cells in rows to a column in MS Excel将行中特定单元格的值复制到 MS Excel 中的列
【发布时间】:2016-09-09 20:18:05
【问题描述】:

尝试了解如何在 Microsoft Excel 中编写函数。我创建了一个简单的例子来练习一些简单的动作;即,如何从行(在两个给定单元格之间并具有指定范围的)中按指定顺序获取所有值并将它们复制到单独的列中

如下例所示,我有 3 组值(ALPHABETAGAMMA),每组的数值范围为 4 列(A、B、C 和 D)和在 7 行中,最后一行的最后一列(D 列)为空。每组值都有一个标题名称,位于每个值之前的列 A 上(即在 (A,1)、(A,9) 和 (A, 18) 上)。

          A           B           C           D
1     ALPHA_VALUES              
2     2.93E+02  7.15E+02    1.22E+03    1.27E+03
3     1.84E+03  1.77E+03    1.88E+03    1.97E+03
4     2.10E+03  2.14E+03    2.17E+03    2.18E+03
5     2.10E+03  2.20E+03    2.19E+03    2.18E+03
6     1.33E+03  1.25E+03    1.30E+03    1.13E+03
7     9.83E+02  9.03E+02    8.20E+02    7.32E+02
8     5.37E+02  4.24E+02    2.93E+02        
9     BETA_VALUES               
10    0.00E+00  8.71E-10    2.53E-09    1.50E-08
11    5.20E-07  2.11E-06    6.49E-06    1.61E-05
12    6.38E-05  1.08E-04    1.68E-04    2.43E-04
13    4.32E-04  5.51E-04    7.38E-04    1.00E-03
14    1.88E-03  2.54E-03    3.33E-03    4.27E-03
15    6.06E-03  6.92E-03    7.68E-03    8.31E-03
16    2.67E-03  1.44E-03    0.00E+00        
17    GAMMA_VALUES          
18    0.00E+00  5.85E-14    8.74E-12    1.47E-10
19    1.29E-08  7.45E-08    3.01E-07    9.09E-07
20    4.51E-06  8.04E-06    1.27E-05    5.81E-05
21    2.89E-05  3.46E-05    4.04E-05    4.44E-05
22    3.83E-05  2.69E-05    1.70E-05    1.27E-05
23    7.26E-06  4.85E-06    3.01E-06    1.78E-06
24    6.17E-14  2.22E-15    0.00E+00        

我想将上述 3 组中的每组复制到单独的列中。为了获取每行单元格上的数据,如果从左到右,我希望将数据复制到新的单独列的顺序;即对于APLHA_VALUES,结果列应该是这样的:

2.93E+02    
7.15E+02
1.22E+03
1.27E+03
1.84E+03
1.77E+03
1.88E+03
1.97E+03
2.10E+03
2.14E+03
2.17E+03
2.18E+03
1.33E+03
1.25E+03
1.30E+03
1.13E+03
9.83E+02
9.03E+02
8.20E+02
7.32E+02
5.37E+02
4.24E+02
2.93E+02    

非常感谢任何让我开始了解如何获取和复制列上的指定数据的示例代码。

修改示例为了更好地展示公式的工作原理):

~为每组添加了 1 个额外的列和 3 个额外的行。还在前6行添加了一些不参与公式的数据。

          A           B           C           D           E
1     blah           
2     blah           4124
3     blah           342
4     blah           321
5     blah           43
6     blah 
7     ALPHA_VALUES              
8     2.93E+02  7.15E+02    1.22E+03    1.27E+03    1.27E+03
9     1.84E+03  1.77E+03    1.88E+03    1.97E+03    1.97E+03
10    2.10E+03  2.14E+03    2.17E+03    2.18E+03    1.97E+03
11    2.10E+03  2.20E+03    2.19E+03    2.18E+03    1.97E+03
12    1.33E+03  1.25E+03    1.30E+03    1.13E+03    1.97E+03
13    9.83E+02  9.03E+02    8.20E+02    7.32E+02    1.97E+03
14    2.10E+03  2.20E+03    2.19E+03    2.18E+03    1.97E+03
15    1.33E+03  1.25E+03    1.30E+03    1.13E+03    1.97E+03
16    9.83E+02  9.03E+02    8.20E+02    7.32E+02    1.97E+03    
17    5.37E+02  4.24E+02    2.93E+02        
18    BETA_VALUES               
19    0.00E+00  8.71E-10    2.53E-09    1.50E-08    1.50E-08
20    5.20E-07  2.11E-06    6.49E-06    1.61E-05    1.50E-08
21    6.38E-05  1.08E-04    1.68E-04    2.43E-04    1.50E-08
22    4.32E-04  5.51E-04    7.38E-04    1.00E-03    1.50E-08
23    1.88E-03  2.54E-03    3.33E-03    4.27E-03    1.50E-08
24    6.06E-03  6.92E-03    7.68E-03    8.31E-03    1.50E-08
25    4.32E-04  5.51E-04    7.38E-04    1.00E-03    1.50E-08
26    1.88E-03  2.54E-03    3.33E-03    4.27E-03    1.50E-08
27    6.06E-03  6.92E-03    7.68E-03    8.31E-03    1.50E-08
28    2.67E-03  1.44E-03    0.00E+00        
29    GAMMA_VALUES          
30    0.00E+00  5.85E-14    8.74E-12    1.47E-10    1.47E-10
31    1.29E-08  7.45E-08    3.01E-07    9.09E-07    1.47E-10
32    4.51E-06  8.04E-06    1.27E-05    5.81E-05    1.47E-10
33    2.89E-05  3.46E-05    4.04E-05    4.44E-05    1.47E-10
34    3.83E-05  2.69E-05    1.70E-05    1.27E-05    1.47E-10
35    7.26E-06  4.85E-06    3.01E-06    1.78E-06    1.47E-10
36    2.89E-05  3.46E-05    4.04E-05    4.44E-05    1.47E-10
37    3.83E-05  2.69E-05    1.70E-05    1.27E-05    1.47E-10
38    7.26E-06  4.85E-06    3.01E-06    1.78E-06    1.47E-10
39    6.17E-14  2.22E-15    0.00E+00    

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    您要查找的公式是 INDEX:

    =INDEX($A:$D,INT((ROW(1:1)-1)/4)+1+MATCH(F$1,$A:$A,0),MOD(ROW(1:1)-1,4)+1)
    

    将它放在 F2 副本中,分两列向下 27。

    【讨论】:

    • 这只是数学。该行随着填充/向下拖动而增加。因为行和列引用会发生变化。 INT((ROW(1:1)-1)/4)+1 从 1 开始,然后每四行增加 1。MOD(ROW(1:1)-1,4)+1 重复模式 1,2,3,4,1,2,3,4,... 和 MATCH(F$1,$ A:$A,0) 找到正确的行开始。
    • 不,我的意思是行。由于公式每四行向下拖动一次,因此它递增一。将该部分放在一个单元格中并将其向下拖动以查看它的作用。匹配部分是它如何找到正确的行。它查找并返回找到每个名称的行。然后只需将两者相加即可获得正确的行引用以返回索引公式。
    • 将鼠标悬停在F2左下角,光标会变成细十字。单击并拖动两列。然后将所有三个突出显示的鼠标悬停在 H2 的左下角,直到光标变为细十字单击并向下拖动 27 行。或者只是突出显示 F2 复制它。突出显示 F2:H:28 并粘贴。或者使用“主页”选项卡中的“填充”。
    • 为了理解公式及其机制,我添加了稍微修改的示例(每组额外的列和额外的行)。您能否也提供一个公式,以便我进行比较和更好地理解?
    • 只需将所有4 更改为5
    猜你喜欢
    • 2011-09-08
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    相关资源
    最近更新 更多