- ベストアンサー
エクセルかアクセスでの表検索
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
列方向が月(1~12)、行方向が日(1~31)と決まっているなら MATCH関数無しでも =INDEX(SHeet2!$B$2:$M$32,DAY(A1),MONTH(A1)) (月と日の項目部分は表の範囲に含まない) A1には3/31と入力、表示形式がm"月"d"日"で表示できます。 MATCH関数を使う場合は =INDEX(Sheet2!$A$1:$M32,MATCH("31日",$A$2:$A$32,0),MATCH("3月",$B$1:$M$1,0)) "31日"と"3月"はセル参照してください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17068)
(例データ)A1:D7(実際はA1:M32以上だが簡略化) 月日 1月 2月 12月 1日 A B C 2日 F D E 3日 X Y Z 4日 O P Q 5日 R S T 31日 L M N (関数式) 上記以外の範囲の1セルに =INDEX($A$1:$L32,MATCH("31日",$A$1:$A$32,0),MATCH("12月",$A$1:$M$1,0)) (結果) Nとなる。 (前提) 日は全角文字で「31日」月も全角文字で「12月」を仮定している。前後にスペースを入れないこと。 2004/1/31と入れて、31日と表示させていると、前提が 変るので注意。質問文では31だけ半角になっているが 修正した。 (注意) 日付列は内容的にA2からはじまるが、$A$2:$A$32としないで$A$1:$A$32にすべきです。同じく月の行も$A$2:$M$1としないで$A$1:$M$1にする。
お礼
ありがとうございました うまくいきました
- ta123
- ベストアンサー率51% (95/186)
表Aに名前を定義し、セルA1に入力した日付に対応したセルの値を求める場合は以下の式で参照可能と思います。 =INDEX(表A,DAY(A1)+1,MONTH(A1)+1)
お礼
ありがとうございました トライしてみます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
INDEX関数を使って可能です。 =index(sheet1!日付と付きを除いたデータのある範囲,日を表す数字,月を表す数字) の様にします。
関連するQ&A
- また教えてください!Excelで作った表で・・・
助けてください!! Excelで作った3つの表があります。 ※1つのファイルの中に3つのシートとして作られています。 (1)元となるデータが入っているもので、 (例) 1月1日 1,000 1月2日 500 ~ 2月1日 1,500 2月2日 1,800 …と、連続した日にちと数値が入力されています。(数年分) (2) (1)の表から部分的にリンクさせて1カ月分を抜粋しています。 (例) 1月1日 =(1)!A1 1月2日 =(1)!A2 1月3日 =(1)!A3 ←多少違うかもしれませんが、こんな感じの式?を入れてデータを引っ張ってきています。 (3) (2)と同じですが、(2)に抜粋したデータの次月分が入力されています。 (例) 2月1日 =(1)!A32 2月2日 =(1)!A33 2月3日 =(1)!A34 (2)と(3)は1つ1つのデータは違うものの、表の作りとしては同じです。 (2)や(3)のような表が、すでに何カ月先の分まで それぞれシートとして作られているのですが、 その表の内容が正しいか確認したいのです。 例えば、2月のデータを表(1)から引っ張ってきたいのに (例) 2月1日 =(1)!A32→“(1)!A31”になっている…など 違うセルが入力されていないようにしたいのです。 それで、考えたのは すでに終わった月の表は正しい式が入っているのだから、 正しい表と新しい表を比べられないか?という事です。 (回りくどくてスミマセンm(__)m) でも、引っ張ってくる元のセルが違っているので 単純に比較できず、関数にも詳しくないので、どうしたらいいのか分かりません。 間違えないように、初めからもう一度作る・・・というのはナシで、比較をして確認したい場合でお願いします。 また、比較ではなく、他に方法がありましたら教えてください。 不明な点は補足をさせていただきますので、よろしくお願いします。
- 締切済み
- Windows NT・2000
- エクセルでSheet1の表を参照して条件に合った値を返したい
エクセルでSheet1に A B C 1 1月1日 10時 10 2 1月1日 12時 25 3 1月1日 14時 17 4 1月2日 10時 15 5 1月2日 12時 23 6 1月2日 14時 19 ・ ・ ・ というような表があります。 Sheet2に A B C D 1 日付 10時 12時 14時 2 1月1日 3 1月2日 ・ ・ ・ の表があり、Sheet2のB2からD3にSheet1の表を参照して 条件に合うC列の値を返したいのです。 (例えばSheet2のB2には、1月1日の10時なのでSheet1C列の10が入る) VLOOKUP関数等を使って試してみましたがうまくいきません。 ご教授お願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルで順位表を並び替えたい。同順位表示方法は?
エクセルで順位表を別シートに並び替えたいと考えていますが、同点になった場合はどうしたらよいでしょうか? シート1で集計した結果を参照し、シート2に上から順に1位から表示させる表を作りたいです。 試行錯誤の結果、下記まで作業しました。 ========= <シート1> A B C (1)商品名 (2)販売額 (3)ランキング 1 a 1000 2 2 b 1500 1 3 c 1000 2 4 d 500 4 5 e 300 5 (1)手入力 (2)SUM関数で集計した値 (3)RANK関数 <シート2> A B C (3) ランキング (1)商品名 (2)販売額 1 2 3 4 5 (3)手入力 (2)INDEXとMATCH関数 (3)INDEXとMATCH関数 ========= 1)シート2の(3)ランキングをシート1を参照し降順で自動表示させる方法を教えてください。 今は手入力なので、同順位があった場合にずれが生じてしまいます。 2)シート2に同順位表示のまま並び替えする方法を教えてください。 INDEX関数とMATCH関数を使っていましたが、 シート1で同順位表示されていた箇所が、シート2で表示できませんでした。 どうぞ宜しくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- エクセルVBAの質問です
エクセル2000で勤務表を作成しています 2009年7月というシートに2つの表があり、「表1」はC列に10名の氏名があり 各行の(F~AJ)には6月21日~7月20日までの毎日の出退勤(○、休、半等) を記入します。 「表2」は「表1」を暦月に変換するため7月1日~7月31日(F~AJ)となっていて、 表1を作成するとC列の氏名及び7月1日~7月20日(Q~AJ)までの出退勤も(F~Y)へ 同時に入力されるようにしてあります。 さて、新規シート2009年8月を作り「表1」に氏名(入退社で増減等の変更が あります)と1ヶ月分の出退勤を入力後、以下のことをVBAで行いたいと思います。 ボタンにより、2009年7月シートの「表2」と氏名がマッチする行に「表1」の7月21日~7月31日(F~P) の出退勤のみを「表2」の(Z~AJ)にコピーするようにしたいのですが可能でしょうか。 皆様のお力添えをお願いできればと存じます。
- ベストアンサー
- オフィス系ソフト
- エクセルで検索結果を範囲から検索して貼りつける
出退勤時間の表を作成しようと思っています。 実際あるエクセルはsheet1にsheet名をシフトと入れて B3に早番(1) C3 早番(2) D3 早番(3) E3 早番(4) F3 普通番(1) G3 普通番(2) H3 普通番(3) I3 普通番(4) J3 普通番(5) K3 普通番(6) L3 遅番(1) M3 遅番(2) N3 遅番(3) O3 遅番(4) P3 遅番(5) Q3 遅番(6) B4から出勤時間の B4 5:30 C4 6:00 D4 6:30 E4 7:00 F4 7:30 8:00 8:30 9:00 9:30 10:00 L4 13:00 13:30 14:00 14:30 15:00 Q4 15:30 B5からは退勤時間の B5 14:00 C5 14:30 D5 15:00 E5 15:30 F5 16:00 16:30 17:00 17:30 18:00 18:30 L5 21:30 22:00 22:30 23:00 23:30 Q5 0:00 セル番号抜かしちゃっててすみません。 A8からA48まで名前 7の行に1日から31日まで(B7が1日・C7が2日…AF7が31日)になっています。 この中の B8からAF48のセルに 早番(1) 早番(2) 早番(3) 早番(4) 普通番(1) 普通番(2) 普通番(3) 普通番(4) 普通番(5) 普通番(6) 遅番(1) 遅番(2) 遅番(3) 遅番(4) 遅番(5) 遅番(6) のどれかを検索して貼りたいです。 検索する場所ですがsheet2に1週間分(1日から7日までとします)の出勤時間の作成しようと思います。sheet2の名前が1日~ sheet3が8日~と入れようと思います。 週単位か1日単位でのsheet作成を迷ってます(週初めが1日といつも決まっているわけではないので)1日単位ならsheet2名前は1日sheet3名前2日になります。 実際にsheet2を各場所に貼りだして見せるものにしたい為見やすい用に作りたいです。 載せてる情報は現在は 22日~27日 現場A 通常 9:00~終了まで A8さん 早出 9:00~17:30 A10さん A12さん 遅出 13:00~21:30 A9さん A13さん 現場B 通常 8:00~終了まで A11さん A18さん 早出 8:00~16:30 A14さん A11さん 遅出 13:00~21:30 A16さん A17さん 現場C 通常 7:30~終了まで A15さん A25さん A35さん 早出 7:30~16:00 A22さん A32さん 遅出 13:00~21:30 A21さん A19さん みたいな感じで貼りだしています。 月単位でエクセルを作成します。 エクセル関数は初心者でマクロはちょっとしかやったことないです。 sheet2(週か日)の作成でsheet1シフトの中のB8からAF48が検索されて入力されればいいなと思っています。どのような関数を入れればいいかご教授ください。
- ベストアンサー
- Excel(エクセル)
- 複数シートから検索し、その行から15列下までを抽出したい。
使用しているのはWINDOWS XP EXCEL2000です。 マクロ、VBはあまりよくわかっていません。 ひとつのファイルに6sheetあります。 シートY1~Y6があり、シートY1のB1に入力されたデータと同じものをシートY1~Y6全てから検索し、 その行から15列したまでを抽出するということをしたいのです。 現状は1シートのみからの検索で、A3からA17までMATCH関数とINDEX関数が入っていて抽出しています。 (下記のように関数が入っています。) YIシート A3 → =MATCH(B1,T1_A1!D:D,0) B3 → =INDEX(T1_FMRA!E:E,A3,1) YIシート A4 → =A2+1 B4 → =INDEX(T1_FMRA!E:E,A4,1) ↓ ↓ YIシート A17 → =A16+1 B17 → =INDEX(T1_FMRA!E:E,A17,1) これをA1に入力されたデータを全シートから(Y1~Y6)検索、抽出する方法が知りたいのですが・・・ 説明がわかりづらくすみません。 よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- エクセルで一覧表から検索
ご教授をお願いします。 在庫表を作りたいと思っています。 sheet1に下記のようなデータの一覧表があります。 (AS400からデータを取り込みます) 納入日 品番 数量 20071010 1111-1111 1000 20071010 2222-2222 2000 20071011 3333-3333 2000 20071011 1111-1111 3000 ↓ ↓ ↓ 以下続く・・・ sheet2に、 20071010 20071011 ・・・ 1111-1111 1000 3000 ・・・ ↑ ↑ となるように↑矢印部に検索させる関数はないでしょうか? 10月中に在庫表を完成させなければなりません。 宜しくおねがいします。
- ベストアンサー
- オフィス系ソフト
- エクセル予定表のリンク
エクセルで年間予定表シートと月予定表シートをリンクさせています。 年間シートは,A3から1年分の日付が縦1列に並んでおり,A1に西暦を入力すると曜日が変化する万年歴になっています。B列にその日の予定を入力しています。 月予定表シートは,4月がA列B列,5月がC列D列,・・・と並んでおり,日付も予定も年間シートからリンクしています。 ここまでは,「=年間予定表!B7」というような式で十分だったのですが,2月が閏の場合に月予定表の3月1日のセルが年間予定表の2月29日を参照してしまいます。 年間予定表のA337が3月1日の場合はそのまま参照し,2月29日の場合は次のセルを参照する関数はないでしょうか。
- ベストアンサー
- その他MS Office製品
- 【EXCEL・関数】2つの表を元にカウントする方法
その日に作業をした人数(2つの表を元ととして)を数える関数がわかりません。 [X作業] [Y作業] 1月1日 1月1日 A 20 A 10 B 5 B C C 30 計 1.5人 計 1.5人 上のような作業別の表を同じシートに作りその日に作業をした人数を数えたいです。 ただ、この例でいくと1月1日に作業をした人数は当然X、Y共に2人(合計4人)ですが、2つの作業をした人は、0.5人としてカウントしたいです。つまり、AさんはX作業とY作業をしているので、0.5人として数え、X作業・Y作業の合計人数を1.5としたいです。 それぞれ作業別の合計人数をカウントしたいのですが、その関数がわからず、現在のところ(とりあえず作業をしなかった日は空白にしたいので)、 =IF(COUNT(○○:○○)=0,"",COUNT(○:○)) という関数を利用しています。ここから上記のような0.5とカウントする方法が全くわからず困っています。 どうかご教授お願いいたします。
- ベストアンサー
- その他MS Office製品
- Excel 項目を統合、抽出して別シートをつくりたい
連続投稿失礼いたします。似たような行き詰まりですが、分割して投稿します。 同じく Excel2003 の表 で 日付 収支 支払 収入 会社 項目A 1月1日 500 -100 +600 A社 X 1月1日 -200 -200 0 A社 Y 1月1日 300 0 +300 B社 Z 1月2日 100 0 +100 A社 X 1月2日 100 -500 +600 C社 X ~ 順次 積み立て入力 といった表から 1.別途ワークシートに 集計表を作成するにはどうすればいいでしょうか。 「日付で統合」 1月1日 600 -300 900 A、B X,Y,Z 1月2日 200 -500 +700 A、C X 「データ」-「集計」で エクスプローラのフォルダツリーのように展開、折りたたみはできるのですが、 そちらではなくて、別シートに抽出したい。 2.条件を指定して抽出するにはどうすればいいでしょうか 「A社」抽出 1月1日 500 -100 +600 A社 X 1月1日 -200 -200 0 A社 Y 1月2日 100 0 +100 A社 X 項目からA社を抽出することはできるが、そこから別ワークシートに 行を移植、積み重ねていく方法がまったくわかりません。 こちらもやはりマクロなり、スクリプトを作成しないといけないでしょうか。 おそらく初歩的なスキルだと思うのですが、どうかご教授いただければ幸いです。重ねてよろしくお願いいたします。
- 締切済み
- オフィス系ソフト
お礼
ありがとうございました。 うまくいきました