Excelを使っていて、どうしてもわからない関数があります。
たぶん、とても簡単なことだと思うのですが、
おわかりの方、何卒ご教示くださいませ。
Windowsで最新のOS、Excelも最新バージョンだと思います。

私がやりたいことは・・・

「No.順」と名付けたシートがあります。
Aの列に品物のIDナンバーを手入力してます。(ID-***、みたいな感じ)
Nの列には価格を手入力(数値の書式設定)、
Qの列には入荷コストを手入力(数値の書式設定)、してます。

別の、「SALE」と名付けたシートがあります。
Cの列に品物のIDナンバーを手入力するようにしてます。
このIDナンバーを入力した時点で・・・
「No.順」のNの列に入力した価格を、「SALE」シートのHの列に、
「No.順」のQの列に入力した入荷コストを「SALE」シートのIの列に、
データを引っ張ってきたい、つまり、自動入力させたいのです。

いずれのシートも、1行目にはカテゴリ名を入力しているので、
実際に入力がなされているのは、2行目からになります。

どんな関数をどこに書けばよろしいでしょうか。
どうぞよろしくお願いします。

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

A 回答 (7件)

#4のfeverです(*^_^*)


『SALE』シートの
H2には
=IF(C2="","",VLOOKUP(C2,No.順!$A:$Q,14,FALSE))
I2には
=IF(C2="","",VLOOKUP(C2,No.順!$A:$Q,17,FALSE))
と入力してください。
以降はハンドフィルでコピー&ペーストしてください。

これでもまだ『#N/A』が表示されるのでしたら
『No.順』シートと『SALE』シートのIDナンバーが違う表記になっている可能性があります。
例えば、全角/半角など違っていませんか?

一度、『No.順』シートのIDナンバーをコピーして『SALE』シートの方へ貼り付けてみてください。
これでエラーが返ってこないとしたら、表記に問題ありです。

この回答への補足

すみません。空白部分に「#N/A」は出ません・・・。
舞い上がって、勘違いしちゃいました・・・。

補足日時:2003/09/18 23:32
    • good
    • 0
この回答へのお礼

でっ・・・できましたっ!
H2の式でQの部分をNに直しましたが(^^;)完璧です。
お気にかけていただき、ありがとうございました。

空白部分には「#N/A」が出ますが、他の方々の式を参考にさせていただけば、
何とか解決できそうです。

助かりました。ありがとうございました。

お礼日時:2003/09/18 23:29

#3です。



向こうの回答を無視してると勘違いしてました。(ちゃんとレスされていたのに気付きませんでした)
大変失礼しました。m(_)m

他の方の回答でOKだと思いますが、エラー回避も含めてまとめます。
IDが無い時はN/Aエラーが返るので、IF文で N/A の時は空白となるようにします。長いけど。

H列
=IF(ISNA(VLOOKUP(C2,No.順!$A$2:$O$6,14,FALSE)),"",VLOOKUP(C2,No.順!$A$2:$O$6,14,FALSE))

J列
=IF(ISNA(VLOOKUP(C2,No.順!$A$2:$Q$6,17,FALSE)),"",VLOOKUP(C2,No.順!$A$2:$Q$6,17,FALSE))

これも既に回答が出てますが、4箇所ある $A$2:$Q$6 は実際に合せて直す必要があります。
また、予め「No.順」の範囲に「リスト」等の名前を定義しておき、下記のように定義した名前で指定しておくと、後で行が増えた時に定義した範囲を変更するだけで対応出来るようになります。

=IF(ISNA(VLOOKUP(C2,リスト,14,FALSE)),"",VLOOKUP(C2,リスト,14,FALSE))
    • good
    • 0
この回答へのお礼

こちらこそ、キツイ「お礼」を申し上げて失礼しました。
たぶん、パーフェクトな式を考えてくださったと思うんですが、
あのぅ・・・
 >4箇所ある $A$2:$Q$6 は実際に合せて直す必要があります。
「実際に合わせて」・・・がわかりません。
2という数字は2行目? 6という数字は・・・。
超ビギナーですみません。

それから、参照する「No.順」というシートのセル(NとQ)に入力されているのは、・・・
例えば「=1200/6」みたいに、単価を出すためのカンタンな式を手入力してあり、その答えが返ってくるようになってます。
これはボトルネックになってますか?
もしご覧になってくださっていたら、どうかお助けください。
まだまだ格闘中です。よろしくお願いします。

