• ベストアンサー

カウントイフ関数の組み合わせ

お世話になります。 棚の番号  品番 001   01 002   02 003   03 004   02 ・     ・ ・     ・ このような表の場合、棚の番号ごとに品番がいくつあるか 数えたいのですがカウントイフ関数だけではダメで 2つくらいの関数を組み合わせなければならないと思います。 どうしたらいいでしょうか? ご教授、よろしくお願いいたします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

>棚番号はA1列全体(上から下へ)、品番はB2列全体(上から下へ)・・・ということでお願いします。  「A1列全体(上から下へ)」というのは「A1以下」という意味で、「品番はB2列全体(上から下へ)」というのは「B2以下」という意味なのでしょうか?  何故、棚番号と品番の行数が異なるのかは判りませんが、取り敢えず、品番が無い1行目は無視して考える事にしても宜しいでしょうか? >→半角ハイフォンです。(念のため全角の場合も合わせて教えてください)  という事ですので、 【半角ハイフォンのみの場合】  まず、D列に D1セルに   棚の番号 D2セルに   001 D3セルに   002 D4セルに   003 D5セルに   004   ・      ・   ・      ・   ・      ・ という具合に、各棚の番号を入力して下さい。  次に、Sheet1のE1セルに「品番」と入力して下さい。  次に、Sheet2のA2セルに次の関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$A:$A,ROW())="",INDEX(Sheet1!$B:$B,ROW())="",COUNTIF(B$1:B1,"="&ASC(INDEX(Sheet1!$A:$A,ROW()))&"゛"&LEFT(ASC(INDEX(Sheet1!$B:$B,ROW())),FIND("-",INDEX(Sheet1!$B:$B,ROW())&"-")-1)&"-*")>0),"",ASC(INDEX(Sheet1!$A:$A,ROW()))&"゛"&ASC(INDEX(Sheet1!$B:$B,ROW())))  次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に貼り付けて下さい。  次に、Sheet1のE2セルに次の関数を入力して下さい。 =IF($D2="","",COUNTIF(Sheet2!$A:$A,"="&$D2&"゛*"))  次に、Sheet1のE2セルをコピーして、Sheet1のE3以下に貼り付けて下さい。 【「-」、「‐」、「-」、「―」、「ー」、「ー」が混在している場合】  Sheet2のA2セルに入力する関数を、 =IF(OR(INDEX(Sheet1!$A:$A,ROW())="",INDEX(Sheet1!$B:$B,ROW())="",COUNTIF(A$1:A1,"="&ASC(INDEX(Sheet1!$A:$A,ROW()))&"゛"&LEFT(ASC(INDEX(Sheet1!$B:$B,ROW())),MIN(FIND("-",INDEX(Sheet1!$B:$B,ROW())&"-"),FIND("‐",INDEX(Sheet1!$B:$B,ROW())&"‐"),FIND("-",INDEX(Sheet1!$B:$B,ROW())&"-"),FIND("―",INDEX(Sheet1!$B:$B,ROW())&"―"),FIND("ー",INDEX(Sheet1!$B:$B,ROW())&"ー"),FIND("ー",INDEX(Sheet1!$B:$B,ROW())&"ー"))-1)&"-*")>0),"",ASC(INDEX(Sheet1!$A:$A,ROW()))&"゛"&SUBSTITUTE(SUBSTITUTE(ASC(INDEX(Sheet1!$B:$B,ROW())),"‐","-"),"ー","-")) に変更し、 次に、Sheet1のE2セルに入力する関数を、 =IF($D2="","",COUNTIF(Sheet2!$A:$A,"="&ASC($D2)&"゛*")) に、それぞれ変更する他は、【半角ハイフォンのみの場合】と同じです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

>実は、一つの品番で、品薄になると、同じものを 追加購入するので、追加購入する分を子番で管理しています。 >【品番】 >親番  子番 >01-01(1回目) >01-02(2回目)  つまり、最初に仰っていた内容とは状況が異なるという事ですね。  確認したいのですが、親番と子番は別々の列に入力されているのでしょうか、それとも、同一のセル内に、ハイフォンを挟んだ形で入力されているのでしょうか、 もし、後者である場合には、全角文字のハイフォンなのでしょうか、半角文字のハイフォンなのでしょうか、或いはまた別の文字なのでしょうか、 又、棚番号や品番は全て数字で構成されているのでしょうか、それとも、「0A2」等という様に、数字以外の文字が混ざる場合もあるのでしょうか?  それによって、関数が多少変わってまいります。  出来れば、棚番号や品番のデータ部分(項目名は除く)が、それぞれ何列の何行目から始まっているのかという事と、御使いのExcelのバージョンも御教え頂ければ幸いです。

