• ベストアンサー

IF関数と並べ替え

エクセル2000です。 =IF(M2=M3,"○","×") =IF(M3=M4,"○","×") =IF(M4=M5,"○","×") =IF(M4=M5,"○","×") IF関数をつかってある列に上のような式を入れています。 で、そのままその列を並べ替えしても○と×で並べ替えすることはできないと思うのですがこれを可能にする方法を教えてください。形式を選択して値貼付けをして並べ替えるという方法はしっているのですが、できれば関数で処理したいと思っています。どなかたご教授ください。

  • nan
  • お礼率4% (6/147)

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 IFの条件式で、別の行を参照しているので、並べ替えると参照する内容が変わってしまうので無理です。 2行目に、 =IF(M2="","○","×") という風に同じ行のみの参照の場合しか、並べ替えは出来ないと思います。

その他の回答 (4)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

再びmaruru01です。 kana-coさんの言う、絶対参照にしても、単に参照するセルの場所を固定するだけで、そのセルの内容は並べ替えによって変わってしまっているので、同じことだと思います。 絶対参照にしろ、相対参照にしろ、少なくともそのセル(○か×が入るセル)の内容は並べ替え後にはでたらめになってしまいます。 ただし、imogasiさんのいうようにM列のデータを問題にする(この場合は重複チェック)だけなら、有効ではあります。 ただ、この場合は予めM列を並べ替えておかないといけません。 もし、重複レコードの削除が目的なら、以下の過去質問が参考になるのではないでしょうか。 「エクセル 重複」 で、検索するといくつか見つかりますよ。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=353131 http://oshiete1.goo.ne.jp/kotaeru.php3?q=362854

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=353131,http://oshiete1.goo.ne.jp/kotaeru.php3?q=362854
noname#10086
noname#10086
回答No.4

お気を悪くされたのでしたら、申し訳ありません。   A B 1 1  2 2 × ←IF(A1=A2,"○","×") 3 2 ○ ←略 4 2 ○ ←略 5 1 × ←略 これで○が上、×が下として並び替えると、 B2がB4に移動すると同時に式がIF(A3=A4,"○","×") に変わるためmaruu01さんのおっしゃるように 結果が並び替え前と同じになります。 そこで、移動しても参照する行を変えない為に IF(A$1=A$2,"○","×")のように行を絶対参照にすれば良いです。 (列は関係ありませんでした。) 単純にお答えすると、これだけでよいのですが、 M列には何がはいるのか、並び替えの目的は何か分かると、 もしかしたら、IF関数以外の関数の方が良い場合があります。 また、この作業の前後の作業もまとめて処理できる場合もあります。 imogasiさんも目的が分からないので、推測して回答されているように 質問以上の答えをいただける方が多いので回答の範囲をせばめるのは もったいないな~と思い書いてしまいました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

私は重複分を排除するために、この方法を使ったことがあります。nanさんの目的はそうだとは言いませんが。 やって見ると「ソートが終わるまでは、値でソートしている」と言えるのではないでしょうか。式を新しい行に持って行きますので、ソートが終わった時の値は意味がないかも知れませんが、私のような目的には使えるのではないでしょうか。 例データA2:A9に 1 2 2 3 3 3 4 を入れます。式はB2に「=IF(A1=A2,"","○")」といれ B9まで複写する。 結果は 1 ○ 2 ○ 2 3 ○ 3 3 4 ○ 4 となります。 並び替えで範囲A1:B9でB列で降順にします。 (A1はタイトル行)。結果は 1 ○ 2 ○ 3 ○ 4 ○ 2 ○ 3 ○ 3 4 ○ となり、重複分は下に沈殿します。沈殿した部分を抹消すると重複分が無くなります。勘違いしているでしょうか。あるいはB列に式を設定する目的が私と違うのでしょうか。

noname#10086
noname#10086
回答No.2

=IF($M$2=$M$3,"○","×") これでいいのでしょうか。 いまいち質問を理解していませんが。 どうしたいのかもう少し補足を。

nan
質問者

補足

なにがどうわかりませんか?