お礼日時:2003/09/18 05:46

#2です。

あさ通勤前で慌てていたことはありますが、
(1)その後気になったのは、「No.順」シートを、A$2:$Q$4としましたが、私のテスト例が3行だったからです。
$A$2:$Q$○の○のところは表の最終行数を入れてください。
(2)もうひとつA$2:$Q$4のA$2に$が洩れていました。
(コピーした時に範囲指定不足)。$A$2:$Q$50のようにしてください。
有名なパターンの質問でVLOOKUPで絶対出来ますから、上手く行かないときは解説書でも読んで、適合すべき個所を見つけるよう、頑張ってください。
    • good
    • 0
この回答へのお礼

その後までお気遣いくださっていたなんて、感激です。ありがとうございます。
丁重なご説明文でエラーの理由がわかりました。
でも、まだうまくいきません。
単純な関数だと思うんですけど、理系が苦手で、「式」が出てくると目眩が・・・(@@)
でも諦めずにがんばります(^^)

お礼日時:2003/09/18 05:32

#2のimogasiさんのでOKだと思うのですが(^^ゞ



「No.順」と名付けたシートのA列に入力しているIDナンバーと、「SALE」と名付けたシートのC列に入力したIDナンバーは同じになっていますか?

また、「SALE」の方に入力したナンバーが「No.順」の方に
無いと、エラー値「#N/A」が返されます。
    • good
    • 0
この回答へのお礼

フォローありがとうございます。
IDナンバーは、コピペで入力しているので、同じになっていると思います。
しかし「#N/A」っていうエラーがどうしても返ってきてしまって・・・。格闘中です。

お礼日時:2003/09/18 05:27

こちらでも回答がなされてますが?


http://pc2.2ch.net/test/read.cgi/bsoft/106034552 …
    • good
    • 0
この回答へのお礼

わざわざどうも。よく見てますね。質問の仕方が悪く、「一般的」な回答をいただいてしまったので、何度も試してみたけどできませんでした。式しか書いてくださっていなかったので、注意点もよくわかりませんでした。(調べてみたら、隣の列を参照する、という式だったので、私のケースには当てはまりませんでした。)「シート名」、「具体的な列番号」を書いて質問するべきだった、と思い、再度こちらで質問させていただいたのです。ご了承ください。

お礼日時:2003/09/16 17:26

VLOOKUP関数でできます。

特徴は他シートの表を
参照していることだけです。
SALEシートのH2に
=VLOOKUP(C2,NO.順!$A$2:$Q$4,14,FALSE)
I2に
=VLOOKUP(C2,NO.順!$A$2:$Q$4,17,FALSE)
といれ、各列を下へ複写する。
C列にデータの入っていない行のH,I列はエラー表示が
出ますが=IF(c2=””、””、VLOOKUP(・・・))等で回避をしてください。
    • good
    • 0
この回答へのお礼

具体的なご回答ありがとうございます。試してみたのですが、どうしても「#N/A」というエラーが出てしまいます・・・。

お礼日時:2003/09/16 17:41

こんばんは



VLOOKUP()かINDEX()とMATCH()関数の組み合わせ
で可能です。
今回の場合 A,N,Q列と目的のデータが相当離れて
いるので後者の関数の方がよいかもしれません

