ひとつも売れてない商品を抽出する関数!

このQ&Aのポイント
  • エクセルで関数によって色づけをしたい場合、適切な関数はありますか?
  • 抽出したいのは各サイズの在庫が同一という性質の商品です。
  • 売れていない商品に色付けするための関数があれば、教えてください。
回答を見る
  • ベストアンサー

ひとつも売れてない商品を抽出する関数!

お世話になります。 エクセルで関数によって色づけをしたいのですが やり方がわからないのでどなたか教えて頂けないでしょうか。 ----------------- 以下のような列があります。 A列 B列 C列 D列 ID サイズ 在庫数 判定結果 IDは商品番号を示していて、データは以下のようになります。 A列 B列 C列 D列 ID サイズ 在庫数 判定結果 A 70cm 5 A 80cm 4 A 90cm 2 B 110cm 4 B 120cm 4 C 90cm 3 C 100cm 3 C 110cm 3 C 120cm 3 C 130cm 3 上記が示しているのは ・Aという商品はサイズが3サイズあり、在庫数はそれぞれ5,4,2着ずつ。 ・Bという商品はサイズが2サイズあり、在庫数はそれぞれ4,4着ずつ。 ・Cという商品はサイズが5サイズあり、在庫数はそれぞれ3,3,3,3,3着ずつ。 今回抽出したいのはBやCのように、各サイズの数が同一のものです。 つまり、「各サイズの在庫が同一ということは多分1着も売れてない」という 性質の商品を抽出したいわけです。 (※各サイズが等しく売れているものも抽出されますがそこは目視で判断します) 商品によって、サイズ分布が違うので行数が変わってきますし、 仕入れ数も違うため、「この数字と等しいということは売れていない」という 判断も出来ません。 この状況で関数を使ってD列にB商品やC商品のような性質の商品に 色付けをしたいと考えているのですが、適切な関数はありますでしょうか? ご回答、どうぞ宜しくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

A1セルからD1セルには項目名が有り、A列からC列の2行目から下方にはデータが入力されているとします。 D2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNTIF(A$2:A2,A2)=1,IF(AVEDEV(C2:INDIRECT("C"&ROW(A1)+COUNTIF(A:A,A2)-1))=0,"売れてない",""),"") これでIDが変わる最初の行にもしも売れていないものが有れば 売れてない の文字が表示されます。 その文字のセルと文字に色を付けるのでしたら「ホーム」タブの「条件付き書式」から「セルの強調表示ルール」で「指定の値に等しい」を選択し、表示の窓に 売れてない と入力してOKします。

ARIES10
質問者

お礼

ありがとうございました。 全ての行で在庫が0の場合は「売り切れている」という表示も行うように して頂きたいのですが、もう質問を変更できないようなので 改めて投稿しようと思います。 今回のご回答も充分勉強になりました。 もしよろしければ新たな投稿にご回答頂ければ大変有り難いです。 現状求める関数を手に入れ切れていない状況ですので。

ARIES10
質問者

補足

ありがとうございます。 しっかりと関数の構文の意味を読み切れていないですが、 「売れていなそうなサイズ」があれば そのアイテムに「売れてない」という色づけをする という効果という理解であっていますでしょうか? そうであれば、「売れていなそうなサイズを持つ商品」 ではなくて、「どのサイズも売れていなそうな商品」が 抽出したいものです。 在庫が3,3,0とあった場合、 最初の2サイズは売れていないが最後のサイズは売り切れている ということになります。 こういう商品は、「どのサイズも売れていなそうな商品」 ではないので、対象外にしたいです。 これを踏まえて関数の構文を変更して頂けますでしょうか。

その他の回答 (2)

回答No.3

ちょっと思ったので回答させて頂きます。 前回の状態のシートを作る。(比較対象) 今回の状態のシートを作る。 前回の状態から変化の有無で売れている売れていないにした方がよろしいのではないでしょうか? 全てのサイズで同一の数が売れた場合、売れていないとなるのでどうなんだろうかと思いました。 計算式はいまいち分からないので掲載できません。 おせっかいなコメントをして申し訳ありませんでした。