usuko1230
質問者

お礼

本当にいろいろありがとうございます。 はじめからそのつもりだったのですが、説明力が足りず、申し訳ありません。 親番と、子番の間には「-」が入っていますが、「データ」→「区切り位置」機能を 使うことにより、親番だけにできます。 よって、品番については、親番だけにしておき、 棚番号ごとに同じ親番(品番)があるもの(ダブっているもの)が いくつあるかを数えたいのです。 お忙しいところ大変申し訳ないのですが、回答、待っています!! また、Excelバージョンは2000です。よろしくお願いします。 念のため、以下にも回答しておきます。 >親番と子番は別々の列に入力されているのでしょうか、それとも、同一のセル内に、ハイフォンを挟んだ形で入力されているのでしょうか →親番・子番とも同一のセル内にハイフォンではさんだ形で入力されています。 >全角文字のハイフォンなのでしょうか、半角文字のハイフォンなのでしょうか、或いはまた別の文字なのでしょうか、 →半角ハイフォンです。(念のため全角の場合も合わせて教えてください) 又、棚番号や品番は全て数字で構成されているのでしょうか、それとも、「0A2」等という様に、数字以外の文字が混ざる場合もあるのでしょうか? →ハイフォン以外は全て数字です。 >棚番号や品番のデータ部分(項目名は除く)が、それぞれ何列の何行目から始まっているのかという事と、 →エクセルなので、自由に構成は変更できると思います。 棚番号はA1列全体(上から下へ)、品番はB2列全体(上から下へ)・・・ということでお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 回答番号ANo.2です。 >(棚の番号と品番の双方が同一となっているデータが重複しません) という事は、以下の2行目と4行目の様な 棚番号  品番 001   02 002   01 001   02 001   01  ・      ・  ・      ・ 内容が重複している行は存在しないと考えれば宜しいのでしょうか?  それでしたら、例えば、棚番号001棚には、棚番号の列に001が現れた回数と同じ数だけ、異なる品番が置かれている事になりますから、棚番号ごとに、その棚番号が何回現れるのかをカウントすれば、棚の番号ごとの品番の数と同じ数になる筈です。  ですから、ANo.2の前半部分で述べました様に、「棚の番号」と入力されているセルがA1セルであり、「品番」と入力されているセルがB1セルであるものとして、D列に各棚の番号を入力しておき、各棚に幾つ品番が存在しているのかをカウントした結果を、E列に表示させるものとした場合には、まず、D列に D1セルに   棚の番号 D2セルに   001 D3セルに   002 D4セルに   003 D5セルに   004   ・      ・   ・      ・   ・      ・ という具合に、各棚の番号を入力して下さい。  次に、E1セルに「品番」と入力して下さい。  次に、E2セルに次の関数を入力して下さい。 =IF($D2="","",COUNTIF($A:$A,$D2))  次に、E2セルをコピーして、E3以下に貼り付けて下さい。  以上です。  尚、棚番号が入力されている列がA列では無かったり、棚番号の一覧を作成する列をD列以外の列にされたい場合には、実際のレイアウトに合わせて、適時、関数や入力するセルを修正して下さい。

usuko1230
質問者

お礼