具体的例では 仮に
[No.順]のデータ範囲を2行目から100行目として
[SALE]のセルN2に
=IF($A2="","",IF(ISNA(MATCH($A2,No.順!$A$2:$A$100,0)),"",INDEX(No.順!N$2:N$100,MATCH($A2,No.順!$A$2:$A$100,0)))
と記載して必要行までコピー
その式をQ列にもコピー

で試してみて下さい($の付く位置に注意)
    • good
    • 0
この回答へのお礼

具体的で丁重なご説明ありがとうございます。
数時間がんばって格闘したんですが、どうしても空白セルが返ってきます・・・。
 ・[SALE]のセルN2に →「SALE」シートのHの列に
 ・その式をQ列にもコピー → 「SALE」シートのIの列にコピー
・・・でよろしいんですよね。
ううーん・・・。

お礼日時:2003/09/17 08:14

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

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

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

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

Qシートクリーナーはどれがオススメですか?

白いシートに黒い小キズがついてしまったのですが、どの製品がオススメでしょうか?

過去にご使用経験がある方などのアドバイスを
お聞かせいただければありがたいです。

検討しているシートクリーナー商品

・MOTOWN モーターサイクル用シートクリーナー 
・MOTOWN シートクリーナー 
・HONDA:ホンダ シートクリーナー
・デイトナ:DAYTONA アルティシャイン シートクリーナー
・モータウン スクーティーズ シートクリーナー

よろしくお願いします

Aベストアンサー

小さいのであれば練り歯磨きでも取れると思います。
材質と汚れの種類にもよりますが…。

QEXCEL LOOKUP関数で別シートをセルから参照したい

シート:集計表・4月・5月・6月・・・・3月
(4月~3月までは売上表が入っていて、表の形式はまったく同じです。)

集計表のシートにおいて、
A1にシート名を入力することによって、そのシートを使った範囲を取得したいと思ってます。
B2に =vlookup(B1,'A1'!A:B,2,0)
この場合、'A1'! は有効しませんが、何かの関数を使ってこれと同じ結果を得たいと考えています。

いろいろ検索しましたが、(検索の仕方も悪いかもしれません。)
VLOOKUP関数を使って複数列を範囲としたいので、よく出てくるINDIRECT関数はセル番地を指定する以上、無理だと判断しました・・・。

よろしくお願いします。

Aベストアンサー

=VLOOKUP(B1,INDIRECT(A1&"!A:B"),2,0)

で、どうでしょうか

Qエクセルで、ハイパーリンクのリンク先をグラフシートに指定したい

WindowsXP(home)上でexcel2002を使用しております。

標記のように、ハイパーリンクで別ブックの
グラフシートを参照させたいのですが、やり方が
分かりません。
普通のワークシート上のセルをリンク先に指定する
事はできるのですが、グラフシートにはできなくて
困っております。

1.リンク先に直接グラフシートを指定する。
2.グラフシート上にダミーのオブジェクトを
  つくり、これをリンク先に指定することで
  グラフを表示させる。

1,2どちらかでも結構ですので、ご存知の方
いらっしゃいましたらお願いいたします。

(最悪、ワークシート上にグラフをはめ込んで
 同じシートのセルを参照させることで、
 グラフを表示することも考えられますが、
 できればこれは避けたいと考えております。)

よろしくお願いします。

Aベストアンサー

こんにちわ。

無理やりの方法ですが・・・・ ^^;

グラフシートが1枚だけの場合でしたら、通常シートを非表示にしておき、通常の
シートのセルにリンクを張る方法があります。

グラフが2枚以上の場合はマクロで処理するほかないのかも知れません。
一応次のようにします。

<グラフシートのあるブック>
 1)通常シートのどこでもよいですので、グラフシート名のリストを作ります。
  ここではグラフシートが3枚あって、Sheet1のA1:A3に入力したと仮定します。
 2)Sheet1のA1:A3を選択して、Area という名前をつけます。
  ※Sheet1以外のシート(例:Sheet2)にも別なグラフシートリストを作る場合は
   Sheet1のリスト範囲の名前は Sheet1!Area にして、Sheet2のリスト範囲は
   Sheet2!Area という名前にします。
 3)[Alt]+[F11]で Visual Basic Editor を開き、画面左側のツリーの中にある
  ThisWorkbook をダブルクリックして、右画面に下記をコピーします。
  '
  Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   Dim RNG As Range
   For Each RNG In Range("Area")
    If Target.Address = RNG.Address Then
     Sheets(Target.Value).Select
    End If
   Next
  End Sub

ハイパーリンクを張るブックでは、前記(1)のリスト内のセルにジャンプするように設定します。

こんにちわ。

無理やりの方法ですが・・・・ ^^;

グラフシートが1枚だけの場合でしたら、通常シートを非表示にしておき、通常の
シートのセルにリンクを張る方法があります。

グラフが2枚以上の場合はマクロで処理するほかないのかも知れません。
一応次のようにします。

<グラフシートのあるブック>
 1)通常シートのどこでもよいですので、グラフシート名のリストを作ります。
  ここではグラフシートが3枚あって、Sheet1のA1:A3に入力したと仮定します。
 2)Sheet1のA1:A3を選択して...続きを読む

QEXCEL:入力規則の「リスト」は別シートを参照できない

表の中の項目をVLOOKUP関数を使って入力したいのですが、
検索値(文字列)の入力者が多数いるので
「入力規則」の「リスト」を使って入力するようにしました。
VLOOKUP関数は別シートの範囲も指定出来ますが
リストは同じシート内に元の値を設定しなければならないので、
同じようなシートが多数ある場合、全てのシートに同じデータ(元の値)を入力しなければならず大変です。
何か良い方法はないでしょうか。
上司はマクロを使ったら?と言いますが
どんなマクロを使ったら出来そうなのか見当が付きません。
どなたかアドバイスよろしくお願い致します。

