• ベストアンサー

条件によりデータが異なる場合

sheet1に下記項目があります  A     B    C     D    E    F faxコード 振込金額 相手負担 請求金額 当方負担 支払先 520     49370    630    50000       佐藤 300     25000          25000   420   鈴木         sheet2に以下のコード表があります  A    B    C 支払先 当方負担 先方負担 佐藤   200    520 鈴木   300    530 やりたい事:sheet1のfaxコード欄(相手負担・当方負担欄のデータの有無を読み取る)に佐藤、鈴木の520、300のコードを自動的に入れる関数をご教授ください。

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

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.3

No.1です。 VLOOKUP関数を使うなら Sheet1 の A2に =IF(COUNTIF(Sheet2!A:A,F2),VLOOKUP(F2,Sheet2!A:C,2+(C2<>""),FALSE),"") でいいと思います。( コピー&ペーストしてみてください ) 結果は、No.1と同じです。 ◆ VLOOKUP(検索値,範囲,列番号,検索の型) の列番号の部分が、2+(C2<>"") です。 (C2<>"") は、C2セルが空白ではない、という論理式( 条件 )で、C2( 相手負担 )が空白でなければ真( TRUE )、空白なら偽( FALSE )です。 TRUE とか FALSE の論理値は、四則計算をすると、TRUEは 1、FALSEは 0 になります。 この場合の四則計算は 2+(C2<>"") です。 ですから、2+(C2<>"") は、 C2 が空白でなければ、2 + TRUE、つまり 2 + 1 = 3( 列目 ) C2 が空白なら、2 + FALSE、つまり 2 + 0 = 2( 列目 ) になります。 このようにすることで、 C2( 相手負担 )が空白でなければ、Sheet2 の A列から 3列目、つまり C列を参照し、 C2が空白なら Sheet2 の B列を参照することになり、1つの VLOOKUP関数で条件によって参照する列を変えることができます。 No.1 の INDEX関数で使っている 2+(C2<>"") も同じことです。

osm310
質問者

お礼

大変参考になりました 有難うございました

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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>faxコード  faxは相手のファクシミリの番号と関係があるのですか。 そのコードとは何かイメージできない >相手負担、先方負担は同じことですか。質問では、合わせた表現にしてほしい。 ○faxコード欄にコードを入れたい。現在は空白ですか? ○入れる情報を取ってくる方法は、Sheet1の支払い先の佐藤、鈴木が、Sheet2の支払い先と一致する行を探し、当方負担がスペースなら Sheet2の相手(=先方)負担を、相手負担が空白なら当方負担を引っ張って、faxコードにセットしたい こういうことですか。 それにしても当方負担の420は単位はエンですか。 Sheet1とSheet2の負担の額が佐藤で630と520のように違うのでしょうか? IF文でVLOOKUPを使う問題ではないでしょうか?。 例データ Sheet1に faxコード 振込金額 相手負担 請求金額 当方負担 支払先    49370 630 50000 佐藤    25000 25000 420 鈴木 Sheet2に 支払先 当方負担 先方負担 佐藤 200 520 鈴木 300 530 Sheet1のA2に =IF(E2="",VLOOKUP(F2,Sheet2!$A$2:$C$3,3,FALSE),VLOOKUP(F2,Sheet2!$A$2:$C$3,2,FALSE)) と入れて、A2まで式を複写する。 結果はA2、A3に 520 300 となりました。

osm310
質問者

お礼

ありがとうございました 大変参考になりました

全文を見る
すると、全ての回答が全文表示されます。
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.1

こんにちは~ Sheet1 の C列( 相手負担 )に金額が入れば、E列( 当方負担 )は空白、 E列に金額が入れば、C列は空白、という理解でよろしいでしょうか? Sheet1 の A2に =IF(COUNTIF(Sheet2!A:A,F2),INDEX(Sheet2!A:C,MATCH(F2,Sheet2!A:A,0),2+(C2<>"")),"") と入れて( コピー&ペーストして )、必要なだけ下にフィルコピーしてください。

osm310
質問者

お礼

有難うございました 大変参考になりました

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

