【问题标题】:Replace and update columns in excel替换和更新excel中的列
【发布时间】:2021-10-08 17:17:55
【问题描述】:

表格

    A     B     C     D     E
1  Jan   Feb  Mar    Apr   Jun
2   24   32    64    54     45
3   66   76    76    76     87
4   45   65    84    67     23 

最后 3 列应在另一列中自动更新为

最近 3 个月的数据

    AN        AO       AP
1   Month1  Month2   Month3
2     64     54        45
3     76     76        87
4     84     67        23 

如果我在第一个表中添加另一列作为 7 月的列 F。然后它应该自动替换第二个表中Month3中的数据,并且month3数据应该移动到month2和month2到month1。


=IF(AN2="",AL2,IF(AO2="",AM2,IF(AP2="",AN2,IF(AQ2="",AO2,IF(AQ2<>"",AP2,IF(AP2<>"",AO2,IF(AO2<>"",AN2,IF(AN2<>"",AM2,""))))))))

公式与其他列类似。

【问题讨论】:

  • 那么,您希望始终将最近 3 个月的数据从第一个表转移到第二个表吗?
  • 是的,每当我向第一个表添加新列时,它应该会自动更新。

标签: excel excel-formula


【解决方案1】:

使用任何版本的 Excel:

您可以使用多种方法检测列的结束位置 - 最简单的是使用 Count

在结果表的左上角输入以下内容:

=INDEX(2:2,,COUNT(2:2)-2)

这会计算包含数据的单元格的数量,并返回该编号列中的数据(向左偏移 2)。在其右侧的下一个单元格中,将-2 更改为-1。在最后一个单元格中,将-1 更改为-0 或完全删除该部分。

然后复制单元格以匹配您的源表。

【讨论】:

    【解决方案2】:

    如果您有 Excel-365,请使用以下公式。

    =INDEX(A1:Z4,SEQUENCE(ROWS(A1:A4)),SEQUENCE(1,3,MAX(IF(A1:Z1<>"",COLUMN(A1:Z1),""))-2))
    

    如果您没有Excel-365,请使用下面的公式,然后根据需要向下拖动。

    =INDEX($A$1:$Z$4,ROW($A1),MAX(IF($A$1:$Z$1<>"",COLUMN($A$1:$Z$1),""))-3+COLUMN(A$1))
    

    【讨论】:

      【解决方案3】:

      如果你有ms365,尝试使用FILTER(),例如:

      G1中的公式:

      =FILTER(Table1[#All],COLUMN(Table1[#Headers])>COLUMNS(Table1[#Headers])-3)
      

      如果您添加列:


      如果您删除列:

      【讨论】:

        猜你喜欢
        • 2018-02-17
        • 1970-01-01
        • 1970-01-01
        • 2018-05-05
        • 2021-11-09
        • 2020-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多