- ベストアンサー
列同士データで一致するもの・一致しないもの
エクセルは 初心者です。 よろしくお願いいたします。 エクセル2000を使っています A B 01M12 01M13 01M13 01M14 01M14 02M02 02M02 02M05 このようにA列には全員の社員番号 B列には転勤者社員番号が入力されています。 A列の全社員番号を「転勤者」と「それ以外」に別けたいのですが出来るでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 色々やり方はあると思いますが一例を。 B列の転勤者番号は別の場所にコピーするなどして移動させます。(例えば D列へ) 後でオートフィルタを使うので、1行目に行を挿入し、A1に「リスト」B1に「適用」などのタイトルを付けます。 B2に下記の関数を入れ =IF(ISNA(MATCH(A2,$D$2:$D$4,0)),"それ以外","転勤者") 下のセルにコピーします。(関数の$D$2:$D$4は転勤者番号のセルです) 後はオートフィルタで抽出するなり、コピーするなりすればOKです。
その他の回答 (4)
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 Match(検査値, 検査範囲, 照合の型)で検査値が見つからない場合は、#N/A ISNA(テストの対象)でテストの対象が#N/Aかを判断。#N/AならTrue つまり検査の値が見つからない場合はMatchが#N/Aを出し、ISNAがTrueにします。 この場合見つからないのは「転勤者じゃない」訳ですから、IF文のTrueの時の引数に「それ以外」を入れ、Falseの時(=見つかった時)は「転勤者」を入れているだけです。 > 「フィルタオプション・・・」の方法も 途中までは前回と同じです。 B列の転勤者番号は別の場所にコピーするなどして移動させます。(例えば D列へ) フィルタを使うので、1行目に行を挿入し、A1に「リスト」B1に「適用」などのタイトルを付けます。更にD1にもA列と同じタイトル「リスト」を付けます。 メニューのデータ-フィルタ-フィルタオプションの設定で「抽出先」を選択範囲内にチェックし、リスト範囲にタイトル行を含めた元リスト範囲($A$1:$A$6)と検索条件範囲を($D$1:$D$4)を指定します。 フィルタが掛かり、転勤者と同じデータがA列に表示されます。(行番号が青くなる) A列の抽出範囲(例えばA3:A5)と同じ行のB列範囲(例えばB3:B5)を選択し、メニューの編集-ジャンプ-セル選択-可視セルを選びます。これで折りたたまれた行を除いた、見えている行が選択出来ます。その状態のまま先頭行(例ではB3)に「1」等のデータを入れ、Ctrlを押しながらEnterで確定すると、折りたたまれた行を除いた見えている行全てに「1」が入ります。 メニューのデータ-フィルタ-全て表示にすると「1」は転勤者、空白はそれ以外と区別出来ます。 ちょっと複雑なようですが「可視セル選択」をツールバーに設定しておいたり、Ctrl+矢印キー、Ctrl+Shift+矢印キー等での選択になれているとかえって速かったりもします。 ちなみに当方はExcel97なので、メニュー名とか違うかも知れません。
お礼
こんばんは お礼が遅くなってすいません。色々と教えて頂き有難うございました。助かりました。 「フィルタオプション」の方法もとても興味深かったです。 こんなにいろんな方法がある事に感激しました。エクセルは面白そうなので もっと勉強します。
- papayuka
- ベストアンサー率45% (1388/3066)
再びこんにちは。 ISNAは#N/Aの時にTrueを返します。 Matchは見つからない時に#N/Aを返します。 IFはIF(True,Trueの時,Falseの時)という構文です。 =IF(ISNA(MATCH(A2,$D$2:$D$4,0)),"それ以外","転勤者") もし(ISNA(マッチの結果) = True, #N/Aの場合, #N/Aじゃない場合) って感じです。 他にフィルタオプションと可視セル選択とCtrl+Enter入力で転勤者にフラグを立てて残りを抽出するなどの方法もあります。
お礼
説明有難うございました。 頭をフル回転しています。 が、なかなかすんなりと理解できません。 な~んとなくわかるんですが。IFはよく使うので問題ありませんが「ISNA」と「MATCH」を単独で使ってみて 教えていただいた関数を完全理解できる様に頑張ります。 「フィルタオプション・・・」の方法も やり方が私の知識ではまったく想像出来ません(涙) 知りたくてしょうがないんですが何回も申し訳なし・・・ 時間がある時で結構ですので 教えて頂けたら幸いです
- Hageoyadi
- ベストアンサー率40% (3145/7860)
A列の前に1列挿入し、A,B,C列の構成にします。 A1=COUNTIF($C$1:$C$10,B2) B列にも存在する社員番号の前にのみ「1」と表示されます。 その後オートフィルタで抽出すればよいかと。
お礼
有難うございました。 「COUNTIF」上手くいきました。いろんな方法を教えて頂いて ワクワクしています (^o^)
- imogasi
- ベストアンサー率27% (4737/17069)
A1:A6に1,2,3、..、6をいれ、B1:B2に3,4(転勤者の番号のつもり)を入れる。 C1に=VLOOKUP(A1,$B$1:$B$2,1,FALSE)といれ、C6まで複写する。 C列が#N/Aが転勤者でなく、自分の数字がC列にでるものが転勤者です。
お礼
有難うございました。 「VLOOKUP」もOKなんですね。 いろんな方法を教えて頂いて大変勉強になります。
お礼
有難うございました。 書いていただいた関数をコピーして貼り付けました。お蔭様で 思い道理の結果を得る事が出来ました。 IF関数は使った事があるのですが、ISNA関数とMATCH関数を知りませんでした。 今、いろいろ読んでみましたが、いまひとつ理解できません。 申し訳無いのですが、教えていただいた関数について「もし・・・・だったら○○を返し」と言うふうに、教えて頂けませんでしょうか。 意味を理解して使いこなせるようにしたいので、お手数お掛けいたしますがよろしくお願い致します。