関連するQ&A

  • EXCELでデータを条件わけして抽出する方法はありますか?

    EXCELでデータを条件分けして抽出する方法はありますか? EXCELでsheet1の元データから、条件を検索して、 sheet2とsheet3に移動させたいです。 sheet 1(元データ)   A  B  C  D 2 日付 名前 作業 時間 3 8/1  鈴木 1 1.0 4 8/1  佐藤 1  1.5 5 8/1  藤原 1  2.0 6 8/2 鈴木 2 1.0 7 8/4 佐藤 2 1.0 8 8/4 鈴木 3 2.5 9 8/5 鈴木 4 1.0 10 8/5 藤原 4 4.0 sheet2 (新規データ)  A   B  C  D 2 日付 名前 作業 時間 3 8/1 鈴木 1 1.0 4 8/1 藤原 1 2.0 5 8/2 鈴木 2 1.0 6 8/4 鈴木 3 2.5 7 8/5 鈴木 4  1.0 8 8/1 藤原 4  4.0 sheet3   A  B  C  D 2 日付 名前 作業 時間 3 8/1 佐藤 1  1.5 4 8/4 佐藤 2  1.0 ・ sheet1での検索条件は、・作業4があるときは、『名前』が同じ人のデータ(作業1.2.3.4)を sheet2に移動させる(例でいくと鈴木さんは、作業1.2.3.4それぞれある) ・この時、作業1,4の人も移動させる(例でいくと藤原さんは1,4のみ) ・sheet3は、sheet2で移動しなかった人→つまり、『作業4』がない人のみ移動 ・人は必ず1度しかでてこないです。結果、『作業4』は必ず同じ人には1回のみです。 私が考えたところ、 1.『作業4』がある人を先にsheet2に移動させて、sheet2で同じ人をsheet2に抽出する 2.sheet3に『作業4』がない人を抽出する のやり方でできるとおもうのですが、やり方がわかりません。 できれば簡単なマクロがいいです。説明が不十分でわかりにくいこともあるとおもいますが、よろしくお願いします

  • 別シートの条件に合うセルを抽出したい

    例えば、sheet1に A列 B列   C列 1/1 東京  佐藤 1/1 横浜  鈴木 1/2 北海道 山田 1/3 大阪  加藤 と入力したとします。 このとき、sheet2のA1に1/1と入力すると、Sheeet2のA2、A3に1/1、B2、B3に東京、横浜、C2、C3に佐藤、鈴木と自動的に表示されるようにしたいのですがどうしたらよいのでしょうか?

  • エクセルで2つの条件を元に

    エクセル2007で名簿を作っています。 1ヶ月ごとにメンバーの順が変わります。 シート1(番号順に名簿を作りました)   A  B   C  1 1     山田 2 2     木村 3 3 副長 佐藤 4 4     鈴木 5 5 班長 田中 6 6     長田  シート2(こちらがメンバーに配る名簿です)   A   B  C   D 1 班長    1    3 2 田中    山田  鈴木 3 4 副長    2    4 5 佐藤    木村  長田 A2に田中,A5に佐藤を選んでくるのはvlookupで成功しました。 質問したいのは C列D列に上記の番号のようにシート1の名前を入れていきたいのですが,田中,佐藤の分を抜いた上で番号の若い順に選んできたいのです。 どのような関数をどのように使えば成功するでしょうか。  

  • 条件にあった複数データを組合わせて別のセルに表示するには?

    例えば、以下のデータがセルに入っていたとして A列には姓 B列には名 A1:鈴木  B1:一郎 A2:鈴木  B2:次郎 A3:鈴木  B3:三郎 A4:佐藤  B3:あきら A5:佐藤  B3:けんた 同じ姓にあてはまるデータの名を、組合わせて別のセルに表示したいのです。 結果イメージ C1:鈴木  D1:一郎 次郎 三郎 C2:佐藤  D2:あきら けんた このようなことAccessかExcelで出来ますか?

  • エクセルで条件に一致したセルの隣のセルを取得したい

    下のような「得点」という名前のシートがあります。 (「田中」のセルがA1です。)  [ 田中 ][ 10 ][ 200 ]  [ 山田 ][ 21 ][ 150 ]  [ 佐藤 ][ 76 ][ 250 ]  [ 鈴木 ][ 53 ][ 350 ] 別のシートのA1セルに、「佐藤」と入力すると、  [ 佐藤 ] 「得点」シートから「佐藤」の列を見つけて、B1、C1に  [ 佐藤 ][ 76 ][ 250 ] のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。 「得点」シートでは氏名が重複する事はありません。 IF文を使うと思うのですが、いまいち良く分かりませんでした。 よろしくおねがい致します。

  • エクセルで別シートを参照していて、参照元のデータを変更した場合

    エクセルで別シートを参照したいのですがうまくいきません。 (1)Sheet1には顧客データが入っています。 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 佐藤 大阪 女 4 鈴木 福岡 女 (2)Sheet2ではSheet1の顧客データの一部+獲得ポイントのデータが入っています。Sheet2のA列とB列に「=Sheet1!A2」とういう風に関数を入れてSheet1を参照しています。C列~は手入力でデータを入力しています。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15  2 小川 東京  1    5 3 佐藤 大阪  1    5 4 鈴木 福岡  1    5 (3)Sheet1に新たに顧客情報を入れますが、氏名は五十音順にしたいので行を挿入して入力します。(行3に加藤さんを入れました) 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 加藤 沖縄 男 4 佐藤 大阪 女 5 鈴木 福岡 女 (4)私の希望としては、(3)をしたらSheet2は↓のようになってほしいのですが、実際には(2)の状態のままです。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15   2 小川 東京  1    5 3 加藤 沖縄   4 佐藤 大阪  1    5 5 鈴木 福岡  1    5 (5)Sheet1の変更結果をSheet2に反映することは無理なのでしょうか?

  • 条件に当てはまるデータの個数を抽出したい

    A列に名前、B列にアンケート結果が書いてある表があります。 その中から、Aさんが「3」または「4」と答えたアンケートの個数を出したいのですが、 DCOUNT・SUMIF…色々試してみたのですが、望むものにならなくて… A列 B列 佐藤 3 鈴木 2 佐藤 4 鈴木 2 という表があり、たとえば、佐藤さんが「3・4」と答えた個数=2 この「=2」を求めたいのですが。。

  • エクセル 最新データのみを表示させたい場合

    エクセルに、名前と来訪日がのったシートがあったとします。 その名前の最終来訪日のみを表示させる、関数等はございますでしょうか?    A列  B列  1 佐藤 2008/10/5 2 鈴木 2008/1/20 3 上田 2008/5/25 4 鈴木 2008/9/15 5 小野 2008/3/7 6 上田 2008/2/3 7 佐藤 2008/10/16 8 鈴木 2008/11/13 9 佐藤 2008/9/8     ・     ・     ・ シンプルに見えて、意外と難しく私の知識では対応できませんでした。 お手数ですが、お知恵をいただけますと幸いです。

  • 重複データを1行にまとめたい

         A  B  C 佐藤 AA 佐藤    AA 佐藤       AA 鈴木 AA 鈴木       AA 鈴木    AA これを次のようにまとめたいのです。      A  B  C 佐藤 AA  AA  AA 鈴木 AA  AA  AA 何かよい方法はあるでしょうか?過去ログを参照しなさい。というログをみつけたのですがそのログを見つけ出すことができませんでした。よろしくお願いします。

  • EXCEL(マクロ)2つのデータ比較について

    いつも活用させていただいているものです。 今回は、以下の内容を行いたいと思います Sheet1とSheet2のA列(NO)を比較して、Sheet2にない項目(NO、名前、年齢、性別)をSheet2の4行目に追加したいと考えております。 どのようなプログラムを組めばよろしいでしょうか。 【Sheet1】 |A  |B | C | D | --------------------------- 1|NO  |名前 |年齢 |性別| 2|001 |鈴木 |11  |男 | 3|002 |佐藤 |15  |女 | 4|003 |長島 |29  |女 | 【Sheet2】  |A  |B | C | D | --------------------------- 1|NO  |名前 |年齢 |性別| 2|001 |鈴木 |11  |男 | 3|002 |佐藤 |15  |女 |               ←追加をしたい お願いします。

専門家に質問してみよう