• ベストアンサー

エクセルについての質問です。関数で可能かどうか

まずシート2の1行目に時間と上や下のデータがリアルタイムで5分おきに自動で入力されてきます。シート1にはあらかじめ作成した時間のみの表があります。関数でシート2のA列を参照にしてシート1の同じ時間のところに上や下のデータをコピーすることは可能でしょうか?5分おきにデータがくるので手作業はしない形が希望です。シート1の表の形も変えたくありません。マクロでは可能だと思いますが、そこまでのスキルがないため関数でできればと考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

シート2に次々と5分ごとにデータが入力されるとしたら、お求めのシート1のシートでもシート2の変化に対応した表を時間の変化も含めて対応させ作成することが良いでしょう。すなわちシート1ではシート2のA列に入力された5分間隔での時間の最新の時間と最も古い時間を考慮して表を作成することにします。 表1では予め時間のデータを入力しておく必要はありません。 例えばシート2ではお示しのようにA1セルから下方に5分ごとに降順で、B1セルから下方には下、上などの入力がされているとします。 シート1ではA列からH列までに表を完成させるとしてA2セルには次の式を入力してH2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(LOOKUP(10^10,Sheet2!$A:$A)+"0:05"*(INT((COLUMN(A1)-1)/2)+ROW(A1)*4-4)>MAX(Sheet2!$A:$A)+"0:02","",IF(MOD(COLUMN(A1),2)=1,LOOKUP(10^10,Sheet2!$A:$A)+"0:05"*(INT((COLUMN(A1)-1)/2)+ROW(A1)*4-4),INDEX(Sheet2!$B:$B,MATCH(OFFSET(A2,0,-1)-"0:02",Sheet2!$A:$A,-1)))) これでシート1で予め時間を入力しておく必要もありませんし、シート2の範囲に無い時間は表示されません。 なお、上記の式で0:02などの時間が加えられたり引かれたりしていますが、これは時刻などの比較処理においては時刻のシリアル値の小数点以下の数値の比較にしばしば問題があることからそれを解消するために使っています。

mimiki30
質問者

お礼

解決しました。ありがとうございました。

その他の回答 (3)

noname#204879
noname#204879
回答No.3

