• ベストアンサー

集合の差を列挙する方法

EXCELを用いて商品名、商品番号が2列に書かれている中から、特定の商品番号の列の商品名以外の商品名を取り出し、列挙する方法を教えてください。例えば、  商品名|商品番号1|商品番号2   イ  |  10   | 10   ロ  |  11   | 12   ハ  |  12   |   ニ  |  13   | とあるとき、番号1から番号2以外をとりだすとすると  結果  ロ  ニ と出力する方法です。分かりづらくてすみませんが、よろしくお願いします。

  • I-T-U
  • お礼率100% (13/13)

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.3

A列が商品名、B列が商品番号1、C列が商品番号2とした場合で結果をD列に求めると仮定します。 D2セルに=IF(ISERROR(VLOOKUP(B2,C:C,1,0)),A2,"")を入力して、オートフィルでコピー 結果はとびとびになりますが、オートフィルタで空白セル以外を選択して、縮めて下さい。

I-T-U
質問者

お礼

分かりやすい方法をありがとうございました。 望む結果が得られました。

その他の回答 (2)

noname#204879
noname#204879
回答No.2

「分かりづらくてすみません」と断っておられるのに恐縮なのですが… 「番号1から番号2以外をとりだすとすると」ロとニになるのがどうしても理解できません。理由を教えてください。

I-T-U
質問者

お礼

「商品番号1の列」の番号のうち、「商品番号2の列」にある番号以外の番号の商品名を取り出してもらう方法を求めていました。二列目と三列目は離れていると見てもらいたかったのです。 ご指摘ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

上記がA1:C5の範囲として D2=IF(ISNA(MATCH(B2,OFFSET($C$2,0,0,COUNT($C$2:$C$5)),0)),ROW()) これで存在する行はFALSE、存在しない行は行数が表示されます。 結果の欄は =IF(ROW(A1)<=COUNT($D$2:$D$5),INDEX($A$2:$A$5,SMALL($D$2:$D$5,ROW(A1))-1),"") を下方にコピーしてください。

I-T-U
質問者

お礼

ありがとうございました。 参考にさせていただきました。

