[[20080807184848]] 『品番のカウント』(たから) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『品番のカウント』(たから)
 ご教示ください。
 A列に品番が入力されています。
 N12444やN12581677等、数字部分の桁数が不規則なものです。
 (10000行ほどあります)
 この中で、下4桁が1001〜2000までのものをカウントしたいのです。
 よろしくお願いいたします。

 SUMPRODUCT関数を使用しRIHGT関数で下4桁を出しながら、範囲内かどうかを判断するのはいかがでしょう?
 
 (キリキ)(〃⌒o⌒)b

 さきほどから、↓のようにやってはまってしまっているので質問させていただきました・・・><;
 =SUMPRODUCT((RIGHT($B$2:$B$10000,4>=1001)*(RIGHT($B$2:$B$10000,4<=2000))))
 お助けください。(たから)

 おしい!!
 こんな感じかな?
 
 =SUMPRODUCT((--RIGHT($B$2:$B$10000,4)>=1001)*(--RIGHT($B$2:$B$10000,4)<=2000))
 
 (キリキ)(〃⌒o⌒)b

 A列と言いながらB列式を書き込んでるし・・・疲れてるかもです・・・
 さっそくやってみましたが、VALUEになってしまいました。
 なぜでしょうか?(たから)


 質問です。
 空欄や、文字列だけ(下4桁に文字が入っていたり)なものはありますか?
 もしあるのなら桁数が多いので、配列数式だと処理時間がかなりかかってしまうかもしれません。
 
 そこで、作業列に
 =IF(ISERR(--RIGHT(A1,4)),"",1)
 等として、その列を足すのはいかがでしょう?
 
 (キリキ)(〃⌒o⌒)b

 ちょっと追記です。
 
 >=IF(ISERR(--RIGHT(A1,4)),"",1)
 >等として、その列を足すのはいかがでしょう?
 と言うのは、その式ではまだ途中ですよ〜 って言う意味で
 「等として」って書きました。
 
 「1」の部分を、SUMPRODUCT関数で使用した条件のように追加してください。
 
 #わかり辛い誘導でしたね・・・
 (キリキ)(〃⌒o⌒)b

 昨日は、会社を追い出され返事が出来ませんでした。スミマセン。
 品番はすべて「N」ではじまるので、文字列として認識されるのですね。
 で・・・・
 >「1」の部分を、SUMPRODUCT関数で使用した条件のように追加してください。
 この部分が分かりません。申し訳ないのですがお教えください。
 それから、--RIGHTの「--」とはどのような意味になるのでしょうか。(たから)

 =COUNT(INDEX(0/(INT((RIGHT(A1:A10,4)-1)/1000)=1),))

 By

 Byさん、ありがとうございます。
 N1001999のとき、10・N1022623のとき、9となりました。
 このあと、どのようにすればよいでしょうか。(たから)

 ご質問の内容ではありませんが失礼します。
 >それから、--RIGHTの「--」とはどのような意味になるのでしょうか。
 私もよくわかりませんでした。
 ご参考
 『シート名を関数の中で使いたい』(肌)
[[20080804131625]]
 RIGHT関数も文字列の関数なので--で数値化するんだと思います。

 (肌)


 [ご参考]