ARIES10
質問者

お礼

ありがとうございました。

ARIES10
質問者

補足

ありがとうございます。 「前回の状態のシート」を作れない状況下のため 関数で解決しようと思っての質問なのです。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

D2セルに =IF(A1=A2,"",COUNTIF(A:A,A2)=SUMPRODUCT((A:A=A2)*(C:C=C2))) 下方向ドラッグコピー D2セルに条件付き書式(下記2つを設定) =D2 塗りつぶし:適当な色 フォント色:塗りつぶし色と同じ色 =D2=FALSE() 塗りつぶし:なし フォント色:白 下方向ドラッグコピー 各サイズの最初のデータにのみ色付け 全サイズに色付けしたい場合は D2セル式は =COUNTIF(A:A,A2)=SUMPRODUCT((A:A=A2)*(C:C=C2))

ARIES10
質問者

お礼

ありがとうございました。 全ての行で在庫が0の場合は「売り切れている」という表示も行うように して頂きたいのですが、もう質問を変更できないようなので 改めて投稿しようと思います。 今回のご回答も充分勉強になりました。 もしよろしければ新たな投稿にご回答頂ければ大変有り難いです。 現状求める関数を手に入れ切れていない状況ですので。

ARIES10
質問者

補足

非常に早いご回答ありがとうございます。 現在試し中です。 TRUE/FALSEで結果を出し、 その結果に対して色づけで視覚的に判断しやすくする ということですね。

