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

问题描述 投票:0回答:4

在 Excel 工作表中,我计算了对角矩阵的一半。现在,我想转置上半部分,以便我可以将其镜像到矩阵的下半部分。在对角线上我有零。我怎样才能实现这个目标?当我选择矩阵上半部分的单元格范围并将其转置到下半部分时,它不起作用。 我的矩阵应该是 388X388 单元格,因此您可以想象我希望避免单独复制和转置每一行。 PS:我无法使用VBA。 谢谢你

编辑:

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

excel matrix
4个回答
3
投票

尝试使用 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

2
投票

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

=偏移量($G$22,COLUMN()-COLUMN($G$22),ROW()-ROW($G$22))


0
投票

在 Office 365(可能还有早期版本)中:

  1. 复制源数据。
  2. 单击网格左上角的单元格。
  3. 输入
    Ctrl-V, Ctrl, T
    粘贴转置。

paste with transpose

这将替换矩阵中的数据。如果您想填写两半而不是只填写一半:

  1. 复制源数据。
  2. 单击工作表中的空白区域。
  3. 输入
    Ctrl-V, Ctrl, T
    粘贴转置。
  4. 选择整个粘贴区域并剪切。
  5. 单击原始矩阵的左上角单元格。
  6. 右键单击 -> 选择性粘贴...,然后在菜单上勾选“跳过空白”。
  7. 单击“确定”。

skip blanks


-2
投票

请参阅此页面,它使用此校正后的偏移代码对我有用。我的数组从 C3 开始,我将底部部分复制到顶部部分。因此单元格 D3 的公式(应返回 C4 值)是

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

希望它对你有用。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.