比较excel中的两列,插入空白行并移动相关数据
我在列A,B,C,D中input了单元格,并且我希望inputF,G,H,I中的结果,所以我应该在单元格中插入什么公式
F3将是:
=IF(ISERROR(MATCH(ROW()-2,A:A,0)),"",ROW()-2)
和G3:
=IF(LEN(F3),INDEX(B:B,MATCH(F3,A:A,0)),"")
根据需要复制F3:G3到H3:I3和“自动填充”
如果您想要使用macros,那么只需将这些代码复制到Visual Basic编辑器中的模块中并运行即可。
Sub insertRows() Columns("G:J").EntireColumn.Delete Dim lrow As Long: lrow = Range("A" & Rows.Count).End(xlUp).Row Dim brng As Range: Set brng = Range("A1:D" & lrow) brng.Copy Range("G1"): Range("G1").Value = "After" Dim arng As Range: Set arng = Range("G3:G" & lrow) Dim rng As Range For Each rng In arng If rng <> rng.Offset(, 2) Then If rng > rng.Offset(, 2) Then rng.Resize(, 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Else rng.Offset(, 2).Resize(, 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove End If End If Next rng End Sub
OMG,这个很难,但是这些是你可以尝试的公式:
从cell F3
:
= IF(AND(N(F2)= 0,F2 <> “”),1,IF(AND(NOT(COUNTIF($ A $ 3:$ A $ 22 MIN(INDEX($ A $ 3:$ A $ 22 MATCH (MAX(F $ 2:F2,H $ 2:H 2),$ A $ 3:$ A $ 22,1)+1),INDEX($ C $ 3:$ C $ 22 MATCH(MAX(F $ 2:F2,H $ 2: H2),$ C $ 3:$ C $ 22,1)+1)))),INDEX($ A $ 3:$ A $ 22 MATCH(MAX(F $ 2:F2,H $ 2:H 2),$ A $ 3:$甲$ 22,1)+1)), “”,INDEX($ A $ 3:$ A $ 22 MATCH(MAX(F $ 2:F2,H $ 2:H 2),$ A $ 3:$ A $ 22,1)+1 )))
从cell G3
:
= IF(N(F3),INDEX(B:B,MATCH(F3,A:A,0)), “”)
从cell H3
:
= IF(AND(N(H 2)= 0,H2 <> “”),1,IF(AND(NOT(COUNTIF($ C $ 3:$ C $ 22 MIN(INDEX($ C $ 3:$ C $ 22 MATCH (MAX(H $ 2:H 2,F $ 2:F2),$ C $ 3:$ C $ 22,1)+1),INDEX($ A $ 3:$ A $ 22 MATCH(MAX(H $ 2:H 2,F $ 2: F2),$ A $ 3:$ A $ 22,1)+1)))),INDEX($ C $ 3:$ C $ 22 MATCH(MAX(H $ 2:H 2,F $ 2:F2),$ C $ 3:$ C $ 22,1)+1)), “”,INDEX($ C $ 3:$ C $ 22 MATCH(MAX(H $ 2:H 2,F $ 2:F2),$ C $ 3:$ C $ 22,1)+1 )))
从cell I3
:
= IF(N(H3),INDEX(d:d,MATCH(H3,C:C,0)), “”)
基本上,这两个公式在Debit
和Credit
列下非常相似,只是交换范围引用。 试着让我知道。