大変、分かりづらく申し訳ありません。 実は、一つの品番で、品薄になると、同じものを 追加購入するので、追加購入する分を子番で管理しています。 【品番】 親番  子番 01-01(1回目) 01-02(2回目) ※001は同じ品番であっても2回同じものを購入したことが  わかるようになります。 つまり、私が知りたかったのは、001の棚に、品番が01のものが いくつあるかカウントしたいのです。 (在庫管理の観点で古いものから削減したいので) どうしたらよいでしょうか?? もう少しお付き合いよろしくお願いします。。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、「棚の番号」と入力されているセルがSheet1のA1セルであり、「品番」と入力されているセルがSheet1のB1セルであるものとします。 >カウントイフ関数だけではダメで  何故駄目なのでしょうか、棚の番号と品番の双方が同一となっているデータが重複して存在していないのであれば、 例えばD列に D1セルに   棚の番号 D2セルに   001 D3セルに   002 D4セルに   003 D5セルに   004   ・      ・   ・      ・   ・      ・ という具合に、各棚の番号を入力しておき、 E1セルに  品番 と入力した上で、E2セルに次の関数を入力してから、E2セルにCOUNTIF関数で棚の番号が現れた回数をカウントする、次の様な関数 =IF($D2="","",COUNTIF($A:$A,$D2)) を入力してから、E2セルをコピーして、E3以下に貼り付ければ良いのではないでしょうか?  それとも、棚の番号と品番の双方が同一となっているデータが重複して存在する場合もあるのでしょうか?  その場合には、次の様にされると良いと思います。  今仮に、Sheet2のA列を作業列として使用するものとします。  まず、Sheet1の     D1セルに   棚の番号 D2セルに   001 D3セルに   002 D4セルに   003 D5セルに   004   ・      ・   ・      ・   ・      ・ という具合に、各棚の番号を入力して下さい。  次に、Sheet1のE1セルに「品番」と入力して下さい。  次に、Sheet2のA2セルに次の関数を入力して下さい。 =IF(OR(INDEX(Sheet1!$A:$A,ROW())="",INDEX(Sheet1!$B:$B,ROW())="",COUNTIF(A$1:A1,"="&INDEX(Sheet1!$A:$A,ROW())&"゛"&INDEX(Sheet1!$B:$B,ROW()))>0),"",INDEX(Sheet1!$A:$A,ROW())&"゛"&INDEX(Sheet1!$B:$B,ROW()))  次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に貼り付けて下さい。  次に、Sheet1のE2セルに次の関数を入力して下さい。 =IF($D2="","",COUNTIF(Sheet2!$A:$A,"="&$D2&"゛*"))  次に、Sheet1のE2セルをコピーして、Sheet1のE3以下に貼り付けて下さい。  以上です。

usuko1230
質問者

お礼

大変、親切にありがとうございます。 実は、棚の番号ごとにいくつの品番がのっかかっているか確認したく、 カウントイフ関数を使いたかったのです。 (棚の番号と品番の双方が同一となっているデータが重複しません) この場合はどうしたらよいのでしょうか?? 棚の番号は50くらい、品番が5000くらいだとすると、 下記の例だと、棚番号が001の場合、品番が2つありますと カウントしたいのです。 棚番号   品番 001   02 002   01 003   02 001   01 ・      ・ ・      ・ すみません、もう少し教えてください。 どうぞよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • utun01
  • ベストアンサー率40% (110/270)
回答No.1

