• ベストアンサー

EXCELの表を参照して値を返す方法

mu2011の回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 =IF(A1<>"",VLOOKUP(A1,sheet1!A:B,2,TRUE),"")として下方向にコピー 但し、A列は、0,11,21,31,51・・・151として昇順に配列として下さい。

ken1967
質問者

お礼

回答ありがとうございました。使用法を理解するのに少し時間がかかりましたが、なんとか解決できました。ヘルプで何時間も、使える関数がないか探していたのですがわかりませんでした。検索キーは完全に一致しなくても使えるのですね。これでいっきに作業が進みます。ありがとうございました。

関連するQ&A

  • エクセルで、2つのセル値(2つの条件)から、別シートの表から該当する値を参照する方法

    シート(1)のA列とB列のセルに入力されている値を元に、 シート(2)の表を参照し、該当する値をシート(1)のC列に 表示させる方法があれば 教えて頂けると助かります。 なおシート(1)のA列は、参照するシート(2)の表の列タイトルに対応し、 シート(1)のB列は、シート(2)の行タイトルに対応するマトリックス表に なっております。 また、この列行タイトルの表記は「1から」または「1から9まで」 という範囲での表示になっています。 (例:シート(1)元データ) No| A列 | B列 | C列 | --------------------------------- 1 | 07  |  22  |  20 | ←C列は、シート(2)表を参照  2 | 18  |  15  |  30 |        3 | 01  |  09  |  05 |       4 | 21  |  03  |  30 |  5 | 30  |  28  |  35 |  (例:シート(2)参照する表) A列\B列 | 1~9| 10~19 | 20~29 | -----------------------------------   01~  | 05  |  10  |  20  |         05~  | 15  |  15  |  20  |           10~  | 20  |  25  |  30  |        15~  | 25  |  30  |  30  |    20~  | 30  |  35  |  35  |  現在、手作業でC列への入力を行っております。 何とか、作業効率を上げたいと思っておりますので、 ご指導下さいます様 宜しくお願い致します。

  • 1の表の値を2表から探してその隣列の値を3表へ貼付

    なかなかうまくできないため、もう少し詳しくかきます。 表画像は細かいので貼りつけません。excel2007 (1)book1.の表の値を (2)book2.の表の中から見つけて、その隣の列の値を (3)book3.の表の該当する箇所にふりがな表記の縦書きにして貼付けます。 book1.sheet1 B3から下方に英数字の値が1000行程度羅列しています。 例)a243,a546,b124... その値をbook2.sheet1 A列の中から見つけ、 その隣B列の値"文字列"を book3.sheet1の表の該当箇所に、 ふりがな表記の縦書きにして貼付けます。 book3.の表は、A2:Y2 までの列に25,24,23,22,...1と A5:Y5の列に50,49,48...26と数字が左から右に並んでいて、 このA2:Y7で1グルーブになり、Z2に"A1グループ"となっています。 このグループが下方に"A1グループ"~"A8グループ" 8グループあるというような表です。 ちなみに"A2グループ"はA8:Y13というぐあいです。 このAグループがsheet1に,sheet2にはBグループが同じ表であります。 例)book1でa243という値は最終的にbook3のA2グループの43のセルの2つ下H13に (2)(3)という方法で貼付けます。 b124という値はbook3 sheet2 Bグループの表”B1グループ"の24のセルの2つ下B:4に貼付けられます。 よろしくお願いします。

  • エクセルで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関数等を使って試してみましたがうまくいきません。 ご教授お願い致します。

  • EXCELのややこしい参照を助けてください

    AとBと言うEXCELファイルがあります Aファイルのシート"a"の、セル”C1”の値と、 Bファイルのシート"b"のc列の値が一致する行の E列のセルの値を、Aに参照利用する文を、教えてください ややこしくてごめんなさい かなり以前にやって、かなり重い処理になった記憶が あるのですが、すっかり忘れてしまいました。 ご存知の方、どうか助けてください! よろしくお願いします。

  • 表を参照して値を入れていくマクロ

    こんにちは。丸投げの質問はだめでしょうか。 お願いできたら大変助かります。 [送り先]シートのF、L、Rの列に[料金表]の記号を参照して 入れていくというものです。 送信しようとすると、行と列の表示がぐちゃぐちゃになるので 表現できないかもしれないので心配です。。 [料金表] N O P Q 37 記号 上 中 並 38   A 100 80 60 39 B 90 70 50 40 C 80 60 40 ※見出しは37行目 [送り先] E F L R 5 記号 上 中 並    6 B 90 70 50 7 A 100 80 60 8 C 80 60 40 ※見出しは5行目 ※ちなみにF L R列の上・中・並のカテゴリーはF4、L4、R4をセル番地としてセルの結合しています。 [料金表]シートには記号、上・中・並などのカテゴリーがあります。 これらは[送り先]シートの記号・カテゴリーと常に同じです。 [送り先]シートにはあらかじめ記号と上・中・並などのカテゴリーは入って います。値が空白になっているので、記号に対応する値を、それぞれのカテゴリー 別に入れていきたいのです。 記号は例のようにABCのように昇順であるとは限りません。 どうぞよろしくお願いします。

  • Excel 参照行の削除でも可変しない関数

    Excel 参照行の削除でも可変しない関数 同じ形式で、数シートにわたり入力された文字をまとめた表を別のシート(シート1)に作成しています。 シート2以降の参照元データーは一定のルールで入力されていますが、削除や追加が頻繁に行われます。削除や追加の度にシート1B列・C列の関数が参照する行数が追随して可変しないようにしたいのですが可能でしょうか。 具体的には、シート2において6行目から9行目を削除した際に、シート1では「B2=みかん」/「C2=イチゴ」と繰り上がり、B行・C行は常に指定した行を参照するようにしたいと思っています。 <シート1>  A B     C 1 タイトル りんご  ばなな (← 3行目) 2 タイトル かき   なし   (← 8行目) 3 タイトル みかん イチゴ (←13行目) ・B列:「=IF(ISERROR('Sheet2'!$B3:$B3),"",'Sheet2'!$B3:$B3)」 ・C列:「=IF(ISERROR('Sheet2'!$D3:$D3),"",'Sheet2'!$D3:$D3)」 <シート2、3…> 参照したいセルは、B列とD列の3行目、8行目、13行目…と一定の間隔で入力されており、全てのシートにおいて同じ箇所に入力されています。 シートごとにカテゴリーの個数は(図A1:E4までを1カテゴリーと考えています)異なり、作業の度にカテゴリーの追加や削除が頻繁にあります。 うまく説明できているか不安ですが、良い方法を教えてください。

  • エクセルで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つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • Excel 隣接しない列に値貼り付け

    Excel 隣接しない列に値貼り付け ※「Excel 隣接しない列に一発で値貼り付け」の書き直しです。 ある一定の書式にしたがって作成された20~30のシートのデータを1つのシートに集約しており(集約シートを含み全てのシートは同じデータ内です。)、データを集約した集約シートの「表A」は下記の添付画像左側のようになります。 やりたいことは、「表A」のB列、C列、D列、E列をある条件のもとに右側の「表B」のH列、J列、L列、N列に値の貼り付けを行いたいのです。 現在の作業工程は、C列の空白行は必要ないため(C列が空白=他の列も空白)C列に文字入力があるとチェックが入るA列のオートフィルターで、「○」のみ表示にし、B~E列を順にそれぞれ、2行目からデータが記載された最終行までコピーし 「表B」のそれぞれの箇所に値貼り付けを行っています。 この時の注意点として、A列のオートフィルタ利用のためC列には空白がありませんが、B、D、E列には空白が存在します。 データがある最終行以下の空白は必要ありませんが、データ間の空白には意味があります。(下記の図で示すと「B3、4」や「D3、4」) 現在の作業工程でも問題はないのですが、この作業は最初に記載した20~30のシートに記載されたデータの校正に使うため取りこぼしをしたくなく、不特定多数の方が簡単に使えるようにしたいので、どうにか作業工程を減らしたいと考えています。 よろしくお願いします。 ▼書式シート *シートの数は増減する。 *集約シートが参照するセルには、必ずデータが入力されているわけではない。 *入力データは全て数値ではなく文字である。 ▼集約シート *他のブックと共通使用なため、一部の式は他のブックへのコピーに対応する形である。 *空白セルを参照している場合に結果として返される「0」は、オプション設定で非表示にて対応 *「表A」の行長は増減する。 *貼り付け先「表B」の列は飛び飛びである。 ▼ちなみに「表A」に使われている計算式(実際とは一部変えています) ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} PC環境:Win XP / Excel 2003

  • EXCELで別のシートのデータを参照して返す方法

    ちょっとしたことなのですが、うまく式が書けなくて悩んでいます。 作業用のシート1と参照用のシート2があり、 シート1のA列には  あおき  あべ  いぐち  いはら などと文字列(名前)が入力されています。 こちらは今度の野球のスタメンだと思ってください。 シート2にはA列とB列があって、 わたなべ 55 いぐち  43 あおやま 67 いはら  41 などと、名前:背番号が羅列されています。こちらが参照用の全選手の背番号リストだと思ってください。 ここで、 シート1のB列に、A列の名前に対応した背番号を返したいのです。 なので、シート1のB列に IF(シート1のA列の値=シート2のA列のいずれかの値)だったとき、 適合したシート2の行のB列の値を表示する という式を入れたいのですが、どのように式を書けばよいでしょうか。 すみませんがどなたか教えてください。

  • 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で参照させようと考えました。 文章表現がわかりにくいところがあると思いますし、マクロ初心者のため簡単なところが間違っているのかもしれませんが自分で解決できないのです。どなたかお助け下さい。