从一行中取出数据并转换为 4 行并每四行重复一次

从一行中取出数据并转换为 4 行并每四行重复一次

我想从这里开始:

在此处输入图片描述

到这里:

在此处输入图片描述

如果有其他方法可以做到这一点,请告诉我。我尝试了偏移和索引功能,但无济于事。问题是当我尝试自动填充到工作表末尾时。我不知道如何让公式以四组为一组继续运行。

答案1

(个人备注:永远不要像一开始那样整理东西。我设计的功能非常丑陋,一点也不实用或优化。我已警告你)。

抛开抱怨,OFFSETINDEX是有用的功能,尽管我必须使用更复杂的方法来获取所需的值。这是我的解决方案。我假设第二张图片是另一张工作表(并且第一张工作表名为 Sheet1。因此,对于 Sheet2 中的公式:

  • A2:

    =IF(MOD(ROW(A2)-2;4)=0;INDIRECT(ADDRESS(FLOOR((ROW(A2)-2)/4;0)+2;1;;;"Sheet1"));INDIRECT(ADDRESS(FLOOR((ROW(A2)-2)/4;0)+2;9+MOD(ROW(A2)-3;4)*2;;;"Sheet1")))
    
  • B2

    =IF(MOD(ROW(B2)-2;4)=0;INDIRECT(ADDRESS(FLOOR((ROW(B2)-2)/4;0)+2;2;;;"Sheet1"));INDIRECT(ADDRESS(FLOOR((ROW(B2)-2)/4;0)+2;10+MOD(ROW(B2)-3;4)*2;;;"Sheet1")))
    
  • C2

    =INDIRECT(ADDRESS(FLOOR((ROW(C2)-2)/4;0)+2;3;;;"Sheet1"))
    
  • D2

    =INDIRECT(ADDRESS(FLOOR((ROW(C2)-2)/4;0)+2;4;;;"Sheet1"))
    
  • E2

    =INDIRECT(ADDRESS(FLOOR((ROW(C2)-2)/4;0)+2;6;;;"Sheet1"))
    
  • F2

    =INDIRECT(ADDRESS(FLOOR((ROW(C2)-2)/4;0)+2;7;;;"Sheet1"))
    
  • G2

    =INDIRECT(ADDRESS(FLOOR((ROW(C2)-2)/4;0)+2;8;;;"Sheet1"))
    

输入公式后,选择2行并向下拖动。它应该可以工作(我已经测试过了)。我(目前)没有心情解释函数的每个细节,但它们依赖于非常简单的数学运算,最终将 上的行映射Sheet2到 上的正确列Sheet1

1 - 我将;其用作参数分隔符,这是由于区域设置所致。稍后将重新格式化。

相关内容