1.Sheet1 のセル B2 に次の[条件付き書式]を設定     数式が   =ISERROR(B2)     フォント色 白 2.Sheet1 のセル B2 に次の配列数式を入力して、此れを[コピー]して、   Sheet1 のB、D、F、H列の各セルに[貼り付け     {=INDEX(Sheet2!$B$1:$B$300,MATCH(TEXT(A2,"h:m"),TEXT(Sheet2!$A$1:$A$300,"h:m"),0))}

回答No.2

こういうのはINDEX(MATCH)の式か、VLOOKUP関数で検索する典型例です。INDEX(MATCH)については、No.1さんが書かれているとおりです。VLOOKUPは列の位置に制約があったりしますが、だいたいINDEX(MATCH)と同じことができます。いずれも頻繁に使うので、覚えましょう。ベストアンサーは辞退します。

  • ka28mi
  • ベストアンサー率41% (969/2314)
回答No.1

シート1の上下データを入れたい場所、たとえばB1セルに「=INDEX(Sheet2!$A:$B,MATCH(Sheet1!A1,Sheet2!$A:$A,FALSE),2)」と入れます。 これは、シート2のA~B列を基表として、シート1のA1セルと同じ値が入っている行の2列目(つまりB列)の値を持ってこいという関数です。 アンマッチがなければ、これで問題ないと思います。 アンマッチがあった場合は、空白にしたいのかエラーにしたいのかで対応が変わります。ちなみに、上の式ではエラーになります。 蛇足ですが、エクセルの場合はバージョンを書いておかれた方がいいと思いますよ。 上の式でしたら、エクセル97の時代に既にあった関数ですので、まず問題ないと思います。

mimiki30
質問者

補足

空白にしたいのですが、どうすればよいのでしょう?エクセル2003

関連するQ&A

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • エクセルの関数についての質問です。

    2つの行を比較して、ある列までは上の段を、それ以降の列は下の段を優先させる関数を教えてください。 例)画像参照ください、 1行目も2行目も数字が減っていきますが、2行目はある列から数字が一定になります。 画像の緑部分では1行目を、黄色部分からは2行目を優先させたいのです。 (数字が同じかそれより大きくなった時) 数字を打ち変えて活用したい表で、2行目の数字が一定になるタイミングは何列目になるかわかりません。 どなたかエクセルに詳しい方おりました、教えてください。 よろしくお願いいたします。

  • Excel 2003 関数 教えてください

    使用するのはExcel 2003です。 マクロは使用せず関数で実行したいです。 お詳しい方教えてください。 1シート目に元となる表があります。 B列~D列までにあらかじめクライアント情報が入っており、クライアント情報の数の分、行数があります。 A列には、担当者名の入力欄を設け、入力規則のリストで担当者1~5まで選択できるようにしておきます。    A         B              C             D    担当者名    クライアント企業名   クライアント部署名   備考   1            ○○○          △△△          ***    2            ○○○          ◇◇◇          +++      3            ×××          ■■■          ---    2シート目以降、各シートは担当者1~5別のシートになっています。 2シート目 担当者1 3シート目 担当者2 4シート目 担当者3 5シート目 担当者4 6シート目 担当者5 こちらのシートには、1シート目と同じ項目がA~D列まで並んでいます。 A列にはあらかじめそのシートの担当者名が入っています。 全シート、1行目が項目、2行目から下がデータ欄です。 1シート目のA列で担当者名を選択すると、選択された担当者シートのクライアント情報欄(B~D列)に、1シート目該当行のクライアント情報が、反映されるようにしたいです。 その際、2行目から空白行を作らずに反映していきたいです。 作業用の列やシートを作成しても構いません。 マクロを使用したくない理由は、この表を配布する先の使用者のExcelが2003と2013で混在しているためです。 どなたかお知恵をお貸しいただけると助かります。 どうぞよろしくお願いいたします。

  • エクセル2007 関数

    画像の添付ができていなかったため、、再投稿です。 よろしくお願いいたします。 添付の表の上の段のような表があるとしまして、下の表の赤字の部分に上の表のA列のどれかの数字を入れると下にずらっと上の表のデータを参照するようにしたいのですが、タオルの部分は他とセルと仕様が違うのでどのような関数を入れたらいいのか分かりません。 上の表はカラーが複数なければ空欄です。

  • エクセル関数について教えてください

    エクセル関数についてご教授ください。 添付図のようなデータ入力シートがあり入力者は山田、太田、斉藤の3名が入力します。 今、山田さんが7/29日の数学の列の10:40-12:10行のセルに「伊藤」と入力し、太田さんが同日のEnglishの列の13:00-14:30行のセル に「伊藤」と入力し、さらに斉藤さんが同日の国語の列の14:40-16:10行のセルに「伊藤」と入力した場合にsheet2(シート名:伊藤)の表に図で示すようなデータを自動で入力させたいと考えています。 sheet1の日付は横に1週間分あります。同様にSheet2(伊藤)にも同じ日付で1週間分あります。 このようなことは可能でしょうか? エクセル関数初心者で非常に困っています。 どうかご指導いただきたいです。

  • エクセル関数について教えてください

    添付の画像のように、表1(シート)の社員別に日付と定時の労働時間と、残業時間の書いてあるデータを表2(シート)の該当する社員の該当する日に関数により反映されるようにしたいのですが、関数で可能でしょうか? 表1は下にずらっとデータとして打ち込んでいきます。 表2はB2の黄色い部分がリストになっていて、月が変わるようになっていて、そこを変えると日付情報が変わるようにしてあります。 ※表2の4行目の日付は表示形式により“日”だけ表示しています。 説明不足かもしれませんが、どうぞよろしくお願いします。

  • Excel 関数で困ってます

    携帯からの質問なのでわかりづらいかと思いますが まずA列からずっと例えばAQ列まで文字列での日付が続いておりその下のセルにはあるデータが下に続いており日別に縦割りにデータになっていますこの表を参照し違う表を作りたいのですが 入力規制で同じように日付を選択すれば下のセルに日別のデータが返るようにしたいのですが 関数はどのようにすればよいでしょうか? VLOOKとかだと表の作り上難しいかなと 急ぎの仕事なものでなんとか初心者にご教示いただければと

  • excel 関数

    以下のような、同じ数だけ縦に並び、横にいくにつれて下にずれていくデータがあり、各列の上から3番目から1番下までのデータの範囲の最大値をとりたいです。 できればマクロではなく関数でやりたいです。 よろしくお願いいたします。 1 1 22 32 535 _25 _134 __21 __31 ___2 ___3

  • Excelの参照について。

    こちらでは初めて質問させてもらいます。マクロ初心者です。長くなりますが携帯からなので画像貼れずにすいません。 vistaで2007使用です。 Sheet1に備品一覧表(結合セルなしで1行に備品ひとつ分が15列で400行くらい)があり、Sheet2に個表(空欄で枠のみの表で横に3品、縦に3品の9品分を1ページに印刷できるよう設定)を作成したいです。 Sheet2はSheet1の1行の中から一部を抽出して作製したい様式の違う表です。 例えばSheet1のA1がSheet2のA1からC1を結合したセルに、Sheet1のD1がSheet2のB2に、Sheet1のN1がSheet2のC3に…など 1つ目の参照が終わったら2つ目はSheet1のA2がSheet2のD1からF1を結合したセルに、Sheet1のD2がSheet2のE2に、Sheet1のN2がSheet2のF3に…という具合で もう1つ分右にいってから 4つ目は1つ目の下に移動しSheet1のA4がSheet2のA13からC13を結合したセルに、Sheet1のD4がSheet2のB14に、Sheet1のN4がSheet2のC15に…という具合で400行分参照するようにしたいのです。 Sheet2の各セルに一つ一つ参照を設定していくのも大変なので、Sheet1の必要なセルを参照してSheet2の各セル(結合セルあり)に表示させるマクロをつくりました。 今後Sheet1で変更したいのでコピー貼り付けでは都合がよくありません。いろいろ参考にさせてもらってヘルプで意味を調べながら作ったのですが、下記のコードでSheet1に文字が入っているセルの参照はできましたが、Sheet1に関数を入れているセルの参照の部分がうまくいきません。(関数が表示されます) Sheets(2).Select Cells(x, y).Select ActiveCell.FormulaR1C1 = "=Sheet1!R[" & CStr(i) & "]C[" & CStr(j) & "]" Sheet1で使った関数はこれです。 =IF(M10=1111111,"不明","H"&RIGHT(M10,6)) Sheet1のM列には購入日を数値化した七桁の数字(例えば4210310はH21.3.10のこと)が入っていて、N列に関数でH210310(ホントはH21.3.10としたいができませんでした。)と表示させそれをSheet2で参照させようと考えました。 文章表現がわかりにくいところがあると思いますし、マクロ初心者のため簡単なところが間違っているのかもしれませんが自分で解決できないのです。どなたかお助け下さい。

  • Excelでどのような関数を使えばいいでしょうか。

    関数について教えて下さい。 Excelで、同じBook内に以下のような2シートがあるときに、 (Sheet1)    A   B    C   D     1  1  あい   12  りんご 2     うえ   34  みかん   3     おか   56  イチゴ 4  1  おか   78  イチゴ (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3     おか   78   イチゴ 4     うえ   34   みかん  Sheet2のA列にSheet1にあるデータを入れたいのです。 まず、列B,C,Dのそれぞれのデータが横に3つ一致するものを探して 横3つのデータが同じなら、Sheet2のA列に、 Sheet1のA列にあるデータをシートBにも持ってくる、 というようなイメージです。 (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3  1  おか   78   イチゴ 4     うえ   34   みかん      ↑このようにしたいのです。 A列にどのような関数を入れればいいのでしょう。 (A列にあるのは1か空欄かのどちらかです。 同じ3つの組み合わせで、1の場合と空欄の場合両方があることはありません。) また、Sheet2には、A列に1とついた行に色を付けたいのです。 例えば、上記の例ですと Sheet2のB3:D3のセルに色をつけたいのです。 関数や条件付書式などで、できますでしょうか。

専門家に質問してみよう