いろいろ情報が足りなくて分からないのですが、 Excelの関数のことを言っておられるのであれば こういった用件はVBAを使ったほうが簡単に実現できますよ。 シート関数のみでやると余分にデータシート用意する必要があったり それを省くために複雑かつ冗長な処理の関数が必要であったりするので これを機会にVBAを触って見ることをお勧めします。 また、この例の記述ではいまいちやりたいことがわからないのですが、 品番がプライマリキーになるようなイメージでしょうか? その辺りも明確にご質問されると、的確な回答が得られるかもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ★カウント関数の使い方について

    ※実は、前に質問しましたが、説明のしかたが悪く  うまく伝わらなかったようでもう一度以下に書きます。  大変恐縮ですが、ご教授をよろしくお願いします。 棚の番号  品番 001   01 002   02 003   03 004   02 ・     ・ ・     ・ このような表の場合、棚の番号ごとに品番がいくつあるか 数えたいのですがどのような関数をつかったらいいのでしょうか? ※一つの棚にいくつの品番(モノ)がのっかかっているか知りたい。 ※棚の番号と品番の双方が同一となっているデータが重複しないです。 データとしては棚の番号は50くらい、品番が5000くらいあり、 下記の例だと、棚番号が001の場合、品番が2つありますと カウントしたいのです。 →001の棚には、02と01のもの(品番)がおいてあり、  ものの数としては2つある。 棚番号   品番 001   02 002   01 003   02 001   01 ・      ・ ・      ・ 以上、よろしくお願いします。

  • カウントイフ

    宜しくお願いします。カウントイフ関数で、写真のように、同じ99でも、一つづつのセルに別れてる場合、検索条件も一つづつに別れてる場合のカウントイフを教えてください。9&9とかの、&は使わないでやる方法ってあるでしょうか?宜しくお願いします。✳写真のE2の99は話にふれてませんので。気にしないで下さい。

  • 関数について。

    LOOKUP関数は、表がずれていたり、はなれたりしていてもOKだが、VLOOKUP関数やHLOOKUP関数は、表がずれていたり、はなれたりしていたらだめという事でしょうか?ご教授いただけないでしょうか?すみません。

  • 「SUMIF」と「AND」関数の組み合わせについて

    2つの表があり、A列の日付が同じでなおかつ表2のB列に「9」が入っているC列の合計数を表1のBに反映し、合計数が「0」なら""空白にしたい場合の関数の組み合わせを教えてください。日付が同じだけなら「SUMIF」と「IF」関数でできたのですが、なおかつ「9」が入っているセルの合計となると上手く反映されません。「AND」関数の使い方が悪いと思うのですが、どうかよろしくお願いいたします。

  • DSUM関数とDMAX関数について。

    DSUM関数とDMAX関数のデータベースが、同じ表から引っ張り出す場合、なぜ、データベースの範囲に、なぜ絶対参照を付けなければならないのでしょうか?ご教授いただけないでしょうか?すみません。

  • ExcelのVLOOKUP関数について教えて下さい。

    こんばんは。 下の表をExcelでVLOOKUP関数を使用して、品名と単価を求めたいのですがうまくできません。 エラーがでるそうなのですが、品名のところに1000が表示されます。 絶対参照は使用しました。 どなたかやり方を詳しく教えていただけないでしょうか? よろしくお願いします。 (ケーキ売上日計表) A列4に伝票番号、B4品番、C4品名、D4数量、E4単価、F4売上金額です。 伝票番号 品番 品名 数量 単価 売上金額 1 K001 256 2 M002 157 3 M001 219 4 K002 135 (品名別金額一覧表) A11~C15に 品番 品名 単価 M001 丸型クリーム 2,000 M002 丸型チョコ 3,500 K001 角型クリーム 3,000 K002 角型チョコ 2,500

  • エクセル・COUNTIF関数で?や*使えますか?

     下記のように商品コードが並んでいて  A           B Y223A    G○○6A、 G○○6A2 W363A2 D406A         に色付け G226A Y363A Y224A G406A2 G286A2 F225A G256A この内、A列の中の品番、G○○6A及びG○○6A2の番号のみカウントイフ関数を用いてデーターのあるセルを塗りつぶしをしたいのです。  勿論、他の関数でも出来る方法はありますが、条件付書式のCOUNTIFでG??6AやG**6A2のようなワイルドカードを用いて出来るのでしょうか?  自分でもやりましたが、思うようにこの方法で色塗りつぶしが出来ませんでした。  やり方を知っておられたら教えていただけないでしょうか?

  • エクセルでIFを使った関数

    エクセルで 品番 材料名   個数   品番   個数   材料 A  ■ー555   10   A(1)  40(2) (3) B  ▲ー100   50 C  ◎ー200   30 D  ▲ー100   20 E  ◎ー200   40 A  ■ー555   30 上記のような表があり、(1)に品番を入力すると (2)にはSUMIFを使って個数がでてきます。 表に品番Aというものがひとつしかないと限らないので、 あわせた個数がでてくるようになっています。 問題は(1)に品番を入力したときに(3)に品番に見合った材料をでてくるようにしたいのです。 IF関数を使ってやってみたのですが、材料が文字列のせいかVALUEとエラーが出ていまいちわかりませんでした。 どなたか詳しい方よろしくお願いいたします。

  • Excel 関数VLOOKUPについて教えて下さい!

    Excelに詳しい方教えてくださいm(_ _)m 商品一覧があり、商品番号を振っています。 商品番号を入れると、品番・メーカーなどが出てくるような表を作りたいのですが 一つのセルにVLOOKUPで検索してきた結果を2つ分続けて入れることはできるのでしょうか? 例えばメーカー&品番の様に。。。 よろしくお願いします。

  • EXEL関数

    2つのEXCELシートが有り、各シートには以下の様なデーターが載ってます。 例えば、A・Bシート共に A列:商品No B列:型番 C列:数量  と記載されてます。 ただ、BシートにD列:棚番 が所々に記載されてます。 このA・Bシートの 商品No と 型番 が一致するデーターに対して、Bシートの所々に記入されて いる棚番をAシートのBシートと一致する列にワンクリックで転記したいのですが、関数の使い方、 関数の設定の仕方が解りません。 何方かわかる方、関数の設定の仕方を教えてください。 Aシート 品番  型式  数量 1234 ABCD 100 1257 abcde 2 1266 xzabc 15 1556 CHYU 85 1324 ccdeu 158 Bシート 品番  型式  数量 棚番 1234 ABCD 100  A-1 1457 abcdg 2 1536 CHwU 85 1266 xzabc 15  B-4 1335 cDdeu 168 E-8       ↓ Aシート 品番  型式  数量  棚番 1234 ABCD 100  A-1 1257 abcde 2 1266 xzabc 15  B-4 1556 CHYU 85 1324 ccdeu 158