例年この時期に必ず苦労して困っています。質問させてください…
毎年毎年、販売個数を出すのに列を削除する方がいて、ミスが起きたり作り直しとか大変でとても困ってます。
列を削除してもSUMproductの関数がつかいたいのですが、
=SUMPRODUCT($C$3:(ADDRESS(3,(MATCH("枚数"),0)-1),1),C4:(ADDRESS(3,(MATCH("枚数"),0)-1),4)))
みたいな感じで考えて見たのですがエラーメッセージでお手上げです…
どうにか個数と書いたの手前の行までの掛け算をする数式ができないでしょうか
よろしくお願いします!
No.11ベストアンサー
- 回答日時:
又 訂正です、
=SUMPRODUCT(INDIRECT("C3:"&ADDRESS(3,MATCH("枚数",INDIRECT("C3:Z3"),0)+2)))
何度も 申し訳ない、
こっちですね。
そして応用編が、
=SUMPRODUCT(INDIRECT("C3:"&ADDRESS(3,IFERROR(MATCH("枚数",INDIRECT("C3:Z3"),0),COUNTA(INDIRECT("C3:Z3")))+2)))
此方は、
もし "枚数"記載列をも、
削除してしまっても、
まあ 取り敢えずは、
エラーには ならない、
式です。
確認くださいね。
後、
解説を ご所望に、
なられる場合は、
そう、
お申し付けくださいね。
追記、
いゃ〜、
楽しませて 頂きました、
久々に、
頭が 回る、
噛み応えの ある、
課題でした、
いい課題を 有り難うです。
感動的です…!後で質問文を見直してみて何がおかしというと質問文が一番おかしいという失礼な事をしてしまった中、
たくさんの答えを出していただきありがとうございます!!
出来ました!
indirectの関数の使い方、全く理解してなかったです。
本当にありがとうございました!
とりあえず出来ましたが、応用編も研究してみようと思います!
No.10
- 回答日時:
しかし 此のままだと、
C列か、Z列の、
削除に 伴い、
エラーが 出たり、
検索範囲が 縮まったり、
する、
と いう事ですね。
ならば、
=SUMPRODUCT(INDIRECT("C3:"&ADDRESS(MATCH("枚数",INDIRECT("C3:Z3"),0),3)))
ですかね?
確認くださいね。
No.9
- 回答日時:
2019/04/20 13:24 の補足に対する返答です。
>シートの列保護ですが、目安を印刷したい理由で保護を解除して列を減らして印刷とかもあったので
(´・ω・`)
列を「削除」するのではなく「非表示」にすれば良いだけですよ。それ。
または印刷する場合は別のBookとして保存し直してから列を削除するようにルールを作る。
なんでそんな理由で責任を負う必要があるのか、自分には分からない。
関数やマクロが少しできるから対応してみようと思うのは悪いことではありません。
でもそこで考えて欲しい。
根本的に何が間違っているのか。そしてどうすれば解決できるかを。
No.7
- 回答日時:
舗装 頂いた、
内容を、
素直に 其のまま、
読めば、
=SUMPRODUCT(OFFSET(
$C$3,0,0,1,MATCH("枚数",$C$3:$Z$3,0)))
ごうですかな?
No.6
- 回答日時:
こんにちは!
関数でどうしても列削除に対応したいのであれば、
INDIRECT関数を併用すればできそうですが、お示しの数式ではエラーになると思います。
具体的な配置がどのようになっていて、どのような処理をしたいのか?が判れば
少しはお役に立てるかも・・・m(_ _)m
No.5
- 回答日時:
VBを 学ぶのと、
VBAを 学ぶのとでは、
意味合いが 全く、
違います、
機械語と 高級言語程の、
差が あるのですから。
そして、
VBAを 学ぶという事は、
シートを 知り尽くす、
と いう事であって、
質問者が 仰られる、
此は、
其の内の 基礎的な、
最たるもの。
故に、
ヤジ内容は 不当ですよ?
さて、
MATCH("枚数")
此が どうにも、
解せません、
此の部位で、
望み通りの 列位置を、
知り、
指定したいものと 思うのですが、
名前定義でも 無さそうですし、
構文構造からも 外れていますよね、
因みに 本筋なら、
MATCH構文は、
MATCH(検索指標値,検索範囲セルアドレス,0)
等々と 書きますよね?
又、
MAX(INDEX((検索指標値=検査範囲セルアドレス)*COLUMN(検査範囲セルアドレス),"")
等とも 書きますよね?
因みに 後者なら、
途中列を 削除しても、
エラーは でなかったと、
思いますが、
作成意図は、
どの様な ものだったのですか?
抑も、
アドレス構文でも、
まあ 良い訳ですが、
しかし、
二回 持ちいないと、
セル範囲指定が 出来ませんよね?
此を 例えば、
Offset構文等に すれば、
位置算定等を 除けば、
1構文で 済みますよね?
兎に角 此のままでは、
ご意図が 伝わってきませんので、
ご意図の 解説を、
お願い できますか?
No.4
- 回答日時:
式の中身を個別に確認してみては。
ADDRESS関数の行列指定は正しいのでしょうか?
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
MATDH関数の指定で列を取得できているのでしょうか?
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
SUMPRODUCT関数でのエラーの原因を探すほうが先だと思います。
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
タイムスタンプとテキストから...
-
シートの情報を別のシートへま...
-
マクロの処理が遅くなった
-
Excelでの文字色
-
ワークシートに出現したこの画...
-
EXCELの散布図で日付が1900年に...
-
OFFSET関数を使用したいのです...
-
エクセルでファイルの最終更新...
-
エクセルの文字が途中から消える
-
エクセルデーターから必要な項...
-
Excel 大小比較演算子による「...
-
SUBTOTALは、参照された数字で...
-
エクセルの数式バーのフォント...
-
エクセルの「条件付き書式」を...
-
Excelについて教えてください。...
-
エクセルVBA 月の中で、月~土...
-
Excelの数字の前に入っている空...
-
Excelの関数について このよう...
-
セルの数を求めたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報
すみません、個数と書いたつもりが枚数になってました。
そしてカッコの数はおかしいかもしれないです。
色々不足があって申し訳ないです。
関数に詳しいわけでもなく初心者なので、
エクセルヘルプを参照しながら何とか考えた次第です。
そしてMATCHの("枚数",$C$3:$Z$3,0)と書いてあったはずが…何故かこんな風に変わっていました。申し訳ございません
色々不足があって申し訳ないです。
もちろん関数に詳しいわけでもなく初心者なので、
エクセルヘルプを参照しながら何とか考えた次第です。
そしてMATCHの("枚数",$C$3:$Z$3,0)と書いてあったはずが…移動中に打ってたら何故こんなことに…。申し訳ございません。
offset関数も考えたのですが、難しくて"枚数"の位置と一致させれないかな…そしてその一つ前の列まで金額が入っているのでその列の位置をaddressで出して
SUM productにの配列の指定に組み込めないかと思っていた次第です…
addressとMATCHを使ったところでは予定通りの$Y$3とY4のアドレスをゲット出来ていたのですが…
そうなのです。
SUM productがおかしいです
=SUMPRODUCT($C$3:(ADDRESS(3,(MATCH("枚数",$C$3:$Z$3,0)-1),1),C4:(ADDRESS(4,(MATCH("枚数",C4:Z4,0)-1),4)))
と元々つくってSUMproductの配列の指定に失敗しています…。
C3からの3行目に金額が入っておりそのラストが枚数と書いてあるので、
その一つ前のセルのアドレスを指定したらいいのでは?と思ってやって見たのです。
そして、シートの列保護ですが、目安を印刷したい理由で保護を解除して列を減らして印刷とかもあったので
それで解決できていない現状です。
質問する時にエラーが出てしまい、直しているうちにおかしな事をしていたようです。
申し訳ございません。