Aベストアンサー

参照する範囲に、メニューの「挿入」→「名前」→「定義」で名前を付けると、別シートの範囲であっても参照は可能ですよ。
詳しくは下記ページを参考にしてください。
http://www.moug.net/tech/exopr/0040003.htm

Qプロ野球ファンにとって、ナイトゲームは不可欠?

球団の考える不可欠な事情は置いておいて・・・

プロ野球ファンの人たちにとっては、ナイトゲームは不可欠なものですか?
それとも、ナイトゲームでなくても構いませんか?
特にファンでない方も、ナイトゲームについてどう思いますか?

Aベストアンサー

ナイトゲームでないと、試合を観に行けないのは事実です。私の土地ではプロ野球の試合は年1回あるかないかですので、特に切実です。地方での興行時はナイトゲームを望みます。
休日ならデーゲームでも良いですが。

Q【Excel】複数の列を参照して、特定の文字列を含む行全体を別シートに抽出する関数

左画面(Book2)のようなシートがあります。

Book2の中で列D・列F・列Iの3列を参照し、別シート(Book4)のA1セルに入力した文字列と一致する文字を含む行全体を、Book4のA3セル以下に抽出するための関数を探しています。

画像の例は、「北海道」という文字列を3列のいずれかに含む行だけを手動で貼り付けたものなのですが、この処理を関数を用いて自動で行いたいのです。

参照したい文字列(北海道)は、3つの列にランダムに含まれている状態です。

元データ(Book2)を更新すれば、別シート(Book4)がリアルタイムに自動で生成されるようにしたいので、関数を使った方法で行いたいと思っています。

ご教示お願い申し上げます。

Aベストアンサー

こんばんは!
一例です。
元データは「Book2」のSheet1にあり、表示するのは「Book4」のSheet1とします。
Book4・Sheet1のA1セルに検索したい文字列を入力し、そのデータを表示させます。
(今回は画像通り”北海道”と入力しておいてください)

Book2のSheet1のJ列を作業用の列として使用します。
J3セルに
=IF(COUNTIF(D3:H3,[Book4.xlsx]Sheet1!$A$1),ROW(),"")
という数式を入れフィルハンドルでこれ以上データはない!という位まで下へコピーしておきます。

そしてBook4、Sheet1のA4セルに
=IFERROR(INDEX([Book2.xlsx]Sheet1!A:A,SMALL([Book2.xlsx]Sheet1!$J:$J,ROW(A1))),"")
という数式を入れ、列・行方向にフィルハンドルでコピーしてみてください。

※ 作業列が目障りであれば遠く離れた列に設けるか
非表示にしておきます。m(_ _)m

QVB2005で、CADのレイヤ機能の実現?

VB2005初心者です。
CADにあるレイヤ機能を実現する方法ってあるのでしょうか?
レイヤ機能とは、アニメのセル画みたいなイメージで、透明のシートに絵を書いて何枚も重ねたようなものです。好きなシートを対象に絵を描いたり消したり、できる昨日のことです。
VB2005で実現出来るのでしょうか?

Aベストアンサー

そういったことを開発したことがないので参考意見てことで。

ウィンドウ上にレイヤーの数だけ透明なコントロールを重ねるてな実装はあり得ないでしょうね、普通に考えて。
各レイヤー上にあるオブジェクトを重ねた結果だけを表示するとか。
じゃぁレイヤー上にある個々のオブジェクトをユーザーが操作することを可能にするのにはどうするか。
やらなきゃならない事はいっぱいありそうですね。

マイクロソフトが全面協力して学生が開発した(している)Paint.NET という画像編集ソフトがあります。(ラスタ系ですが)
ソースコードも公開されていますので参考にしてみてはどうでしょうか。
http://www.getpaint.net/

Qexcel:別シートの値を飛び飛びで参照させたい

エクセルです。
数値データが1列に2千個並んでます。
その数値データを別シートから5個おきに参照しようとしてます。通常なら
=sheet1!A1
=sheet1!A6
=sheet1!A11
のように入力していけばいいのですが、元データが2千個なので参照する方も400個と大量にあります。一個ずつ入力したくはありません。一気に済ませる方法はないでしょうか?

