先日、下記のような一塩基多型データを受け取った。
その場所のSNPは C or T。
このデータから、
- a1/a2 ともに C だったら「CC」
- a1/a2 の片方が C で片方が T だったら「CT」
- a1/a2 ともに T だったら「TT]
- それ以外(空欄)だったら「NA」
と入力したい。
これを Excel で作業するときには、「IF関数」と「AND関数」を組み合わせる。
IF関数
IF関数は論理関数の一つ。
条件を満たすかどうかを判断し、TRUE か FALSE を返す。
使い方は、
第1因数:論理式
1番目の因数は論理式で、条件を指定する。
大なり、小なり、等しい、異なる、などの「比較演算子」を使う。
条件式 | 意味 |
---|---|
A > B | A は B よりも大きい |
A >= B | A は B 以上 |
A < B | A は B よりも小さい |
A <= B | A は B 以下 |
A = B | A は B と等しい |
A <> B | A と B とは等しくない |
第2引数:値が TRUE の場合に返す値
第2引数は「値が TRUE の場合に返す値」を指定する。
文字列を指定するときは、ダブルクォーテーションマーク「"」で囲む。
第3引数:値が FALSE の場合に返す値
第2引数は「値が FALSE の場合に返す値」を指定する。
文字列を指定するときは、ダブルクォーテーションマーク「"」で囲む。
IF関数:実践
IF関数を使って、例えば A2 セルが T だったら、C2 セルに "○"、そうじゃなかったら "✕" と返してみる。
=IF(A2="T","○","✕")
この場合、A2 には "C" が入っていて FALSE なので、C2 には「✕」が返る。
IF関数をネストにする
IF関数は、入れ子(ネスト)にして組み合わせる事ができる。
条件式の値が FALSE だった場合の値に対して、次のIF関数を入れていく。
IF関数のネスト:実践
例えば A2 セルが T だったら、C2 セルに "○"、C だったら "△", どちらでもなかったら "✕" と返してみる。
=IF(A2="T","○",IF(A2="C","△","✕"))
この場合、A2 には "C" が入っていて 第1論理式は FALSE 、第2論理式は TRUE なので、C2 には「△」が返る。
AND 関数
今回は、2つのセルを条件に組み入れたい。
その場合は「AND関数」を組み合わせる。
AND関数は、「○○ かつ △△ かつ ...」のように、複数の条件をまとめる事ができる。
ちなみに、「〇〇 もしくは △△ もしくは ...」の条件の場合は、「OR関数」を使う。
AND関数:実践
例えば A2 セルが T で、B2 セルが T だったら、C2 セルに "○"、そうじゃなかったら "✕" と返してみる。
=IF(AND(A2="T",B2="T"),"○","✕")
この場合、A2 と B2 には "C" が入っていて、条件に満たないので、FALSE の場合の値 "✕" が返る。
IF関数(ネスト)とAND関数を組み合わせて目的の値を返す
とゆーことで、もらったデータから、
- a1/a2 ともに C だったら「CC」
- a1/a2 の片方が C で片方が T だったら「CT」
- a1/a2 ともに T だったら「TT]
- それ以外(空欄etc.)だったら「NA」
と入力したい場合、C2 に下記のように記述する。
=IF(AND(A2="C",B2="C"),"CC",IF(AND(A2="C",B2="T"),"CT",IF(AND(A2="T",B2="T"),"TT","NA")))
A2 は "C", B2 は "C" なので、C2 には "CC" が返る。
あとは、オートフィル機能で、下のセルを一括で埋めればOK。