関連するQ&A

  • MSエクセルのif関数にて

    MSエクセルのif関数にて 業務で、エクセルのifを使った関数を利用し処理しようと思っています。 K列にαまたはβが入力されており、 L列に日付が"2008-06-07"という形で入力されているデータ群があります。 そこで、処理したい内容は以下です。 ・もし、K=αなら、L列の日付に1年プラスしてM列に入力 例)2008-06-07 → 2009-06-07 ・K=βなら、L列の日付に2年プラスしてM列に入力 例)2008-06-07 → 2010-06-07 このようにif関数を作るには、M列にどのような値を入力したら良いでしょうか。 ご存知の方、ご教示下さい。宜しくお願い致します。

  • エクセルとIF関数について

    エクセル初心者です。 今、下の画像上段のような、データ(シート1)をエクセル2007で作成しました。 売上と販売形式、場所、そして報告形式があります。 今、シート2のAからC列に販売形式、売上場所、売上金額を 手入力で入れてみました。 ここでしたい処理ですが、IF関数を使って、シート2の4列目に自動的に報告形式が 表示される数式を作りたいのです。 単純なIF関数はわかるのですが、この場合、AND関数をどうやってつくっていいか わかりませんでした。 教えてください。お願いします。

  • IF関数

    エクセルで、 B列~K列までのセルに1つでも数値が入っていれば、 A列に○印がつくような、 関数式をお教え下さい。 今まで合計を出して>1なら○が入る ようにしていたので(恥)・・・

  • エクセル2007のIF関数の作り方

    A列の値が「0.2<A列の値<0.8以下」或いは「-0.8<A列の値<-0.2」ならば「●」と表示、それ以外では「×」と表示するにはどんなIF関数やネストを組み込めばいいですか?いろいろやってみたのですが、どうしてもうまくいきません。一般論的な説明ではなく、具体的に論理式をテキストで記載していたきたく、お願い申しあげます。  (エクセル2007 windowsビスタ) A    B 0.41   ● 0.23   ● -0.33 ● 0.19  × 0.03  × -0.25  ●

  • IF関数について

    EXCELのIF関数について教えて下さい。 A列 B列  C列 D列 ○     ○  ○    ○  ×  × ×     ○  × AもしくはB列が○で、C列が○ならD列は○ AもしくはB列が×で、C列が○ならD列は× AもしくはB列が×で、C列が×ならD列は× AもしくはB列が空白で、C列が空白ならD列は空白 と言った条件式をD列のセルに記述しようと思っています。 試行錯誤してみたんですが、上手くいきません。 アドバイスでも構いませんので、教えて下さい。

  • エクセル IF 範囲指定

    エクセル関数についてですが、 Aは入力規則でプルダウンで1~3を選択します。 問題はBですが、IF関数を使ってA列で1もしくは2ないし3のどれかを選択した場合、B列ではA列で選んだどれかの値に基づいて指定した範囲の値しか記入できなくする方法を教えて頂きたいのですが、どなたかエクセルマスターはおりませんか? できれば、 A列            B列 1  Aで1の場合4,5,6どれかしか選択できない。 2  Aで2の場合7,8,9どれかしか選択できない。 3  Aで3の場合10,11,12どれかしか選択できない。 出来ればVBAを使わずにシンプルな方法を教えて頂きたいのですが、入力規則とかIF関数のみで実現可能でしょうか?

  • if関数がわかりません。

    if関数がわかりません。 エクセルを少しかじっただけの初心者です。 上司に言われて表をつくっているのですが行き詰まって質問させていただきました。 もし○○○○なら △という値をかえす そうでないなら□という値をかえす となるのがif関数だと思うのですが 返すのが値ではなくもし○○○○なら入力されているフォントが赤くなる そうでないならフォントが黒くなるという設定は可能ですか? もし可能なら引数の設定でどうなりますか?  論理式   A1=○○○○(もしA1のセルが=○○○○なら)  真の場合       (フォントを赤の色にする) 偽の場合       (フォントを黒の色にする) よろしく「お願いいたします。

  • IF関数でできますか?

    次のような条件でIF関数は使えますか? Aの値が50以上,Bの値は60以上,Cの値は150以上として3つとも条件をクリアしていれば○、A,B,C3つのうちどれか2つまでクリアしていれば△、1つもしくは3つともクリアしていなければ×をつけたいのですが、IF関数を使えばいいのでしょうか?○はANDを使えばいいと思うのですが、△、×はどうすればいいのでしょうか?

  • エクセル IF関数 条件を満たす行に印をつける

    A1:J30までにランダムな数値が入力されている表があります。M1:N4には検索値を入力できる箇所があり、条件に該当する行があればK列に○を付ける、ということがしたいです。その条件は、 (1)M1かN1に該当する (2)M2かN2に該当する (3)M3かN3かM4かN4に該当する この3条件のすべてを満たす行があればK列に○です。 いろいろ調べて、IF関数とsumproductを組み合わせてやってみたのですが、正しい結果にならずお手上げ状態です。(ちなみにこれ↓長すぎなのもネック。。。) =IF(AND(SUMPRODUCT((A1:J1=$M$1)+(A1:J1=$N$1))>=0,SUMPRODUCT((A1:J1=$M$2)+(A1:J1=$N$2))>=0,SUMPRODUCT((A1:J1=$M$3)+(A1:J1=$N$3)+(A1:J1=$M$4)+(A1:J1=$N$4)>=0)),"○","") IF関数でなくてもできれば何でも良いので、教えてください。 よろしくお願いいたします。

  • エクセル2007 IF関数について教えてください

    お世話になります。 どうしてもIF関数がうまくできず困りはてています。 下記のような項目を含むデータを2万件くらい抽出しています。 A列     B列  C列      D列 E列 状況    拒否理由       注文数   確認数 (1) 在庫不足   入力ミス  1     0 → キャンセル (2) 在庫不足       1      0 → 未処理 (3)                 5        0 → 未処理 (4)                 1       1 → 処理済 (5)   お客様キャンセル      10    0     →     キャンセル 未処理の件数を管理したいのですが、キャンセル扱いとなる条件を除く IF関数をうまく作成できません。 =IF(AND(D2>0,E5>0),"完了","未処理") といったように1個の条件についてはなんとかできるのですが、 B列が空欄or文字の入力有、C列が空欄、E列が0の数字の場合、D列の 数字を表示しなさい、といったようにまとめて、条件式をつくることができません。 何個かつなげると、TRUE、FALSEと表示され指定する列の(この場合D列)数字が表示 できません。 IF関数でなくてもよいのですが、未処理(キャンセル扱い除く)条件のみの数字を表示させる 方法をご教示お願いいたします。

専門家に質問してみよう