lanselibai Asked: 2022-07-11 11:21:27 +0800 CST2022-07-11 11:21:27 +0800 CST 2022-07-11 11:21:27 +0800 CST 将 Excel 表格转换为自定义行 * 列 772 我想做与此线程类似的事情,但出现#REF!错误。我想将其转换为自定义的行 * 列,例如将 3 * 4 表转换为 6 * 2 格式。如何做到这一点? microsoft-excel 1 个回答 Voted Best Answer karl 2022-07-12T11:42:09+08:002022-07-12T11:42:09+08:00 以下方法使用了非常灵活的Let函数,但是,该函数仅在 Excel 365 和 Excel 2021 中可用: =LET(Matrix,$A$1:$D$3,rowsMatrix,ROWS(Matrix),colsMatrix,COLUMNS(Matrix), cellValues,SEQUENCE((rowsMatrix*colsMatrix)/2,2,0), INDEX(Matrix,INT(cellValues/colsMatrix)+1,MOD(cellValues,colsMatrix)+1)) 编辑:评论中的附加问题 在上述方法中,矩阵在列中逐行分布,即第一行以1、2等开始。 要按列分布矩阵,即第 1 列的值为 1-6,第 2 列的值为 7-12,则SEQUENCE必须相应调整语句。特别是,该SEQUENCE语句控制分配机制,并且您希望获得SEQUENCE垂直移动而不是水平移动的 a。因此,只需将函数SEQUENCE中的语句替换LET为以下内容: TRANSPOSE(SEQUENCE(2,(rowsMatrix*colsMatrix)/2,0)) 如果您想了解两者的SEQUENCES不同程度,只需在 Excel 中输入以下公式: =SEQUENCE((3*4)/2,2,0) =TRANSPOSE(SEQUENCE(2,(3*4)/2,0)) 另一种切实可行的方法是将数据通过以下方式转换为单列(例如,$F$1 是目标范围的顶部单元格): 选项1: =OFFSET($A$1,INT((ROW()-ROW($F$1))/COLUMNS($A$1:$D$1)), MOD(ROW()-ROW($F$1),COLUMNS($A$1:$D$1))) 选项 2: =INDEX($A$1:$D$3,INT((ROW()-ROW($F$1))/COLUMNS($A$1:$D$1))+1, MOD(ROW()-ROW($F$1),COLUMNS($A$1:$D$1))+1) 因此,选项 1 和 2 都是简单的帮助列,然后您可以将下面的函数应用到这些列。由于如果您输入整个列,该功能也可以工作,因此这种方法似乎也很灵活: =INDEX($F:$F,SEQUENCE(6,2))
以下方法使用了非常灵活的
Let
函数,但是,该函数仅在 Excel 365 和 Excel 2021 中可用:编辑:评论中的附加问题
在上述方法中,矩阵在列中逐行分布,即第一行以1、2等开始。
要按列分布矩阵,即第 1 列的值为 1-6,第 2 列的值为 7-12,则
SEQUENCE
必须相应调整语句。特别是,该SEQUENCE
语句控制分配机制,并且您希望获得SEQUENCE
垂直移动而不是水平移动的 a。因此,只需将函数SEQUENCE
中的语句替换LET
为以下内容:如果您想了解两者的
SEQUENCES
不同程度,只需在 Excel 中输入以下公式:另一种切实可行的方法是将数据通过以下方式转换为单列(例如,$F$1 是目标范围的顶部单元格):
选项1:
选项 2:
因此,选项 1 和 2 都是简单的帮助列,然后您可以将下面的函数应用到这些列。由于如果您输入整个列,该功能也可以工作,因此这种方法似乎也很灵活: