• ベストアンサー

【EXCEL】条件によって特定のセルの値を探し、他ファイルの同じ値のある行に反映させる

セルK4がTRUEとなると、 あるセル(E12)がその4つ左のセル(A12)に表示されている 番号を探し、他ファイルにある同じ番号の4つ右のセルに○がつく・・・ というようにしたいのですが、関数を駆使してできますでしょうか? イメージはファイルBBのE12に  =IF($K$4=TRUE,~ と入れ、 TRUEになったらファイルAAのE9(同じ301番)に○がつく感じです >_< どなたか関数に詳しい方、アドバイスをお願いいたします!! ちなみに下記のような状態です。 【ファイルAA(Sheet1)】     A      B      C       D     E      8   番号   発行日   期限    氏名    状況 9   301   10/5     4/3   ●●     10  302   11/5    5/4   ○○    :    :     :      :     :     : 【ファイルBB】               (Sheet1の表)                A      B      C     D     E       11   番号   発行日   期限   氏名   状況 12    301   10/5     4/3    ●●     13   302     11/5    5/4    ○○    :     :     :       :     :      :

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

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

ファイルBBのシート1のE12セルには次の式を入力して下方にオートフィルドラッグするとします。 =IF($K$4=TRUE,A9,"") この式ではE列にTRUEの時はA列の番号が表示されることになります。 そこでファイルAAのシート1のE9セルには次の式を入力して下方にオートフィルドラッグすればよいでしょう。 =IF(COUNTIF([【BB】.xlsx]Sheet1!$E:$E,A9)>0,"○","") だだし、上式で[【BB】.xlsx]の書き方が正しいのかどうか簡単な試験で確認することが必要でしょう。

yu332
質問者

お礼

回答して下さり、ありがとうございます。 すごく分かりやすく説明してくださったので、すぐ手順通りやってみました! ただ入力のところまではスムーズに行ったのですが、 チェックボックスをオン(K4をTRUE)にすると、循環参照の警告が出てしまいます。。。なぜ・・・ でもやればやるほどいろんな方法があって すごく勉強になるので(そしてもう少しでできそうな気がしてくるので)、 もうちょっと粘ってみようと思います>_< ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

>ちなみにE12 =IF($K$4=TRUE,"○","") >AAのE9 =IF(VLOOKUP(A9,[【BB】.xlsx]Sheet1!A:E,5,0)=○,"○","") 上記の条件ならどこにも循環参照になっている部分はないように思います。 もし循環参照になっているなら、数式のエラーをチェック、あるいは参照元のチェックなどで実際に循環参照しているセルを確認してみてください。 エクセルのバージョンによって使用できる関数や操作法、メニュー項目などが異なりますので、質問するときはバージョンも併記するようにしましょう。

yu332
質問者

お礼

ご回答ありがとうございます! 確認してみます。 アドバイス本当にありがとうございました! すごく参考になりました。 また何かありましたらぜひ宜しくお願いします!

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

>AAのE9 >=IF(VLOOKUP(A9,[【BB】.xlsx]Sheet1!A:E,5,0)=[【BB】.xlsx]Sheet1!$E$12,"○","") >でやると、循環参照が含まれている為という警告がでてしまいます・・・ [【BB】.xlsx]Sheet1!$E$1の値は○なのではないのですか? このセルに○が返る場合は、AAセルのE列にも○を表示するなら、この部分は当然数式ではなく(これが循環参照の原因です)"○"を参照することになります(そのためにこのセルに入力する式を確認したわけです)。 念のため、数式を説明すると、AAのA9セルの値をBBのA列から検索し、その行のF列の値が○ならば○をつけるということになります。

yu332
質問者

補足

たびたびありがとうございます! 数式のご説明ありがとうございます。助かります* なるほどっ!と思い、さっそくやってみたのですが、 またどうも循環参照の警告が消えず・・・です。 ちなみにE12 =IF($K$4=TRUE,"○","") AAのE9 =IF(VLOOKUP(A9,[【BB】.xlsx]Sheet1!A:E,5,0)=○,"○","") としてみたのですが、まだ何かおかしいのでしょうか;_; 知識のレベルが低く、本当に申し訳ございません。。 どうか何卒宜しくお願いします!

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

この質問は「特定の」とか抽象的な質問の書き方で判りにくい。 具体例に徹して質問し、こうだからこうで、その後こうしたいとかけないのか。質問の具体例と挙げた例も乖離していて役立たないのでは。 その1例の場合の回答に接した後、自分の場合に当てはめるのは、質問者の仕事だと思う。(それが出来ないレベルなら、このコーナーに質問しても仕様が無いとおもう。) ーーー 在る値のセルを、シート上で探すのは関数では出来ない。 MATCH関数があるが、複数列を指定できない。(WEBででもMATCH関数を勉強のこと。)VKOOKUP関数なども同じ。 だから (1)VBAでやる (2)ユーザー定義関数を使う(実質VBAをそこで使う) をしないと、(>関数を駆使して・・)質問はのっけから不可能のはず。

yu332
質問者

お礼

回答ありがとうございます。 分かりにくくて大変申し訳ございません・・・ >在る値のセルを、シート上で探すのは関数では出来ない。 >MATCH関数があるが、複数列を指定できない。 ↑大変ためになりました。MATCH関数、VLOOKUP関数ともに勉強させていただきます! そして、VBAも勉強します。 ご意見ありがとうございました。 また宜しくお願いします!

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>でもまずはBBのE12が○に代わって、それが同じ番号のあるAAのE12に 反映されるようにしたかったので。。。 ご質問内容を整理すると、単純にBBのE12が○の場合は、それと同じ番号のAAのE列のセルに○を表示したいということですよね。 その場合は、すでに回答したVLOOKUP関数でできると思うのですが・・・ ちなみに、このようなケースでは、データの更新などを考慮すると、ブックを分けずに同一ブックの別シートで作業するほうが安全で確実だと思われます。

yu332
質問者

補足

何度も回答ありがとうございます!! やりたいことはその通りです。 ただ、まだ残念ながらできていません。。 今、先ほど教えていただいたVLOOKUP関数にあてはめて やってみたのですが AAのE9 =IF(VLOOKUP(A9,[【BB】.xlsx]Sheet1!A:E,5,0)=[【BB】.xlsx]Sheet1!$E$12,"○","") でやると、循環参照が含まれている為という警告がでてしまいます・・・ 何か間違っているのでしょうか?;_;

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>イメージはファイルBBのE12に  =IF($K$4=TRUE,~ と入れ、 >TRUEになったらファイルAAのE9(同じ301番)に○がつく感じです >_< 上記のIF関数の数式の意味が分かりません。 具体的に、E12セルにはどのような値が返るのでしょうか? 実際にE12セルに入力されている数式を提示されたほうが、的確な回答が得られると思います。 一般的に回答すると、以下のような数式になります。 =IF(VLOOKUP(A9,BBファイルのA:E,5,0)=BBのE12セルの値,"○","")

yu332
質問者

補足

回答ありがとうございます! 説明不足で申し訳ございません。 E12 =IF($K$4=TRUE,~ これの説明なのですが、~の所が何の関数を使ったらいいか分からなかったので書けませんでした・・・すみません。 ※ちなみにK4はチェックボックスとリンクし、TRUEかFALSHになるようになってます。 【BBのE12】 「TRUEだったら、A12の番号が何か探し、その番号(もしくは○)を表示。FALSEの場合は空白のまま」 =IF($K$4=TRUE,A12,"")         ↓ 【AAのE9】 「そのA12の番号と同じ番号のあるセル(上だとAAのA9)を探し、 AAのE9にも○を表示させる」 =IF(MATCH([【BB】.xlsx]Sheet1!$E$12,A9:A130,0,"○","") としたいのですが、ない知識を絞り出してたてた上記式ではできませんでした・・・ 何か他にいい方法はありますでしょうか?? 宜しくお願いしますm_ _m

全文を見る
すると、全ての回答が全文表示されます。
noname#101303
noname#101303
回答No.1

関数を使用して、AAのE9を変更させるなら、関数自体をAAのE9に書かないといけません。 関数自体に、他のセルを変更させる機能は有りません。 VBAでやるか、AAとBBを同時に立ち上げて、AAのE列に関数を入れましょう。

yu332
質問者

補足

回答ありがとうございます。 はい、AAのE9に関数を書かないといけないのは十分承知です>_< でもまずはBBのE12が○に代わって、それが同じ番号のあるAAのE12に 反映されるようにしたかったので。。。 (そしてAAのE9に書いたらいい関数が分からなかったというのが本音です…) 無知ですみません(;_;) セル同士を =+ でリンクさせると、ファイルBBの情報はどんどん新しいものに代わって表示されていくので、うまくいきませんでした。 そこで番号を基準に反映させたい!と思ったのですが、何かいい方法はありますでしょうか。。?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel関数で、複数条件を検索して値があれば○

    Excel関数の質問です。 シートAは貸出台帳で、シートBは返却台帳です。 貸出台帳に入力されているコードが、返却台帳にあれば、 貸出台帳の確認に○を表示したいです。 ややこしい点としては、返却台帳には以前返却された履歴(例えばAAが二つ)が 入力されているため、貸出した日付以降のコードのみを検索するようにしたいです。 シートAに、下記のような値があります。   A    B    C    1 貸出日 コード 返却確認 2  1/1   AA          ←ここには関数で○を入れたい 3  1/2   BB          ←ここは× 4  1/3   AA          ←ここは○ シートBには下記のような値があります。   A    B 1 返却日 コード 2 1/1   BB 3 1/2   AA 4 1/3   AA この場合、どのような関数を入力すればよいでしょうか?

  • excel2013です複数セルに入力した値が他のセ

    エクセル2013です。 複数のシートに複数名の住所、氏名、生年月日、電話番号、を入力し用としています。 氏名を入力すると自動的に氏名の上のセルに住所、氏名の横のセルに生年月日、電話番号が入力されるような設定はできますか? よろしくお願い申し上げます。

  • 【Excel】特定の文字でセルを分けたい。

    こんにちは A1に AA123AA345AA567 A2に AA9876AA654AA4321AA012 ・ ・ ・ とあります。 AAでセルを分けたいと思います。 B1に123 C1に345 D1に567 B2に9876 C2に654 D2に4321 E2に012 ・ ・ ・ それぞれ、どの様な式になるでしょうか。 Excel2013です。

  • 条件に一致する行のセルに値を入れるには

    シート1の「600」の値をシート2の「2006年」と一致するセルの隣に表示させたいのですがどのような関数を使えばよいのでしょうか? 宜しくお願いします。 シート1 ----------------------------------------    A   B  C 1 西暦   値 2 2006年  600 3  ---------------------------------------- シート2 ----------------------------------------    A   B  C 1 西暦   値 2 2005年 3 2006年  600 ← 2006に一致した値 4 2007年 5 2008年 ----------------------------------------

  • EXCEL関数/別シートのセル番地をセルの値で指定

    お世話になります。 どうしてもわかりません… エクセル名人の皆様、どうかお知恵をお貸しくださいませ。 Sheet1に下記のようなデータが約5000件あります。   A  B  C   D … BP  … 1 No. ID. 品目 月日…状況 … 2 1 a33  A  3/4   0    3 2 a87  B  5/11  1   このうち、BP列が1のもの約900件のみがSheet2に抽出されています。 (このためのマクロについて前回質問させていただきました) Sheet2:   A  B  C   D   E  F  G  … 1 No. ID 品目 月日             2 2  a87  B  5/11              3 7  b3  K  2/5 4 18 c44  F  12/1 5 11 r93 J 7/28 ちなみにA列のNo.は1,2,3,…と続く通し番号で、だぶりはありません。 Sheet1のデータの項目数は大変多いのですが、Sheet2にはその項目すべては必要でないため、 Sheet2には上記のとおりAからD列までの必須情報のみ抽出し、 E列以降の情報については、必要な列の情報のみ、 A列の通しNo.で紐づけしてVLOOKUP関数で取得したいと考えています。 しかし、Sheet1の表には空欄があり、これを空欄のまま表示させるために IF関数を使いたいのですが、 Sheet1の参照元のセルの番地をどう書けばいいでしょうか? とてもわかりにくくて申し訳ありません… たとえば、Sheet2のA列が18であれば(上記Sheet2のA4)、 元データはSheet1の19行目にあることになります。  A列の数値+1、が行番号ということです。 そのK列を参照する場合、 =IF(Sheet1!K19="","",VLOOKUP(A4,Sheet1!A:K,COLUMN(K4),FALSE) となるかと思うのですが、 このSheet1!K19 というセル番地を、自分で計算して手入力するというのはとても大変なので、 関数などで表現する方法はないでしょうか。 たとえば、Sheet1!K(A4+1) とか書いてみましたが、もちろんこれでよいわけもなく… 不勉強で恐縮ですが、どうしてもわかりません。 どうかご教授ください。 よろしくおねがいいたします。

  • Excelにて複数条件を満たす行の特定のセルの値を返す関数

    Excelにて複数条件を満たす行の特定のセルの値を返す関数を作りたいのですが、上手く行きません。 <Sheet1>   A列  B列  C列 1 2008/6/1 ★  320 2 2008/6/1 ☆  300 : : : Sheet2のA1に、「A列が2008/6/1で、B列が☆の場合、C列の値を返す」という関数を入れたいのですが、どうも上手く行きません。 良い式がありましたら教えて下さいm(_ _)m

  • 複数の条件に合う行の特定のセルを返す

    ほぼ同じ質問をいくつか見かけたのですが、その式を自分の内容に置き換えても全く希望通りの結果が出ず、質問させてください。 2 1 Aさん 4 1 Bさん 5 1 Cさん 2 2 Dさん 5 2 Eさん セルのA1には「2」、B1には「1」、C1には「Aさん」と入ったシートがあり、例えばセルのD1に A列、B列ともに「2」が入力されている4行目のC列「Dさん」という値が反映して欲しいのですが、その関数が分からなく困っています。 他にもA列が「5」、B列が「1」の結果が(Cさん)が欲しい時もあり、条件にはA列の値とB列の値を使う方法で考えています。 お知恵を貸してください。

  • エクセルファイルのセル値に特定文字列を追加して別ファイルに

    VB2008でのプログラム方法についての相談です。以下の手順を実現したいです。 (1)エクセルファイルのあるセル中にあるデータを取得 例)A1セルの値"AA"、A2セルの値"BB"、A3セルの値"CC"..... (2)決まりきった特定文字列と(1)の値を結合 例)くっつけたい文字列 " "+AA ⇒ くっつけたい文字列"AA" くっつけたい文字列 " "+BB ⇒ くっつけたい文字列"BB" くっつけたい文字列 " "+CC ⇒ くっつけたい文字列"CC" (3)テキストファイルを生成 ○○○.txt 例) くっつけたい文字列"AA" くっつけたい文字列"BB" くっつけたい文字列"CC"

  • 複数の条件で他のシートを検索する

    先日教えてくださった方々ありがとうございました。 また質問なんですが、先生方知恵を貸してください。 sheet1 A | B | C | D | E | F | G ======================= 1 | 2 | 3 | AA | BB | 00 | 空欄 1 | 2 | 3 | BB | CC | 11 | 空欄 2 | 3 | 4 | CC | AA | 22 | 空欄 5 | 6 | 7 | BA | CA | 12 | 空欄 sheet2 A | B | C | D ========================== AA | BB | 00 | 3 AD | C | 01 | 4 BB | CC | 11 | 2 CC | AA | 22 | 4 CA | BA | 20 | 5 BA | CA | 12 | 1 このように入力されています sheet1のDEFに完全に一致する組み合わせをsheet2のABCから探し Dをsheet1の空欄Gに出力させる さらにそのGと一致するsheet1のABCがあれば文字色を変える というものです。 分かり難いですが、教えてください。 関数のVLOOKUPで出力までは出来たのですが、 文字色を変えることが出来ませんでした。 マクロで全部やってしまった方が早そうなので知恵をお貸しください。 。

  • 数式の入った連続セルの行番号を比較

    Excel2000を使っています。 例えばSheet1 A列には   A 1 300 2 500 3 100 4 400 5 200 というような数字が数式 =Sheet2!A26、=Sheet2!B3 というように不規則に割り当てられて表示されています。 そこで、例えば A1とA2 のように上下二つのセルの行番号を関数を使って比較し、 同じなら B1に TRUE または FALSE と結果を表示したいのですがどのようにすればいいのでしょうか?

専門家に質問してみよう