関連するQ&A

  • ひとつも売れてない商品を抽出する関数!(改)

    お世話になります。 エクセルで関数によって色づけをしたいのですが やり方がわからないのでどなたか教えて頂けないでしょうか。 ----------------- 以下のような列があります。 A列 B列  C列   D列 ID サイズ 在庫数 判定結果 IDは商品番号を示していて、データは以下のようになります。 A列 B列  C列   D列 ID サイズ 在庫数 判定結果 A  70cm   5 A  80cm   5 A  90cm   0 B  110cm  4 B  120cm  4 C  90cm   3 C  100cm  3 C  110cm  3 C  120cm  3 C  130cm  3 D 50cm 0 D 60cm 0 D 70cm 0 上記が示しているのは ・Aという商品はサイズが3サイズあり、在庫数はそれぞれ5,5,0着ずつ。 ・Bという商品はサイズが2サイズあり、在庫数はそれぞれ4,4着ずつ。 ・Cという商品はサイズが5サイズあり、在庫数はそれぞれ3,3,3,3,3着ずつ。 ・Dという商品はサイズが3サイズあり、在庫数はどれも0着で売切れ。 今回まず抽出したいのはBやCのように、各サイズの数が同一のものです。 つまり、「各サイズの在庫が同一ということは多分1着も売れてない」という 性質の商品を抽出したいわけです。 (※各サイズが等しく売れているものも抽出されますがそこは目視で判断します) 商品によって、サイズ分布が違うので行数が変わってきますし、 仕入れ数も違うため、「この数字と等しいということは売れていない」という 判断も出来ません。 この状況で関数を使ってD列にB商品やC商品のような性質の商品に 色付けをしたいと考えているのですが、適切な関数はありますでしょうか? ※A商品は多分仕入れが5着ずつで90cmのサイズだけ売れています。  残りのサイズは1着も売れていないということになりますが、  希望しているのはどのサイズも1着も売れていないというものなので  A商品は抽出されてほしくありません。  (この場合も各サイズが同じ数売れている時に抽出されるのはOKです。   最後に目視で除外します。) B,C商品には、同じID内の一番上の行のD列に「売れてない」と表示されてほしいです。 最後に、D商品は、逆に全て売り切れているという商品ですので  「完売」という色を付けたいです。 これも同じID内の一番上の行のD列に「完売」と表示されてほしいです。 ご回答、どうぞ宜しくお願いいたします。

  • Excel関数

    Excelで適切な関数を探しています。 在庫の管理で複数ある在庫の指定した商品の過不足がわかるような在庫表を作成しようとしてます。 会社の基幹システムからExcelに落とした在庫表が下記のようにあります。 A列    B列     C列     品番    倉庫名  保有在庫数 111111   東京     10 111111   大阪     20 222222   東京     50 333333   大阪     10 333333   札幌     10 444444   札幌     30 続く・・・ 他に各倉庫各品番の必要在庫の別シートのマスターがあります。 A列    B列   C列 品番   在庫名  必要在庫数 1111111  東京    50 1111111  大阪    10 2222222  東京    100 2222222  大阪    20 最初の在庫表にD列を設け、そこに上記のマスターの必要在庫数を表示させて下記のようにしたいのですが・・・ A列    B列     C列    D列    E 品番    倉庫名  保有在庫数  必要在庫数 過不足数 111111   東京     10      50    -40 111111   大阪     20      10    10 222222   東京     50      100   -50 ・・・・・ がIFやVLOOKUPの関数で組み合わせで適切なものができませんでした。 他の関数で適切なものはありますでしょうか。 

  • 関数について

    関数について VLOOKUP関数を使ってみようと思っているのですが1列目のデータの抽出に仕方がわかりません。 入力例 sheet1 B列__C列__D列 1_______A____現金 2_______B____現金 3_______C____カード 4_______D____カード 5_______E____現金 抽出例 sheet2 B列__C列__D列 1_______A____現金 2_______B____現金 5_______E____現金 抽出例のC、D列はVLOOKUPを使おうと思っています。 B列の抽出にはどのようにしたらいいかおしえてください。

  • オートフィルターで抽出後の集計 ユーザー定義関数

    以下のようなテーブルがあったとします。(図参照) A列 ID B列 数値A C列 数値B D列 抽出A E列 抽出B フィルターでD列E列で抽出した後に、B列の数値、例えば数値が1~3あるとします。 それぞれ1~3のC列の数値の合計の式をユーザー定義関数で作ることは出来ますでしょうか? コードかけません宜しくお願いします。 式1 フィルター抽出後のB列の1という数字のみのC列の数値の合計 式2 フィルター抽出後のB列の2   同様 式3 フィルター抽出後のB列の3   同様 VBAの知識はあまりありませんが、モジュールの追加とコードを貼り付ける作業は出来ます。 エクセル2013 64bitです。 宜しくお願いします。

  • Excel関数で仕入先ごとに売上金額の一番高い部署を抽出するには・・・

    以下の2つのシートがあったとします。 sheet1のB列にsheet2の仕入先IDに対応しかつ売上金額の一番高い部署IDを抽出するためにはどのような関数を入力すればよいでしょうか? sheet1 A     B 仕入先ID 部署ID 1 2 3 sheet2 A     B    C    D 仕入先ID 部署ID 客先ID 売上金額 1     A    125  146000 1     A    128  288000 1     B    221  288000 2     C    151  88000 2     C    151  88000 2     A    241  666000

  • EXCEL2007 情報抽出 関数

    A~E列それぞれの一つのセルに"1"を入力し、F列にある情報を抽出、 G列のセルに表示させたいです。 行が多いので、IF関数などは使用できませんでした・・・ 何を使用すればよろしいでしょうか・・・? 例) A1~A20 B1~B20 C1~C20 D1~D20 E1~E20 それぞれの列の一つだけに1を入力します。 ・A 5に1を入力 → F5の情報をG1に表示 ・B15に1を入力 → F15の情報をG2に表示 ・C 2に1を入力 → F2の情報をG3に表示 ・D18に1を入力 → F18の情報をG4に表示 ・E9 に1を入力 → F9の情報をG5に表示 行数が多く、複数の関数を試してみても、数の制限にひっかかるのか うまくいかず困っています。どうぞよろしくお願いします。

  • EXELで条件抽出をしたい…

    教えて下さい。EXELで作った下のような表(データ)がありその条件に合う人を抽出したいんですが…       A   B   C   D 1 Aさん 1234  2345  3456  4567 2 Bさん 6788  1234  5556  7778 3 Cさん 7788  7778  5443  7789 A~Dのセルにランダムに並んだ数字を入力している(ここでは、番号(1234)と入力している)人を関数を使い一発表示したいんですが。  A列だけに1234という数字を入力している人を抽出し、条件にあえば「○」という表示をできるようにはIF関数を使いできましたが、 AさんのA列、B列、C列全てを検索範囲に入れた、(たとえば「1234」と入力しているなら「○」等で表示(抽出)したいんですが…それができる関数を教えて下さい。列ごとしかできないのか…??? 分かりにくいですか? (^_^; 宜敷お願いします。

  • エクセルの関数で商品を区別する記号番号をつける方法

    エクセルの関数を使って商品のサイズ、色にそれぞれ区別する記号番号を付けていくのに苦労しています。 この度は私の質問に目を留めて頂きありがとうございます。 作業については下の通りです。 (エクセル画面のスクリーンショットを切り取って画像添付しています。) A列に商品種類名が商品の数ごとにならんでいます。 B列にはサイズ名、D列にカラー名をそれぞれ並べています。 C列にB列のサイズ名を区別するための番号、E列にD列のカラー名を区別する番号を付けていく作業を現在手作業で行っています。 C列のサイズ番号、E列のカラー番号ともに A列の商品種類名によって個別のアルファベットと番号をあてていっています。 商品の管理上全商品のカラーなどに共通の番号を振る事ができず、あくまでA列で同じもの(同タイプの商品)に対して記号番号を割り当てています。 上の作業結果のように単純にその商品のサイズが3種類ならa,b,c、色種類が4種なら1,2,3,4 というふうに付けています。 商品種類が3000以上、商品数は15000種類を超えるため、関数などで置き換えて短時間で行えないかと模索していますがなかなか思うようにいきません。 置き換える手段がございましたらご教授いただけると幸いです。 もちろんサイズ名部分、カラー名部分と分けてでも結構です。よろしくお願い致します。

  • IF関数の論理式が作れない

    ・在庫(シート)   A    B     C 1 品物 在庫数 2 りんご  4 3 みかん  4 4 ぶどう  4 ・出荷(シート)   A     B      C   D 1 品物 在庫数  出荷数 残 2 りんご =在庫!B2    2    =B2-C2 在庫シートのC2にも、「残」数を載せたいのですが、式の作り方が分かりません。 VLOOKUPを使ってみようと思いましたが、なかなか思うようにいきません。 出荷シートのA列の商品が、在庫シートのA列にもあった場合(この場合は「りんご」)は、出荷シートのD列の数値を返す。 無かった場合(この場合は「みかん」「ぶどう」)は、在庫シートのB列の数値を返す。 IFの真偽は作れましたが、最初の論理式作りで手間取っています。 =IF(      ,VLOOKUP(A2,出荷!A:D,1,0),B2)    ↑この部分の論理式が不明です。 尚、在庫シートのB2には既に在庫数が載ってるのに、更に在庫数を載せるのか?と疑問を感じられると思いますが、その疑問は、申し訳有りませんが、指摘しないで下さい。

  • エクセル関数を教えてください。

    エクセル関数を教えてください。   A   B   C   D    E   F    G  ・  ・  ・ 1      4月          5月          ・ 2 商品 購入数 販売数 在庫数 購入数 販売数 在庫数 ・ ・  ・ 3 ペン  5   3   2   6   3   3  ・ ・  ・ 上の表でペンの年間販売数を計算したいのですが、SUN(C2,F6,・,・,)は分かります。 指定した条件列(ペン)で、指定した条件行(販売数)を集計するような関数を教えてもほしいのですが、宜しくお願いします。

専門家に質問してみよう