アプリ版:「スタンプのみでお礼する」機能のリリースについて

シート1に、A2 日付、B4商品名、D:H列 各店舗名
他シートに、1日ごとの日付いりシート(1日、2日、3日、・・・)
シート1のA2 日付、B4商品名をプルダウンで選択し、各店舗の箇所に数値入力をしたら、日付入りシートにその数値が入るようにしたい。
シート1と日付入シートは同じ仕様。
シート1は入力用、他の日付シートは入力した数値の参照用にしたいです。
関数でできますか?

A 回答 (3件)

https://oshiete.goo.ne.jp/qa/11775520.html  質問者:hirotukasi  質問日時:2020/07/18 23:32
No.2  回答者: mike_g 回答日時:2020/07/19 06:46
この回答へのお礼  回答ありがとうございます。  今後は質問をしっかりできるよう努めてまいります。
この回答へのお礼  おかげさまで解決することができました。         お礼日時:2020/07/19 22:36

https://oshiete.goo.ne.jp/qa/11775445.html 質問者:ヒロツカ 質問日時:2020/07/18 23:00
御丁寧に教えていただきありがとうございました! 解決することができました。 お礼日時:2020/07/19 19:22

この2つの質問と似た質問が、今回の質問でしょうか。

① シート1は、A列に日付、B列に商品名、D:Hに各列の店舗に納入すべき数量を入れる構造になっている
② シート1のA列はA2セルだけ、B列はB4セルだけ、そしてD:H列も4行目だけを使用する
③ シート1に入れたデータを元データとして、別の日付別のシートにデータを写したい
④ 日付別のシートはあらかじめ作ってある
⑤ 日付別のシートは、A2セルに日付、B列に商品名、D:Hに店舗名が入る構造になっている
  B列と、D:H列の3行目は列見出であり、実際のデータは、4行目以下に入れる構造になっている
❻ ③シート1にデータを入れ終わったら、⑤各日付シートの4行目以降の空いている行に、シート1のデータを写す
❼ ❻を繰り返して、⑤各日付シートの納入品目と店舗別の一覧表を完成させたい

関数というのは、例えば、f(x)を xが半径で、f(x)が円の面積を出す関数の場合、xが変わるとそれを必ず反映してf(x)も変わるというものです。
https://oshiete.goo.ne.jp/qa/11775445.htmlのNo.3の回答の indirect()関数でも、C9の値が別の値になったり、空白になれば、F9の値は同時に反映されて変わります。 関数の参照元のセルや範囲があるシートと、関数の参照先のセルや範囲があるシートが別のシートでも、同じです。

❻で、③シート1にデータを入れ、⑤各日付シートの4行目以降の空いている行に、シート1のデータを反映させて、
その後に、③シート1にデータを入れるか、値を変更や削除をすれば、先ほど反映したところが、今回も反映してしまいます。  
ですので、❼にはならないのです。
No.1の回答者、No.2の回答者も、そのことを書かれています。

《③シート1にデータを入れ、⑤各日付シートの4行目以降の空いている行に、シート1のデータを反映させた》ところで、もはや③シート1のデータの変更があってもそれ自体は⑤各日付シートには影響が起きない状態にして、【一旦処理を完了とし、改めて】、《③シート1のデータを変更し、それを反映させる》ようにしないとなりません。

【一旦処理を完了とし、改めて】のときに、worksheet関数自体を書き改めるという方法もありますが、普通は、そうした方法をとらず、反映させるのはworksheet関数の機能を使わずに、処理手続きを行うことで目的を達します。 それを「マクロを使う」と簡単にいうことが多いです。
《⑤各日付シートの4行目以降の空いている行に、シート1のデータを反映させる》処理手続きをマクロで書いて、適当なタイミングでマクロを実行させるのです。

なお、現実的なことを考えると、この処理には考慮すべき問題点があります。
一度、{《③シート1にデータを入れ、⑤各日付シートの4行目以降の空いている行に、シート1のデータを反映させた》ところで、もはや③シート1のデータの変更があってもそれ自体は⑤各日付シートには影響が起きない状態にして}とやると、それで日付シートの側に転記されたところが固定状態になってしまうのです。 (8月15日商品Bを甲店舗に13個)と15日のシートに固定してまい、24個に変更できません。一度確定した後から、後から、 (8月15日商品Bを丙店舗に7個)(8月15日商品Aを甲店舗に6個)(8月15日商品Gを丙店舗に34個)と何度も追加したくなったとき、後になって、(8月15日商品Aを甲店舗に6個)は(8月15日商品Aを丁店舗に6個)の間違いだったという場合の扱いがあり得るのか、など、業務処理の流れなどを考えないと、処理が決められません。

単純な考え方をする場合は、次のような方法が考えられます。
(シート1のデータをそのままに日付シートに反映転記する方式)をとらず、シート1は(全入力データの記録でそのままに残す。A列の日付はA2ではなく、各行のデータごとに入れ、そのまま残す。どのような入力をしているのかシート1をみれば履歴が分かるようにしておく。各商品の各店舗への納入すべき数量は、入力の際に参照する帳票のままとする。追加、抹消、数量変更、納入先店舗変更なども、別の行で行うようにする)、シート1は2000行になろうが、13000行になろうが、構わない。もはや期日が過ぎて、絶対に今後みることも利用することもない日付の行だけは、行削除する。 
そのようにできている(入力や行削除された)状態のシート1を元データにして、各日付別のシートに(データを整理した状態で集計し、並べ替えて、転記する ⇒ 結果として、最新状態の日付別の各店舗配送商品数量一覧表ができる)

マクロとしてはそれほど難しいものではないですが、利用者がその仕組みを理解してないと、うまく使えません。

関数でやろう!、関数を利用すればできる!と思っているようだと、難しいかもしれません。
仕事の流れを理解し、その流れの中で、エクセルを位置づけることができれば、同僚か専門業者に依頼するのが良いと思います。
    • good
    • 0
この回答へのお礼

ご丁寧な回答ありがとうございます。
とても参考になりました。

お礼日時:2020/08/12 23:07

>関数でできますか?


常にシート1のA2セル、B4セルに上書きして入力をするという事でよろしいでしょうか。
ならば関数ではできません。
マクロを使うことになります。

自分で作れないのであれば、会社の同僚か専門業者に依頼する案件ですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
参考にさせていただきます。

お礼日時:2020/08/12 23:08

シート1は入力用で、毎回データを消しては入れるということでしょうか?


それでしたら関数ではできないです。

フォーム機能をお調べになっては?
    • good
    • 0
この回答へのお礼

一度機能の確認もしていろいろ勉強していこうと思います。
ありがとうございました。

お礼日時:2020/08/12 23:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています