よろしくお願いします。
=IF(A2="","",SUMIF(al_25!B:B,IF(LEN(al_25!B2)=9,RIGHT(al_25!B2,4),A2),al_25!C:C))
上記の式につきまして、
al_25!B:Bの列は商品番号の列で書式は標準、内容は「4桁までの数字」と「0000-0000」形式(0は数字)があります。ちなみにal_25!C:Cの列は販売個数でこちらの書式も標準です。
商品番号は、たとえば下記の番号であれば「5526」が子番になり、「4485」は親番になります。
5526
4485-5526
先にお伝えしました式では「0000-0000」形式の値が抽出されません。
たとえば、昨年度、商品番号「5526」が5ヶ販売実績があり、「4485-5526」は23ヶ販売実績があるとすると、子番の5526の販売合計を28ヶとなるようにしたく考えています。
上記につきましてご教授いただけますと幸いです。
どうぞよろしくお願いいたします。
No.6
- 回答日時:
No5です。
連投失礼。
投稿してから、範囲指定が合っていなかったことに気が付きました。
最初の方の式を訂正しておきます。
正しくは以下です。
(2~20行目までを計算対象に指定)
=IF(A2="","",SUMPRODUCT((RIGHT(al_25!B2:B20,4)=A2&"")*al_25!C2:C20))
お教えいただきました式で正確な結果が出ました!
ただ、単にコピペしたのと、行数を2000行にしただけですので、理解が危ういです。お金もないのに高級自動車に乗るようなものです。ですので、現状はしっかりと理解できている身の丈に合った方法で行いたいと思っています。
>1行目がタイトル行等になって
1行目、項目が入っていました。
予めお伝えすべき点だったのに誠に申し訳ございませんでした。
>また、範囲を指定して計算することで、(列全体で計算するよりも)計算負荷を小さくすることができます。
そうなのですね。
私はてっきり最終行の値は、VBAのEnd(xlUp)みたく自動で判定してくれているのだと思っていました・・・
>=IF(A2="","",SUMPRODUCT(AGGRE
こちらの式に関しましては、、、
すみません、まったくお手上げで、私が手を出したらいけない式です。
追加のご助言をいただき、誠にありがとうございました!
No.5
- 回答日時:
No4です。
>お教えいただきました関数をためしてみましたが、#VALUE! が返されました。
多分、C列に数値以外のものが存在するのではないかと想像します。
(乗算を行っているので、数値化できないものがあればエラーになります)
ご質問文には記載がありませんが、1行目がタイトル行等になっていて、C列に文字列が入力されていたりはしませんか?
No4では(元の式がそうだったので)列全体での計算式にしてありますが、C列に数値以外のものがあるのなら、
=IF(A2="","",SUMPRODUCT((RIGHT(al_25!B2:B10,4)=A2&"")*al_25!C2:C20))
のように、対象となる範囲だけを指定するようにすれば算出できるはずです。
(空白セルは含めてもよいので、広めに範囲設定しておくことは可能です)
また、範囲を指定して計算することで、(列全体で計算するよりも)計算負荷を小さくすることができます。
どうしても、列全体を対象にしたければ、関数で数値以外を除くことも可能ではありますが、無駄な計算が大幅に増加するので重くなるのと、計算式が長くなるので視認性も悪くなります。
=IF(A2="","",SUMPRODUCT(AGGREGATE(15,6,(RIGHT(al_25!B:B,4)=A2&"")*al_25!C:C/(al_25!C:C<>""),ROW(OFFSET(A1,0,0,COUNT(al_25!C:C))))))
No.4
- 回答日時:
こんばんは。
ん~~・・、何をしたいのかよくわかりませんけれど・・
B列の値から該当するものを抽出して、そのC列の値の合計を求めたいってことと解釈しましたが・・
その割には、
>IF(LEN(al_25!B2)=9,RIGHT(al_25!B2,4),A2)
B2セルしか参照していませんけれど、B2セルが9文字ある場合は必ず検索キーはB2セルの後ろ4文字になりますけれど、そういうことをしたいのでしょうか?
ご提示の式では、B2セルが仮に「4485-5500」の場合には、A2セルの値が何であろうとも、検索キーは「5500」になると思いますけれど・・?
検索キーはあくまでもA2セルの値であって、B列がそのまま一致する場合と後ろ4文字が一致する場合と両方とも抽出したいってことではないのでしょうか?
例えば、結果を表示するシートのA2セルに「5526」がある場合に、B列が「5526」の場合も「4485-5526」の場合も両方抽出して合計したいってことではないかと思ったのですけれど・・
もしも、上記の推測で良いのなら、
=IF(A2="","",SUMPRODUCT((RIGHT(al_25!B:B,4)=A2&"")*al_25!C:C))
とかで、できませんか?
※ ご質問内容の解釈が違っている場合は、見当はずれなのでスルーしてください。
お教えいただきました関数をためしてみましたが、#VALUE! が返されました。私のお伝えすべきところが誤っているのは明確ですが、SUMPRODUCTというものを見、今、やや遠いところを眺めています。
>検索キーは「5500」になると思いますけれど・・?
そうですね; そこからが間違っていたのだと思われます。ちょっと頭を冷やしてから、お教えいただいたコードのひとつひとつを手繰って理解していければと思います。
ご回答ありがとうございました!
No.3
- 回答日時:
合計するための子番号「5526」はA2を参照しているということでしょうか?
そしてA2は数値なのか文字列なのか・・・
A2の数値を小番号として参照していると仮定して、
=SUM(SUMIFS(al_25!C:C,al_25!B:B,A2),SUMIFS(al_25!C:C,al_25!B:B,"*-"&TEXT(A2,"0000")))
こういう式ではどうでしょう?
ご教授いただきました関数を試させていただきましたところ、正確な値が抽出されました!
ただ、今回はシンプルな方法でいこうと思います。しっかり理解できていなければまたこういう事態に陥りそうですので。。。;w
この度はご回答誠にありがとうございました!
No.2
- 回答日時:
> 上記の式につきまして、
シートとか無いから、よくわからんですが。
子番の「5526」だけ抽出する作業列を作って、その作業列に対してSUMIFするのが良いと思う。
A B C
5526 5526 5
4485-5526 5526 23
B1:=RIGHT(A1,4)とか。
で、
=SUMIF(B1:B2, "=5526", C1:C2)
とか。
No1さんの回答を朝に見、すぐにこれだ!と思い、関数を分割しました。
後で他の方の回答を見させていただいたところNo2さんの仰られる方法でした;w
ちょっと列は変えましたが(あまり必要でなかったA列を削除、C列に4桁抜き出した商品番号列を追加)、集計のシートは下記のようで正確に値が抽出されました。
=IF(A2="","",SUMIF(al_25!C:C,A2,al_25!B:B))
ご回答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Visual Basic(VBA) VBAで質問があります 1 2022/10/19 10:32
- Excel(エクセル) エクセル count関数で出てきた数だけの行数をリンクで参照する 3 2022/08/10 12:02
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Excel(エクセル) VBA 複数ファイルの同じ項目を一行に合計したいです 4 2023/12/13 18:23
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
Excelの関数に関する質問です
Excel(エクセル)
-
“丸(〇/○/◯)”に似た文字…
Excel(エクセル)
-
-
4
曜日の 月 を (月) と表示させる方法について
Excel(エクセル)
-
5
エクセルのセル統合について
Excel(エクセル)
-
6
VBA(えくせる)ってなんでメンテできない人が多いんですか?
Excel(エクセル)
-
7
同じ型【ハイフンと数字】をぶつけて、イコールである事を証明する関数はありますか?
Excel(エクセル)
-
8
エクセルの関数でわからないことあるのでコード付きで教えてください
Excel(エクセル)
-
9
Excelの関数を教えてください。
Excel(エクセル)
-
10
IF関数
Excel(エクセル)
-
11
エクセルの条件式について
Excel(エクセル)
-
12
Excel関数の質問になります
Excel(エクセル)
-
13
Excelの関数で起きた現象の原因がわかりません。
Excel(エクセル)
-
14
Excelのテーブルでmatch関数の使い方について
Excel(エクセル)
-
15
重複データを抽出する式の説明をお願いします。
Excel(エクセル)
-
16
式の解読のお願いm(_._)m
Excel(エクセル)
-
17
数値から名前が作成できなくなっているッ!?
Excel(エクセル)
-
18
Excelでの頻度計算
Excel(エクセル)
-
19
アルファベット順にソートする方法を教えてださい
Excel(エクセル)
-
20
1行目のデータ(A1:G1)をコピーして、2~49999行へ貼り付ける効率的な操作方法は?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの複数条件下での標...
-
【スプレッドシート】指定の日...
-
エクセルで年月の合計の関数を...
-
SUMIFとCOUNTIFを合わせたよう...
-
エクセルで角度の計算できますか?
-
Excelの表以外が暗い?
-
エクセルにて「週」から日付を...
-
隣のセルに入力したら自動的に...
-
EXCEL 経過年数の平均を求めた...
-
ある一定時間を超えた場合の超...
-
エクセルで、一つのセルに二つ...
-
自動日付入力方法
-
Excel:月またぎを含む日数の差...
-
エクセル シフト表 6連続勤...
-
エクセルで「ぶら下げ」書式を...
-
複数連続した列幅や行高を一発...
-
列の総当たりチェックの方法
-
エクセルで条件に当てはまる曜...
-
VBAで条件付き書式を設定
-
エクセル 重複行色付(VBA)に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
エクセルでの複数条件下での標...
-
エクセルで年月の合計の関数を...
-
【スプレッドシート】指定の日...
-
ある一定時間を超えた場合の超...
-
EXCEL 経過年数の平均を求めた...
-
スプレッドシート、Excelでの数...
-
エクセルにて「週」から日付を...
-
Excelの表以外が暗い?
-
エクセルで角度の計算できますか?
-
Excelにいついて質問です。
-
隣のセルに入力したら自動的に...
-
エクセルで「ぶら下げ」書式を...
-
エクセルで、一つのセルに二つ...
-
EXCEL 年月表示をするVBAを教...
-
Excel:月またぎを含む日数の差...
-
エクセル シフト表 6連続勤...
-
vbaで「/」を削除したい
-
excelでの文字を隠す方法
-
SUMIF関数の結果が0になってし...
おすすめ情報
皆さま、ご助言ありがとうございます!
すべての回答をまだ見れていませんが、No1さんのアドバイスを見て衝撃が走りました。。。
そうです、単に列を増やし、=RIGHT(任意のセル, 4)だけで良かったです。
そして、SUMIFの指定範囲を変更するだけで。。。
エクセル関数、かつてはwebを見て自分なりに色々考えたり、うまくいかなければ式を細分化してひとつひとつの値を確認したりしていたのですが、最近は完全にAIに頼り、怠慢になって、今回、そのAIの助言がまったくうまくいかずムキになって大切な基本を完全に忘れておりました。2時間くらいはAIと押し問答を繰り返していたと思います;w 急がば回れ、が身に沁みました。
他、皆さまからいただいた式を試してみたく、また理解したく思いますが、
取り急ぎの御礼までにて失礼いたします!