下記のエクセル表があります。
B列は商品番号でセルの書式設定は0000を設定しており、C列は数値です。
F2セルは検索対象を入力するセルで、こちらの書式設定も0000を設定しいます。
4桁の商品番号は小番なしの商品番号で、
0000-0000形式の商品番号は「親番号-子番号」という内容で、集計に必要なのは子番号です。
(------)B列 C列
(1行目)商品番号 販売個数
(2行目)1786 3
(3行目)1789 3
(4行目)0019-0019 2
(5行目)0019-0599 2
(6行目)0906 1
-----------------------
F2セルは商品番号を入力。0000-0000形式の商品番号であれば下4桁のみを入力する。
-----------------------
そこで下記の式を入力すると4桁の商品番号の集計結果は正常ですが、0000-0000形式の集計は常に「0」となります。
①=SUMIF(B:B, F2, C:C)
次に下記の式を入力すると、反対に、0000-0000形式の集計結果は正常ですが、4桁形式商品番号の集計結果は常に「0」となります。
②=SUMIF(B:B, "*" & TEXT(F2, "0000"), C:C)
先日、この件を質問させていただき、配列をうまく利用すればうまくいくよとアドバイス頂いたのですがうまくいかず、というより理解できず;、ですので、①②の結果は正常なので、IFで分岐させればいいのではと考え(→IF(ISNUMBER(SEARCH("-",B1)),"ハイフンあり","なし"))、次の式を考えたのですが正常な結果を示しません。4桁の商品番号の集計は正確ですが0000-0000形式の商品番号は常に「0」です。
=IF(ISNUMBER(SEARCH("-", B2)), SUMIF(B:B, "*" & TEXT(F2, "0000"), C:C), SUMIF(B:B, F2, C:C))
そこでハイフン検索がうまくいっていないかと考え、下記の式でためしたのですが、結果は正常で、ハイフンがある場合はtureを返します。
=IF(ISNUMBER(SEARCH("-", B1)), "ハイフンあり","ハイフンなし")
結果が正常でないためどこかに誤りがあるのは明白ですが、
上記につきましてのご指摘がございましたらご教授いただけますと幸いです。
以上、よろしくお願い申し上げます。
No.3
- 回答日時:
商品番号を文字列にしてしまえば、シンプルになります。
・B列とF2セルのセル書式を、文字列にする。
・G2セルの式に「=SUMIF(B:B,"*"&F2,C:C)」を設定。
No.2
- 回答日時:
B列の表示形式は、ハイフンを含むセルが文字列扱いなので、
0000だと正しく認識されません。
0000;;;@のように文字列に対応する設定にします。
(これならロケールの問題は発生しません)
複雑な式にするよりも、B列を対象にした作業列を用意して、
文字列として取り出して検索対象にしたほうが簡単です。
例えばD列に
=RIGHT(TEXT(B2,"0000"),4)
でオートフィルして文字列としての4桁を出します。
この作業列を範囲にすることで、①の式が有効になります。
=SUMIF(D:D,F2,C:C )
現時点、下4桁を抜き出したD列で仰せのように処理しておりましたが、0000;;;@ という方法は知りませんでした。
アドバイスありがとうございました!
No.1
- 回答日時:
一つ確認ですが、例えば0019-0019だと、表示形式はどのように設定していて、そのセルを選択すると数式バーにはどのように表示され
ているのですか?ご回答ありがとうございます!
B列を全選択して書式は「ユーザー定義」で0000を設定していたはずなのですが、今確認すると、「その他」のCondigo Postalというものになっていました。
再度B列を選択し「ユーザー定義」で0000を設定しても「その他」のCondigo Postalのままです。
この件につき今調べると直しようがないとの記事がありました。
エクセルは2019を使用しています。
https://oshiete.goo.ne.jp/qa/3100208.html
0019-0019のセルを選択した数式バーは「0019-0019」に表示されており、
1786のセルを選択した数式バーは「1786」でそのままです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急お願いいたします! ゆう...
-
フリーダイヤルのけた数
-
同じ商品なのに、JANコード...
-
電話番号 +817673467911という...
-
電話をかけるのに、違う番号を...
-
内線番号一覧が分かりづらい
-
携帯番号変える時は、それなり...
-
セキュリティワイヤーが解錠出...
-
81・・・・・から始まる電話...
-
0120613184は、どこの番号です...
-
MNP有効期限を偽って申し込みす...
-
覚えやすい電話番号がほしいの...
-
1から5までの番号が1つずつ書か...
-
固定電話着信履歴 181 ・・・・...
-
50で始まる電話番号について質...
-
銀行で番号札は?
-
すべて「ひとつ・・・」ではじ...
-
【至急】パワーポイント!配布...
-
モバイルsuicaを持っており、 ...
-
エクセル ADO Filterでは一気...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
電話をかけるのに、違う番号を...
-
至急お願いいたします! ゆう...
-
同じ商品なのに、JANコード...
-
P/Nとは?
-
電話番号 +817673467911という...
-
フリーダイヤルのけた数
-
固定電話着信履歴 181 ・・・・...
-
81・・・・・から始まる電話...
-
999で始まる電話番号から着信が...
-
if関数を使って割引率をだす
-
FAX番号の英語表記とは?
-
MS Wordで図表番号を1から振り...
-
1から5までの番号が1つずつ書か...
-
携帯番号変える時は、それなり...
-
すべて「ひとつ・・・」ではじ...
-
学籍番号の下一桁
-
不気味な番号
-
銀行で番号札は?
-
セキュリティワイヤーが解錠出...
-
内線番号一覧が分かりづらい
おすすめ情報
AIさんに聞いてだいたい分かりました。
そうですよね「IF(ISNUMBER(SEARCH("-", B2)),」ではB2だけを判定としているため、B2の値がfalseならあとは全部falseで処理されますよね。。。
VBAであれば簡単に処理できそうですがVBAを使用するほどではないので、
やはり今しているようにD列に下4桁を抜き出して集計するようにします。
taglet様のお教え頂いた方法で目的がいろいろと達成できそうです。
本日でこのスレッドは終了しますが、それまでで何か知っておいたほうが良いという情報がありましたらお教えいただけましたら幸いです。
ご回答いただきました皆様、誠にありがとうございました!
色々考え、やはり最初にしていたようにD列に下4桁を抜き出し、それを対象にしていこうと思います。数値のほうがいろいろ都合がよさそうですので。
皆様この度はありがとうございました!
今回はmike32様の方法でいくことにしました。
その方法で問題ありませんでした。
if分岐がダメで、片方づつの集計が合ってるのであれば足せばいいだけという点は盲点でしたし、単純なことこそ盲点になるものだと改めて痛感しました。他にもいろいろ当てはまりそうです。
皆さまありがとうございました!