[[20040530061813]] 『「--」と「!」の意味?』(masabou5) 
                    (dack)

 差し出がましいことをしてスレ汚しすいません。
 おとなしく見てます。(肌)

 本当にマイナスという意味だったんですね。
 皆さん、ありがとうございます。
 肌さん、汚したなんてとんでもないです。助かりました。

 そして、これからどうすればよいのでしょうか・・・・・^^;
 (たから)

 >そして、これからどうすればよいのでしょうか・・・・・^^;
 どうしたいのでしょう?


 >=IF(ISERR(--RIGHT(A1,4)),"",1)
 >等として、その列を足すのはいかがでしょう?
 >「1」の部分を、SUMPRODUCT関数で使用した条件のように追加してください。

 この部分が分かりません。申し訳ないのですがお教えください。
 新たに作業列を追加したりするのでしょうか?(たから)

 作業列を作りキリキさんの式
 =IF(ISERR(--RIGHT(A1,4)),"",1)
 まではされたのでしょうか。
 そうすれば「1」の意味がわかると思います。
 (肌)

                        >Byさん、ありがとうございます。
                        >N1001999のとき、10・N1022623のとき、9となりました。
                        >このあと、どのようにすればよいでしょうか。(たから)
                                 誰に向けて発言?
                                          (dack)

 Byさんという方がいったん書き込んだ後で削除してしまったようですよ。
 (独覚)

 1は表示されました。1の時にSUMPRODUCTを使用ということだと思うのですが、
 どうやったら良いのか、分からなくて。 

 そうなんです。Byさんの書き込みが消えてしまったようなので、キリキさんの案
 で行きたいと思っています。
 (たから)


 >このあと、どのようにすればよいでしょうか。
 と質問されても、どの様にしたいのかこちらは分かりません

 質問の主旨に合わない回答だったようなのでいったん削除しました

 話が前後するようなので、回答を再度載せておきます

 By

 あらためて質問させていただきます。
 =SUMPRODUCT((--RIGHT($A$2:$A$10000,4)>=1001)*(--RIGHT($A$2:$A$10000,4)<=2000))
 と設定しましたが、VALUEとなりました。
 次に提案していただいた「=IF(ISERR(--RIGHT(A1,4)),"",1)」はどこに、どのように使えば
 よいのでしょうか。(たから)


 >下4桁が1001〜2000までのものをカウントしたいのです
 ならByさんの式がいいんでは?
 >A列に品番が入力されています
 の範囲を
 >=COUNT(INDEX(0/(INT((RIGHT(A1:A10,4)-1)/1000)=1),))
               ~~~~~~と置換えて見てください。
 (dack)


 すいません衝突しました。がそのままUPします。

 どなたもお忙しいようですね。
 ちなみにbyさんの教えてくださった式をどのように使用したのでしょうか。
 私はそちらのほうが気になります。
 気になったので試してみたら
 byさんの式であれば作業列も必要なく計算してくれそうですよ。
 式の内容は理解できてませんが・・・。
 SUMPRODUCTの式で行くのであれば空欄または文字列のみのセルがあるとVALUEとなるので
 ・・・。
 (肌)

 分かりました!
 Byさんのものは、キリキさんの作業列・・・というのとは、
 まったく別な考え方だということだったんですね?
 10とか、9とか出たのは結果だったと気が付きました。
 ありがとうございました!
 混乱を招くような書き込み申し訳ありませんでした。
 (たから)

 =COUNT(INDEX(0/(INT((RIGHT(A2:A1000,4)-1)/1000)=1),))としましたが、
 もうひとつお教えください。
 A列が1001〜2000の条件に加えて、B列が「T」の時。となるとどのような
 式になりますか?
 ANDを追加したり、色々やってみましたがだめでした。
 図々しいのですが、よろしくお願いします。(たから)


 =COUNT(INDEX(0/(INT((RIGHT(A2:A1000,4)-1)/1000)=1)*(B2:B1000="T"),))

 By

 スミマセン。
 =COUNT(INDEX(0/(INT((RIGHT(A2:A1000,4)-1)/1000)=1),))
 =COUNT(INDEX(0/(INT((RIGHT(A2:A1000,4)-1)/1000)=1)*(B2:B1000="T"),))
 上記2つとも同じ結果が返ってきてしまいました。(たから)


 括弧が足りませんでしたね

 =COUNT(INDEX(0/((INT((RIGHT(A2:A1000,4)-1)/1000)=1)*(B2:B1000="T")),))

 By


 えっと、、、
 時間がかなりたってしまったので、なんだか恥ずかしいのですが・・・
 
 >「1」の部分を、SUMPRODUCT関数で使用した条件のように追加してください。
 とは、SUMPRODUCT関数で使用していた数式
 =SUMPRODUCT((--RIGHT($B$2:$B$10000,4)>=1001)*(--RIGHT($B$2:$B$10000,4)<=2000))
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 の部分をIF関数に入れ込めば良いだけだったのですが。。。
 (数式を短くするために、範囲と数値だけ変えてます)
 
 =IF(ISERR(--RIGHT(A1,4)),"",(--RIGHT(A1,4)>1000)*(--RIGHT(A1,4)<2001))
 
 上記を合計すれば出来そうじゃないですか?
 
 (キリキ)(〃⌒o⌒)b

 Byさん、ありがとうございました。無事解決いたしました。
 お手数をおかけいたしまして、申し訳ありませんでした。

 キリキさん、たびたびありがとうございます。
 合計して、解決しました♪

 見守ってくださった肌さん、ありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.