Aベストアンサー

=INDIRECT("Sheet1!A"&(ROW(A1)-1)*5+1)
で下方向へコピィしてためしてください。

Q熱中症対策スプレーと熱さまシートどちらが効き目あるか教えてください

2年前に子供が熱中症にかかり意識がなくなり救急車で運ばれました。それから水分補給・木陰での休憩など神経質なくらい気をつけています。最近薬局で熱中症スプレーをよくみかけますが今度ハワイに行くのに子供の脇やおでこにずっと熱さまシートをつけようと思ってるのですが熱中症スプレーのほうが効き目がありますでしょうか?

Aベストアンサー

旅行であれば、
>水分補給・木陰での休憩など神経質なくらい気をつけています。

 上記のようであれば、心配し過ぎないほうが良いように思います。
 後、帽子と涼しい格好をさせとけば良いと思います。服は、ランニングのようなむき出しのものより襟やそでが有る方が良いと思います。
 水分補給は、スポーツドリンクのようなものが良いと思います。
 本当に熱中症的になったときは、タオルに冷たい水を含ませて、体を拭いてやったりして冷やしてやる方が良いと思います。

 ずっと、熱さまシートをずっと貼って局部的に冷やしておいたりするのは、体の感覚がおかしくなりそうで良くないように思います。

Qエクセル リストで指定したセルを別シートで参照し、参照セルから指定セルを表示させる方法?

エクセルで自社式の伝票を作成しようと思っています。

シート1のA列2行目から下に向かって商品名リストが、
シート1の1行目B1から右に向かって事業所名が入り、いずれも増加していきます。
シート1のB2以降は商品単価が入り、事業所単位で単価の違うものを一覧化してあります。

シート1 【イメージ】
          B1     B2    B3
         事業所1  事業所2  事業所3
A2 商品イ    200円   空欄    空欄
A3 商品ロ    空欄    330円   空欄
A4 商品ハ    180円   空欄    170円

シート2のA列では事業所1・2・3がドロップダウンリスト表示されるようになっており、
シート2のB列で、A列でリスト表示した現業名に対応する商品リストだけをリスト表示させ、
更にはC列でその価格を表示したいのですがうまくいきません。

エクセル関数に強い方、どうか教えていただけませんか?

Aベストアンサー

●入力シートのA列一番下の事業所リストから、商品名を表示する
Sheet2!E1セルに
=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(INDEX(Sheet1!B$2:D$20,,MATCH(LOOKUP("ーー",A:A),Sheet1!$B$1:$D$1,0))<>"",ROW(Sheet1!B$2:B$20)),ROW(A1))),"")
[Ctrl]+[Shift]+[Enter]で確定。配列数式、{}で囲まれる。
下へオートフィル

Sheet2!B列の入力規則のリスト
=OFFSET(E$1,,,COUNTIF(E:E,"?*"))


●G列以降(右)に商品名を表示する(計算が重くなり、非現実的)
Sheet2!G2セルに
=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(INDEX(Sheet1!$B$2:$D$20,,MATCH($A2,Sheet1!$B$1:$D$1,0))<>"",ROW(Sheet1!$B$2:$B$20)),COLUMN(A2))),"")
[Ctrl]+[Shift]+[Enter]で確定。配列数式、{}で囲まれる。
右へ下へオートフィル

Sheet2!B列の入力規則のリスト
=OFFSET($G1,,,,COUNTIF($G1:$Z1,"?*"))

●共通
Sheet2!C2セル
=INDEX(Sheet1!$B$2:$D$4,MATCH($B2,Sheet1!$A$2:$A$4,0),MATCH($A2,Sheet1!$B$1:$D$1,0))

●入力シートのA列一番下の事業所リストから、商品名を表示する
Sheet2!E1セルに
=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(INDEX(Sheet1!B$2:D$20,,MATCH(LOOKUP("ーー",A:A),Sheet1!$B$1:$D$1,0))<>"",ROW(Sheet1!B$2:B$20)),ROW(A1))),"")
[Ctrl]+[Shift]+[Enter]で確定。配列数式、{}で囲まれる。
下へオートフィル

Sheet2!B列の入力規則のリスト
=OFFSET(E$1,,,COUNTIF(E:E,"?*"))


●G列以降(右)に商品名を表示する(計算が重くなり、非現実的)
Sheet2!G2セルに
=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(INDEX(Sheet...続きを読む


人気Q&Aランキング

おすすめ情報