- ベストアンサー
VLOOKUPの返り値を固定するには…
- VLOOKUPを使用して日付に基づいて売上を返すための表を作成している際、毎日のデータの変更に対応する方法を知りたいです。
- VLOOKUPを使用して日付に基づいて売上を返すための表を作成している際、日々のデータの消える問題を解決したいです。
- VLOOKUPを使用して日付に基づいて売上を返すための表を作成している際、返り値を固定もしくは値で返す方法があれば知りたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>返り値を固定もしくは、値で返るような方法があれば…と思い、質問させていただきます。 VBAの力を借りないと無理ですね。 シート上のセルに入力して、ボタンを押すと別のシートにデータが蓄積されていく といったことは業務上で頻繁に使うと思いますので、VBAの力を借りた一案です。 入力シート という名前の A2~C2セルに 日付、名前、金額を 入力したとします。 その隣に、ボタンを配置して VBエディターを起動 Sub ボタン1_Click() GYOU = Sheets("データ").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1 Sheets("データ").Range("A" & GYOU & ":C" & GYOU).Value = Range("A2:C2").Value End Sub を貼り付けてみてください。 エクセルのバージョンが記載してないので エクセル2010で説明すれば 開発=>挿入=>ボタンの配置=>新規作成でVBエディターを起動 といったながれっです。 縦方向に、日付と氏名が入ったデータが出来れな 希望の横方向に日付が入っているシートにそれぞれの金額を表示させるVlookup関数が簡単に作れます。
その他の回答 (4)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
- kmetu
- ベストアンサー率41% (562/1346)
別シートでも可ということなので 別シートに(11/1~11/30)の表を作成して B1から日付が横方向に A2から縦方向に氏名が 入力されているとします。 今入力しているシート(Sheet1として)にA1から下に 2011/11/1 a 100 2011/11/1 b 200 2011/11/1 c 300 2011/11/1 d 400 2011/11/1 e 500 2011/11/1 f 600 といった感じでデータを入力するようにして 別シートのB2に =SUMPRODUCT((Sheet1!$A$1:$A$100=B$1)*(Sheet1!$B$1:$B$100=$A2)*(Sheet1!$C$1:$C$100)) と入力 後はフィルしてみてください。
お礼
関数でもできるかもしれないんですね。 休み明けに、会社で試してみたいと思います。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
>返り値を固定もしくは、値で返るような方法 ⇒関数では出来ませんのでマクロ(VBA)組み込みになります。 因みに現在のデータ入力を日付順で縦方向に入力では駄目なのでしょうか。 データは縦方向に構成される方がデータの管理(エクセル機能のオートフィルタ、並び 替え等)し易い。 どうしても横方向したいのならば、月末に縦横を入れ替えるでコピーすれば済むのでは ないでしょうか。
お礼
VBAは、まだまだ勉強不足なので、これを機に少し勉強してみます。 ありがとうございました。
私も使ってますが、VLOOKUPにそこまでの拡張性があるかは疑問です。。 が、エクセルのマクロ(VBA)を使えばいけるでしょうから、回答がなければ、質問カテゴリーをプログラムのビジュアルベーシックにすれば回答があるかも知れません。
お礼
やっぱり、関数だけでは無理がありますよね…。 ありがとうございました。
お礼
今までVBAは難しいという先入観があって、なかなか試せずにいました。 これを機に、少し勉強してみたいと思います。 休み明けに試してみたいと思います。 ありがとうございました。