【问题标题】:Creating diagonal matrix from one half of the matrix从矩阵的一半创建对角矩阵
【发布时间】:2017-02-26 21:51:51
【问题描述】:

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

编辑:

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

【问题讨论】:

    标签: excel matrix


    【解决方案1】:

    尝试使用 OFFSET 功能。这是一个参考函数,允许您指定一个单元格,该单元格是从起始单元格开始的一定数量的行和列。将其与 ROW() 和 COLUMN() 函数结合使用,以便在将公式向下拖动时从后面的列中获取值,在将公式拖到列之间时从后面的行中获取值。

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

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

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

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

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

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

    【讨论】:

    • 谢谢。我正在尝试将其应用于您展示的确切示例,但是在将公式输入 A2 Excel 后会引发错误。我假设它需要 COLUMN 和 ROW 函数中的一些参数。请问我做错了什么?
    • 不,它们不需要参数。它们返回当前单元格的列号和行号。你遇到了什么错误?能否请您粘贴屏幕截图,包括公式?
    • 我收到的正是这条信息。我的表看起来和你的一模一样(我甚至使用了相同的数字:))。我复制了你在这里写的公式,并把它粘贴到 A2 中。按 ENTER 后,我收到此消息:support.office.com/en-us/article/…
    • 哦,您使用的是 R1C1 表示法吗?如果是这样,那值得一提!试试这个:=OFFSET(R1C1,COLUMN()-1,ROW()-1)
    • 请看我编辑的问题。我添加了一个截图。该消息使用斯洛伐克语,但与您在我之前评论的链接中看到的消息基本相同。谢谢
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      希望它对你有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-10
        • 2021-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-15
        相关资源
        最近更新 更多