いつもお世話になります。
エクセル勉強不足なのか行き詰ってしまったので、みなさんのお知恵を借りたいです。

sheet1に下記のような入力シート作成しました。(例)

  A   B    C        D
1 曜日 日付   出発メーター  帰社メーター
2 月  08月1日  1000      1500
3 火  08月2日  1500      1900
4 水  08月3日  1900      2500
5 木  08月4日  2500      3000
6 金  08月5日  3000      3500
7 土  08月6日  3500      4000

sheet2には期首からの曜日と日付が上記の内容と同じで、1年間作成してあります。

    A   B       C     D
1   曜日 日付   出発メーター  帰社メーター
2   月  08月1日  
3   火  08月2日  
-----------省略----------------- 
365 金  07月30日  
366 土  07月31日  

この状態でsheet1のB2:B7間の値とsheet2のB2:B366の値が完全一致したら、sheet2のC2:C366とD2:D366に値を返す事をしたいです。
sheet1が入力フォームでsheet2が表みたいな使い方をしたいのです。

これの関数教えてください。補足必要なら言って下さい。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

まず、関数一発ってのは難しいと思います。



VBAやマクロが使えるなら
入力シート側に 1週間の分の最初の日を入力させて
メーターの値を入力したら 記入 みたいなボタンでシート2へ転記させる形になるかと思いますが、どうでしょう?
    • good
    • 0
この回答へのお礼

遅くなってすみません。VBA必要かなとは思っていましたが、やはりその通りみたいですね。今勉強中で思うように進んでいません。これから精進して取り掛かります。色々関数組んでしてみましたが、ややこしくなり過ぎて思うように動かなかったのが実情です。今回入力フォーム使いたかったのでVBAでいこうと思います。回答ありがとうございました。

お礼日時:2006/08/08 11:43

こんにちは。



 sheet2のC1に「=VLOOKUP(B1,Sheet1!B:D,2)」
 と関数を入れて見たらどうですか。
 この関数の意味ですが、「B1」の値を範囲「sheet1!B:D」の1列目から検索し、一致した行の「2」列目の値を返す、というものです。
 同様にsheet2のD1には「=VLOOKUP(B1,Sheet1!B:D,3)」
 とします。
 C2,D2以降はセルのコピーでいけると思います。

では。
    • good
    • 0
この回答へのお礼

遅くなってすみません。教えていただいたように関数組んでしてみましたが、自分にはややこしくなり過ぎて思うように動かなかったのが実情です。今回入力フォーム使いたかったのでVBAでいこうと思います。回答ありがとうございました。

お礼日時:2006/08/08 11:43

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

Qsheet1(1月)からsheet12(12月)をsheet13(H17年度)に集計したい

sheet1(1月)
A   B  C
1 得意先  銀行  金額
2 aa社 xx 50
3 cc店 yy 30
4 ee社 xx 20

sheet2(2月)
  A B C
1 bb zz 50
2 ee xx 30
3 cc yy 50
4 dd ww 30

目的のsheet
sheet13(H17年度)
A     B    C    D
1 得意先  1月   2月   3月
2 aa社   50  
3 bb社 50
4 cc社 30 50
5 dd社 30
6 ee社 20 30

Aベストアンサー

元ファイルをシート分けせずに、月フィールドを作って整理し
ピポットテーブルを使えば一発です。

得意先銀行金額月
aaxx501月
ccyy301月
eexx201月
bbzz502月
eexx302月
ccyy502月
ddww302月

としておき、ピポットテーブルで
行:得意先、列:月、データ:合計/金額とすればよいでしょう

Qエクセル:ユーザー定期m"月"d"日"(aaa)で例:3月18日(日) 日曜日の場合は赤字で表示するには

ユーザー定期m"月"d"日"(aaa)で、例:3月18日(日) 日曜日の場合は赤字で表示するにはどうすればいいでしょうか。
条件付書式で『「数式が」=not(iserror(find("日",a1:c3)))』と設定しても反映しません。98です。
出来る限り簡単な方法を教えてください。宜しくお願いします。

Aベストアンサー

Excel98ではありませんが、2003では、
WEEKDAY関数で、
設定したいセルのある列を範囲選択し、
セルの条件付き書式で、数式がにし、
=WEEKDAY($A1,1)=1
とすればA列にある日付で日曜日に該当するセルが任意の書式で表示されます。
意味は、A列中の該当するセルが日曜日を1として数える書式で、1(日曜日)ならば、設定した書式で表示します。
無論A1:C1でも大丈夫ですよ。

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Q【Sheet1】の記載事項を【Sheet2】へ特定のセル(6B)だけ自動的に移動したいです。

     A       B      C    D 
-------------------------------------------------------
1  高木よし子  6B  ○○急便健保 20年5月
2  夏木文紀  6A  ○×食品国保 20年4月
3  葉木伸宏  7B  小田国保 20年5月
4  機器麒麟    6B    ○◎国保   20年4月  
--------------------【Sheet1】----------------------------


上記のような 【Sheet1】があるとします。




下記の【Sheet2】へ【Sheet1】の 6Bの人だけ自動的に拾い出したいです。

     A       B      C    D 
-------------------------------------------------------
1  高木よし子  6B  ○○急便健    20年5月
2  機器麒麟   6B     ○◎国保     20年4月 
--------------------【Sheet2】-------------------------

出来るでしょうか?宜しくお願いいたします。

     A       B      C    D 
-------------------------------------------------------
1  高木よし子  6B  ○○急便健保 20年5月
2  夏木文紀  6A  ○×食品国保 20年4月
3  葉木伸宏  7B  小田国保 20年5月
4  機器麒麟    6B    ○◎国保   20年4月  
--------------------【Sheet1】----------------------------


上記のような 【Sheet1】があるとします。




下記の【Sheet2】へ【Sheet1】の 6Bの人だけ自動的に拾...続きを読む

Aベストアンサー

VBAを使わなければ、作業領域がいるか。
ANo.1さんの方法、少し修正。ちょっと長いが。

Sheet1列Eは作業列。
=IF(B1="6B",ROW(),"")
をいれる。
Sheet2のA1に下記を入れて列方向と、下記は4行までだが、行方向に必要なだけドラッグコピー(フィル)する。

=IF(ISERROR(SMALL(Sheet1!$E$1:$E$4,ROW())),"",INDEX(Sheet1!$A$1:$D$4,SMALL(Sheet1!$E$1:$E$4,ROW()),COLUMN()))


このカテゴリの人気Q&Aランキング

おすすめ情報