2012-12-10 34 views
-1

我想知道,如果給定excel文件中的3列,如何在給定第三個值的情況下有條件地交換前2列的內容。Excel中單元格內容的有條件交換

ABC


一個1個Y
B 2Ñ
Ç3 Y
d 4 Y
Ë5 N

我想要做的是:每當在C列中有一行包含值「y」,我想交換同一行的列A和B中的值。

除VBA之外沒有別的辦法嗎?

希望問題清楚。

感謝

+0

可不可以給你正在試圖做什麼的例子嗎? – rajah9

+0

你不能用Excel公式做到這一點,沒有一些額外的「持有」單元。 – RBarryYoung

回答

1

我看到2種方式來做到這一點:

  1. 創建2列,你插入一個簡單的功能,像 =IF(C="something", B, A)和其他 列相反的(A,B)。這可以根據需要進行切換,然後您可以將值複製粘貼到列上並刪除臨時的 列。
  2. 在一個循環內使用一個簡單的交換算法在if-statement本身內。如果你有VBA的基礎知識,這應該是非常簡單的。如果你沒有這方面的知識,那就去internetz查看吧。

代碼的一般感覺應該是什麼:

Dim cell as Range 
Dim temp as string 
for each cell in Range("C2:C" & Range("C2").End(xlDown).Row) 
    if cell.value = "something" then 
     temp = cell.offset(0, -1).value 
     cell.offset(0, -1).value = cell.offset(0, -2).value 
     cell.offset(0, -2).value = temp 
    end if 
next cell 
相關問題