-1

Excelファイルに3つの列がある場合、3番目の列の値を指定して最初の2つの列の内容を条件付きで交換する方法を考えていました。

ABC


a 1 y
b 2 n
c 3 y
d 4 y
e 5 n

私がやりたいのは、C列に値「y」を含む行があるときはいつでも、同じ行の列AとBの値を交換したいということです。

VBA以外の方法はありませんか?

問題が明確であることを願っています。

ありがとう

4

1 に答える 1

1

それを行うには2つの方法があります:

  1. 単純な関数を挿入する 2 つの列を作成 =IF(C="something", B, A)し、反対の (A、B) をもう一方の列に挿入します。これにより、必要に応じて切り替えが行われ、値を列にコピーして貼り付け、一時列を削除できます。
  2. if-statementループ内の自分自身の中で単純なスワップ アルゴリズムを使用します。VBA の基本的な知識があれば、これは非常に簡単です。その知識がない場合は、インターネットで調べてください。

コードの全体的な感触:

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
于 2012-12-10T17:31:20.697 に答える