電子書籍の厳選無料作品が豊富!

こんばんは。
今エクセルであることを試みていますが、
知識が足らず皆さまの力を借りたいと思ってのご相談です。

今エクセルの内容は入力フォームシート、
1月、2月、3月、4月…のシート
最後に1月~12月までの集計をするシート
という風に用意してあります。


やりたいことは入力フォームシートで
他シートからのデータの参照をしながら、追記させたいということです。


現在、1月~のシートでは商品の管理をしています。
A~D列までがID、番号、商品名、カナでデータの格納を各々でしており、
E~Fまでは空欄になっています。

空欄には入力シートで入力の都度、その納品があったかどうかを示す文字列を
E列から順に書き込むという風に考えています。
(入力シートで先に入力した値があり、E列に既に値が入っていたら、
次のF列に書きこみ、更にあればG…という風に反映させたいです)

入力フォームでID(A列になります)を入れると、
それに該当する商品名などのデータ(B~D列までの値)を
1月などのシートから自動で引っ張って来るようにし、
E列に用意したプルダウンで引っ張って来るシート名(1月などの)を確定。
(できれば…なんですが、ID入れた時点でD列までのカナは習得できたら尚いいです…)

そして更に入力フォームの最後の列、F列に新しく入れた値を
プルダウンで選んだシートのE列に入れる(上記に説明した感じにです)
という風に反映できないかと思っています。

※集計シートは1月~のシートの総計なので、今のところなんとか出来てます。

なので、シート名などは変数になるのでは…と思っています。
こういう場合、どういう記述をしたら良いのでしょうか?

また、こういうことを実現するのは可能でしょうか?
マクロ(触ったことないです)を使わないと実現できないことでしょうか?
今扱いきれないので、なんとか普通の関数などで実現したいと思っています。

皆さまの知恵を借りたいです。回答よろしくお願いします。

A 回答 (3件)

No2の方と同じ意見ですが、シート構成を根本から見直す時期になった


と考えてください。
パソコンの操作やエクセルの機能で考えてみてください。
マウスの中央のホイールを操作するとデータは上下に移動します(左右には移動しません)
オートフィルターやピボットテーブルも縦方向のデータにしか使えません。

1、データは一枚のシートに日付の項目と一緒に入れていきます。
2、データはひたすら縦方向へ入れていくようにします。
3、データは年がかわってもファイルを増やすことなく、ひたすら一つにまとめます。
これらがルールだと思って下さい。
そうすると集計・グラフ作成・分析が簡単にできるのです。
>今エクセルの内容は入力フォームシート、
>1月、2月、3月、4月…のシート
入力フォームのシートにひたすら縦方向にデータを入れていきます。
 日付 ID だけでも大丈夫かと
>(入力シートで先に入力した値があり、E列に既に値が入っていたら、
>次のF列に書きこみ、更にあればG…という風に反映させたいです)
この横方向に広がるデータの増え方はやめます。
>やりたいことは入力フォームシートで
>他シートからのデータの参照をしながら、追記させたいということです。
マクロの機能を使わないと実現できない項目です。

察するにですが ひとつのIDである商品の発注があり、それが複数回に分けられて納品されるケース
として考えました。
商品名の一覧がはいったシートを準備
 A  B   C
番号 商品名 カナ
・・・・

新規発注入力フォームのシートにマクロボタンをひとつ配置
 各セルに IDと番号、発注数量を入れます。
(必要であれば 作業者名とか 新規 とか項目を増やしてもよいでしょう)
 別のセルに 商品名とカナが表示されるように Vlookup関数を配置します。
ボタンを押すと データのシート
 A 日付 ID 番号 数量
の一番下にデータが追加される様にします。

更に 納入入力フォームを準備し、同様に ボタン配置
 あるセルに IDと納入数量(仮に 納入の場合は 数量を -で入力) をいれます
 別のセルに 番号と商品名とカナが表示されるように Vlookup関数を配置します
発注入力のボタンを同じで、ボタンを押すと データのシート
 A 日付 ID 番号 数量
の一番下にデータが追加される様にします。
これで、いつ、何が、いくつ、どうしたか が判別できます。
あとは ピボットテーブルやフィルターオプションの機能をつかって
ID別に集計したり
日付の範囲を設定して集計したり、月別に集計して表示するシートを考えてみます。
実はこの様にデータがひとつのシートに縦方向に並んでいると
簡単に希望のデータや抽出や集計・グラフ化などが可能になります。
また、年をまたいでも使えますので
年単位の集計も可能になるということです。
    • good
    • 0
この回答へのお礼

お返事が遅くなりました。

まとめてのお礼になりますが、No.1~3までの皆さま回答ありがとうございました。

とても参考になりました。こちらで得た回答をもとにがんばってみます。

お礼日時:2011/06/28 00:27

入力用のシートも作らず、かつ、月別に分けずに


直接入力してしまうのが最も時間がかからなそう。

VBAを使わないならMS-ACCESSを使うといったところかなぁ

マクロは当方の技量では、作成にとても時間がかかりそう。
とても、回答できるレベルでもないし。。。

普通の関数では、実現不可。
変わった関数でHYPERLINKがあるが、直接入力にする仕様に変わりないので、
結局、関数では実現不可。IDを入れたら、その入力されている行までジャンプさせることができる。
また、ジャンプ→編集後、[Alt]+[←]で戻ることも可能。

シートを分けずに入力すれば、オートフィルタでの抽出やピボットテーブルでの集計。
検索/行列関数での月別分けなど、比較的単純な関数や機能で対応できる。

シートを一つにまとめるときは、シート名の列(1月、2月・・・)を加えること。

あとは、どこまで仕様の変更を許せるかってとこですね
    • good
    • 0

この質問は、文章ばかりで、聞いていることを読者は理解しにくいと思う。


いっそのこと思い切って、3シートにして、シートとそのセルデータのデータ例をあげて
、人手でやることにして、人間の思考過程(特にセルの選択判断など)を図(データ)と文章と
で表現すべきだ。
関数は式を入れたセルで、他セルデータをうけて演算などして、式を入れるセルに結果をセットする
が、受身的で、そのため式が難しくなる場合がある。
セットするデータが浮動的な場合など、トリッキーな式を考える必要がある場合がある。
多分>excelの関数で変数みたいなものって、データの在る最終行の次の行にデータを
人間のセル選択判断や入力無しに入れたいのかな?
==
一般論として、エクセル関数では、変数を使えない。だから苦労する。
VBAを勉強すれば、その点は自由になるので、次の処理にデータを渡したり
セル番地を指定して、データをセットできる(セルに投げ込むイメージ)。
ーー
ただし配列数式というのがあって、ここでやっているのは、変数的な一時記憶領域の使用を
推測させる仕組みである。
ーー
>excelの関数で変数みたいなものって使えますか?
なんて一般的な発想をして、質問するのは、速すぎると思う。標題が一般化しすぎて適当でない。
エクセルを相当使って、考えた末に考えるべき課題だし、VBAをやれば、その違いが判るように
なると思う。
それより、今回実現したい問題に絞って、データの図示の力を借りて、読者への説明に
力を注ぐこと。
    • good
    • 0

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