我想從 Sheet1 到 Sheet2 獲取大量數據,但是當我向右拉一個命令時,它應該只每隔三行將“C”增加到“D”。因為我有 3 個向右拉的命令,並且所有命令都應該只增加 1,而不是 3。
A1 看起來像這樣:
=WENN(Sheet1!C3>0;Sheet1!C$2;"")
B1是這樣的:
=WENN(Sheet1!C3>0;Sheet1!$A3;"")
C1這樣:
=WENN(Sheet1!C3>0;Sheet1!C3;"")
當我把它拉到右邊時,它們會發生這樣的變化:
=WENN(Sheet1!F3>0;Sheet1!F$2;"")
=WENN(Sheet1!F3>0;Sheet1!$A3;"")
=WENN(Sheet1!F3>0;Sheet1!F3;"")
但我想要:
=WENN(Sheet1!D3>0;Sheet1!D$2;"")
=WENN(Sheet1!D3>0;Sheet1!$A3;"")
=WENN(Sheet1!D3>0;Sheet1!D3;"")
我希望你明白我的意思。有什麼辦法可以做到這一點嗎?
答案1
您可以使用有用的OFFSET
函數來控制單元格向右移動的程度。
由於您想要每 3 列(在 Sheet2 中)移動 1 列(在 Sheet1 中),因此可以使用下列函數:
=ROUNDUP(COLUMN()/3,0)-1
這基本上將使用列號,將其除以 3 並四捨五入。然後,我們刪除 1,因為我們不想移動前 3 列。如果將其向右拉,您將得到以下序列:0 0 0 1 1 1 2 2 2 3 3 3...
現在您知道需要移動單元格多少C3
,您可以使用該OFFSET
函數來獲取正確的資料。以下是您應該使用的公式Sheet2
:
A1
=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,OFFSET(Sheet1!$C$2,0,ROUNDUP(COLUMN()/3,0)-1),"")
B1
=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,Sheet1!$A3,"")
C1
=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1),"")
預期結果:
您似乎使用的是德語 Excel。以下是翻譯後的公式:
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;BEREICH.VERSCHIEBEN(Sheet1!$C$2;0;AUFRUNDEN(SPALTE()/3;0)-1);"")
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;Sheet1!$A3;"")
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1);"")