関連するQ&A

  • エクセル関数で検索し一致した最後の行を取得

    お世話になっております。 エクセルの関数のみで、A列の中で一番最後に一致した行番号を返す方法はないでしょうか? 例)  A 1 イ 2 ロ 3 ハ 4 ニ 5 イ 6 イ 7 ロ 8 イ 9 ハ イ の場合:8行目 ロ の場合:7行目 どうぞ、よろしくお願い致します。

  • エクセルで複数列のデータに対して検索後、対象行を表示できますか?

    よろしくお願いします。 エクセル2002を使っています。 例として 1        E F G 2 データA  イ ロ ハ  3 データB  ロ ハ 4 データC  ニ  5 データD  ニ ロ E,F,G列に行方向にイ~ニのデータがランダムに入っています。 オートフィルを使う様に3列中にイを含む行、又はイ又はロを含む行、イ、ロ、ハを含む行を表示させたいのですが、何か方法があるでしょうか? どなたかご存知の方ご教授お願いします。

  • 文字を変換するマクロ

    こんばんわ。エクセルのマクロについて教えてください。 A列に、「イ」「ロ」「ハ」「ニ」「ホ」という文字が入っており、 これをB列に、 イなら1、ロ→2、ハ→3、ニ→4、ホ→5 というな置換ルールで入力していくマクロは、 どのように組めばよいのでしょうか。 (マクロを組まずとも、  普通に置換を使えばできると思うのですが、  是非、マクロで組みたいので・・・) (A列)(B列)  ロ   2  イ   1  ハ   3  ニ   4  イ   1  ホ   5      ↑   マクロを実行すると、   B列に変換された数値が入力される よろしくお願いします。

  • エクセルのマクロで、指定した条件を満足する組み合わせを表示する方法?

    エクセルで、例えば     イ ロ ハ A-a 3 6 0 A-b 0 5 1 A-c 2 0 5     イ ロ ハ B-a 3 0 0 B-b 5 3 1 B-c 0 2 0     イ ロ ハ C-a 0 5 0 C-b 0 4 5 C-c 0 0 2 のように幾つかのグループ(A、B、C)があって、 それぞれのグループに幾つかのサンプル(a、b、c)があって、 それぞれのサンプルに幾つかの属性(イ、ロ、ハ)があるとして、 (イ 5以上 ロ 10以上 ハ 5以上) のように属性を任意に指定すると、それぞれのグループから一つずつサンプルを選択して、 指定した条件を満足する組み合わせを表示する方法ってありますか? イ 5以上 ロ 10以上 ハ 5以上の指定だと、     イ  ロ  ハ A-a 3  6  0 B-a 3  0  0 C-b 0  4  5     6 10  5     イ  ロ  ハ A-a 3  6  0 B-b 5  3  1 C-b 0  4  5     8 13  6     イ  ロ  ハ A-b 0  5  1 B-b 5  3  1 C-b 0  4  5     5 12  7 のように表示してくれると良いのですが。 教えてください、よろしくお願いします。

  • ファイルサーバのアクセス権一覧表示方法

    社内のシステムを担当しているのですが、ファイルサーバのアクセス権を確認したいのですが、何かコマンドにて各フォルダのアクセス権を出力する事はできないでしょうか? ・イメージ フォルダ名   アクセス権 Aフォルダ イさん(フル),ロさん(書込みのみ),ハさん(変更のみ) Bフォルダ イさん(フル),ロさん(フル) Cフォルダ イさん(フル)

  • セルの簡単入力方法

    エクセルについて教えてください。 ひとつのセルを「A」や「1」や「イ」や「○」などなにか一文字で入力できないものでしょうか? 仕事で、年配者など複数の人が同じ画面を操作するので、セルの指定間違いや(A1やF5などの直接入力や、そのセルをクリックする方法)、二桁や三桁の数字も入力ミスがあるため、あらかじめ同じページ内に、 例えば、A1は「イ」B1は「ロ」C1は「ハ」など作っておき、後は簡単に「イ」「ロ」「ハ」という入力方法で活用したいのですが、無理なのでしょうか。

  • エクセル同じ番号が全て条件を満たしたら記を入れる

    エクセルで、 1つの注文番号に、複数の型番の品物が載っています。 注文番号が同じもので全て出荷済みになった場合のみ、 請求書を発行せよと言う表示をさせたです。   A      B   C   D   注文番号 型番 出荷 請求書 1 001    イ  済   要発行 2 001    ロ  済   要発行 3 002    ロ  済   保留 4 002    ハ  未   保留 5 003    ニ  未   保留 このたとえの場合、 注文番号001はイとロと言う品物を出荷済みなので、Dに請求書を「要発行」、 注文番号002はロは出荷済みだがハは未集荷なので、請求書を「保留」 と表示させたいです。 Aの列に同じ注文番号が幾つあるかをチェックして、 同じ注文番号のうちCの列が全て「済み」になっているものついては「要発行」、 同じ注文番号のうちCの列に「未」がある場合は「保留」 と表示させたいです。 注文番号は日々、ドンドン追加されていくので、「001」を検索するとか、 A1と同じものを検索すると言う式は使えません。 この場合、どのような数式を使えばできますか?

  • Excel 別のシートを参照し、行のデータを列の向きに直したい

    <Sheet1> A  B  C  D   E   F ~ 1 商品名 価格 数量 割引率 合計 2  イ 3  ロ 4  ハ 5  ニ のようなデータを <Sheet2>に    A   B  C  D  E  ~ 1 商品名  イ  ロ  ハ  ニ 2  価格 3  数量 4 割引率  5  合計  のように、向きを変えて表を作り変えたいのですが、 <Sheet2>のB列に    A   B      1 商品名 =Sheet1!B2   2  価格 =Sheet1!C2 3  数量 =Sheet1!D2 4 割引率 =Sheet1!E2 5  合計 =Sheet1!F2 と入れて、オートフィルさせても、だめですよね。 当然のようにC列はSheet1!B3にならずSheet1!C2 になってしまいます。 どうすれば、良いかご存知の方、教えてください。 宜しくお願いたします。  

  • 別のネットワーク上のプリンタを使用できますか?

    文章でわかりづらいかもしれませんが、よろしくお願いします。 パソコン、「イ」「ロ」「ハ」の3台が、「ALPHA」と言うワークグループで、「イ」のファイルやプリンタ等を共有しています。 また、インターネット回線も共有しており、外部とのメールの送受信が出来ます。 ------------------------ 別の、「A」「B」「C」の3台が、同じ「ALPHA」と言うワークグループ名で、「A」のファイルやプリンタ等を共有しています。 ------------------------ 現在「イ」「ロ」「ハ」のグループと、「A」「B」「C」のグループは独立しており、何ら接点(接続)はありません。 ------------------------ この状態から、 LANケーブルを、「イ」「ロ」「ハ」のHUBと、「A」「B」「C」のHUBと接続して、 「A」で作成したデータを「イ」のプリンタから出力させることは可能でしょうか? 可能でしたら、その設定方法を知りたいのです。 OSは、XPです。 但し、現在割り振られている「イ」「ロ」「ハ」「A」「B」「C」のインターネットプロトコル(IPアドレス等)は変更できません。

  • 順列の列挙の方法

    順列の列挙の方法といっても辞書式順序のやつではありません。別の制約です。 グレイコードというのをご存知でしょうか。例えばビット列のグレイコードは次のようになります。 0:000 1:001 2:011 3:010 4:110 5:111 6:101 7:100 これがどんな制約を満たしているかと言うと、 1、となりのビット列に変換するには1ビット反転すれば良い。 2、すべてのビット列がちょうど1回現れる。 この2つです。グレイコードの正確な定義はさておき、とりあえず今はこれと言うことにします。 この順序でビット列を列挙する関数をC言語で書くと次のような感じになります。 f(int n) { if(n==-1)return; f(n-1); 第nビットを反転; 出力; f(n-1); } さて順列の話ですが、次のような制約を満たす順序で順列を列挙するアルゴリズムは どんな感じになるのでしょうか。 1、となりの順列に変換するには1回スワップ(2つの要素を入れ換える)すれば良い。 2、すべての順列がちょうど1回現れる。 この条件を満たすような順列の列はたくさんあると思いますが、 できるだけ法則性のあるやつ、というかプログラムに書きやすいやつを お願いします。 ビット列のアルゴリズムをちょこっと変えれば出来るかなーと思っていたのですが 数学的センスが無いせいか、苦戦しています。数学的センスのある方、ぜひご教示ねがいます。

専門家に質問してみよう