从矩阵的一半创建对角矩阵

时间:2017-02-26 21:51:52

标签: excel matrix

在excel表中,我计算了对角矩阵的一半。现在,我想转置上半部分,这样我可以镜像它做矩阵的下半部分。在对角线上我有零。我怎样才能做到这一点?当我选择矩阵上半部分的单元格区域并将其转置到下半部分时,它就不起作用了。 我的矩阵应该是388X388单元格所以你可以想象我想避免单独复制和转换每一行。 PS:我无法使用VBA。 谢谢

编辑:

我根据下面的答案尝试了OFFET功能,但我仍然收到此消息。它的基本说法是,该公式存在问题,但没有说明问题的根源。在下面的评论中,我还附加了一个指向办公室支持页面的链接,您可以在其中找到此警报消息的确切翻译。我也尝试使用经典的单元寻址A1,但结果相同。 enter image description here

3 个答案:

答案 0 :(得分:1)

尝试使用OFFSET功能。这是一个参考函数,允许您指定来自起始单元格的特定行数和列数的单元格。将此与ROW()和COLUMN()函数结合使用,可以在向列中拖动公式时向下拖动公式,从而在以后的列中获取值。

最简单的情况是假设您有从A1开始的数据:

1

然后,您可以将此公式放入单元格A2:=OFFSET($A$1,COLUMN()-1,ROW()-1)

当您将其填充到剩余的单元格中时,它将转置您的矩阵。

2

如果您的矩阵没有在A1中开始,您只需要更改从COLUMN()和ROW()中减去的数量,以允许它实际开始的位置。

您还可以轻松地将公式填充到所有空格中:

  1. 将公式输入A2
  2. 选择整个矩阵
  3. Ctrl+g,然后选择特殊,然后选择空白并单击确定
  4. 按住Ctrl并点击A2
  5. F2
  6. Ctrl+Enter

答案 1 :(得分:0)

我正在以更灵活的方式使用@Michael的解决方案。
问题是,如果矩阵不是从$ A $ 1开始的,那么它将不起作用。
假设左上方的单元格是$ G $ 22。那么修改后的方程为:

= OFFSET($ G $ 22,COLUMN()-COLUMN($ G $ 22),ROW()-ROW($ G $ 22))

答案 2 :(得分:-1)

参考this page,使用此更正的偏移代码对我有用。我的阵列从C3开始,我将底部复制到顶部。所以单元格D3的公式(应该返回C4值)是

=OFFSET(C3,1,0,1,1).

希望它适合你。