プロが教える店舗&オフィスのセキュリティ対策術

現在、毎日の売上表のようなものを作ろうと思っています。
表は、次のようになります。

A1…日付、B…氏名、C…売上 が入っています。

その下(別シートでも可)に、縦に氏名、横に日付(11/1~11/30)の表を作成して
A1の日付の売上(C)を、合致する日付の列にVLOOKUPで返します。

その場合、A1の日付とC(売上)を、毎日変更して反映させたいんですが、前日の
データが消えてしまい、困っております。

毎日、返り値をコピーして値にして貼り付ければいいのでしょうが、返り値を固定
もしくは、値で返るような方法があれば…と思い、質問させていただきます。

以上、よろしくお願いいたします。

A 回答 (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関数が簡単に作れます。
「VLOOKUPの返り値を固定するには…」の回答画像5
    • good
    • 0
この回答へのお礼

今までVBAは難しいという先入観があって、なかなか試せずにいました。
これを機に、少し勉強してみたいと思います。
休み明けに試してみたいと思います。
ありがとうございました。

お礼日時:2011/11/12 20:43

イマイチ理解できていない部分がありますが、たたき台として


C2セル =INDEX(B7:E9,MATCH(B2,A7:A9,0),MATCH(A2,B6:E6,0))

D2セル
=IF(DAY(A2)=1,"先月",INDEX(B7:E9,MATCH(B2,A7:A9,0),MATCH(A2,B6:E6,0)-1))

添付図参照
「VLOOKUPの返り値を固定するには…」の回答画像4
    • good
    • 0
この回答へのお礼

休み明けに、一度試してみたいと思います。
ありがとうございました。

お礼日時:2011/11/12 20:41

別シートでも可ということなので



別シートに(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))
と入力
後はフィルしてみてください。
    • good
    • 0
この回答へのお礼

関数でもできるかもしれないんですね。
休み明けに、会社で試してみたいと思います。
ありがとうございました。

お礼日時:2011/11/12 20:38

>返り値を固定もしくは、値で返るような方法


 ⇒関数では出来ませんのでマクロ(VBA)組み込みになります。

  因みに現在のデータ入力を日付順で縦方向に入力では駄目なのでしょうか。
  データは縦方向に構成される方がデータの管理(エクセル機能のオートフィルタ、並び
  替え等)し易い。

  どうしても横方向したいのならば、月末に縦横を入れ替えるでコピーすれば済むのでは
  ないでしょうか。

 
    • good
    • 0
この回答へのお礼

VBAは、まだまだ勉強不足なので、これを機に少し勉強してみます。
ありがとうございました。

お礼日時:2011/11/12 20:36

私も使ってますが、VLOOKUPにそこまでの拡張性があるかは疑問です。



が、エクセルのマクロ(VBA)を使えばいけるでしょうから、回答がなければ、質問カテゴリーをプログラムのビジュアルベーシックにすれば回答があるかも知れません。
    • good
    • 0
この回答へのお礼

やっぱり、関数だけでは無理がありますよね…。
ありがとうございました。

お礼日時:2011/11/12 20:35

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