• ベストアンサー

Excelでこのようなときはどんな関数にすればよいでしょうか

imogasiの回答

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

既に出ているご回答が相当理解するのに手間が掛かりそう に思います。それで質問者の希望に無いのですが、VBAを 参考までに載せます。ロジックも初歩的な、総なめ法を使っているので、やっていることは単純で判りやすいと思います。そこがVBAの良いところだと思います。 ぜひ見てください。 Sub test02() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") 'Sheet1とSheet2の最下行を知る d1 = sh1.Range("A1").CurrentRegion.Rows.Count d2 = sh2.Range("A1").CurrentRegion.Rows.Count '------Sheet1の各々全行について、Sheet2の '全行に渡って同じ物があるかどうか総なめで比較する For i = 1 To d1 s1 = sh1.Cells(i, "A") & sh1.Cells(i, "B") & sh1.Cells(i, "C") For j = 1 To d2 s2 = sh2.Cells(j, "A") & sh2.Cells(j, "B") & sh2.Cells(j, "C") If s1 = s2 Then '見つかればSheet1のA列に黄色を付ける sh1.Cells(i, "A").Interior.ColorIndex = 6 End If Next j Next i End Sub

yu_ko
質問者

お礼

ありがとうございます! また違った方法をお教えくださって勉強になります。 関数の方が使い慣れているため、理解は簡単でした。 でもVBAもチャレンジしてみようとは思っておりますので その時にはぜひこの例で勉強してみようと思います!

関連するQ&A

  • 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のセルに色をつけたいのです。 関数や条件付書式などで、できますでしょうか。

  • Excel 関数 照合した結果がどこにあるのか表示したいのですが

    照合したいデータがあります。 A列とB列のセルを照合の結果、B列のセルがA列のどこにあるか、C列に行番号を表示したいのですが。 どのような関数がいいのか教えてください。よろしくお願いします。   A列   B列   C列 1 リンゴ みかん  2 2 みかん いちご  4 3 バナナ レモン  6 4 いちご メロン  5 5 メロン ぶどう  × 6 レモン

  • エクセル 表の表示について

    どなたかお知恵をお貸しいただけたら幸いです。 現在エクセルの表で、日付と買ったものが並んでいるのですが、その表示を一括で変更できたらと思っています。 A列 4/1  りんご B   4/1  みかん C   4/1  いちご D   4/2  みかん E   4/2  メロン F   4/3  いちご 上記の表があり、これを下記のような表に簡単に直すやり方が見つけられずに悩んでおります。 A列  4/1     4/2      4/3 B  りんご    みかん   いちご  C  みかん   メロン D  いちご どなたかよろしくお願いいたします。

  • ★エクセル関数に詳しい方、よろしくお願いします

    ★エクセル関数に詳しい方、よろしくお願いします はじめまして質問を利用させていただきます。 エクセル関数に詳しい方、どうか教えてください。 いつもこの質問コーナーをヒントに↓の関数を作成して、シート1の★c列に 値を抽出することができました。 <シート1>の★c列に関数を入れて、a列、b列の一致したデータを<シート2>から抽出 =INDEX(シート1!c$2:c$10,MATCH(2,MMULT((シート2$a2:F$a10=a2:b2)*1,{1;1}),))    <シート1>           <シート2 データ> a列  b列   ★c列      a列  b列    c列 101  キウイ  北海道    101  キウイ  北海道 201  キウイ  沖縄県    101  ばなな  北海道 101  ばなな  北海道    101  オレンジ 北海道 201  ばなな  沖縄県    101  いちご   北海道 101  オレンジ 北海道    101  メロン   北海道 201  オレンジ 沖縄県    201  キウイ   沖縄県 101  いちご  北海道     201  ばなな  沖縄県 201  いちご   沖縄県    201  オレンジ 沖縄県 101  メロン   北海道     201  いちご  沖縄県 201  メロン   沖縄県     201  メロン   沖縄県 **********************************************  この下からが質問内容になりますm(_ _)m ********************************************** しかし、表が少し複雑になってしまい、 上で作成した関数が使えなくなってしましました。 ●<シート2>のb列の文字が複雑になってしまった場合、 <シート1>の★c列に、うまくデータを抽出することはできますでしょうか? <シート1>          <シート2 データ> a列  b列   ★c列    a列   b列     c列 101  キウイ  #N/A    101  甘いキウイ 北海道 201  キウイ  #N/A    101  甘いばなな 北海道 101  ばなな  #N/A    101  オレンジ   北海道 201  ばなな  #N/A    101  いちご小   北海道 101  オレンジ #N/A    101  メロン小   北海道 201  オレンジ #N/A    201  黄色キウイ 沖縄県 101  いちご   #N/A    201  ばなな小  沖縄県 201  いちご   #N/A    201  オレンジ大 沖縄県 101  メロン   #N/A    201  いちご大  沖縄県 201  メロン   #N/A    201  メロン大   沖縄県 もし、ご存知の方がいらっしゃいましたら、どうかご教示願います。 どうかよろしくお願いいたします。

  • エクセルで集計

    エクセルで複数のシートの表の文字列を元にその横のセルにある 数字を選びだして別シート(合計用のシート) に合計の出し方を教えて下さい 一枚目のシート     A      B     1   イチゴ   2 2    メロン     3 3   レモン     4 二枚目のシート     A      B     1   イチゴ    1 2    メロン     2 3   レモン     1 合計のシート(ここを自動で集計したいです)     A       B     1   イチゴ    3 2    メロン      5 3   レモン      5

  • エクセル関数で教えてください。

    エクセルでB列には商品名(セルB1にみかんセルB2にみかんセルB3にみかんセルB4に柿セルB5に柿セルB6に柿、C列にはみかん柿の数量ランク(例:C1に1~、C2に10~、C3に100~と記入)、D列にはC列のランク毎の単価が表示されています。(D1に1000、D2に800、D3に500、D4に1500など) この表を、ほかのシートのA1にみかん、A2に柿と入力させて、B1に関数を入力してB1セル内で数量ランクの1~1000、10~800、100~500と横一列に表示させたいのですが可能でしょうか? どのような関数が適当でしょうか? このパソコンはエクセル使えず、添付できずわかりにくい説明で申し訳ないのですがどなたか教えてください。よろしくお願いいたします。

  • エクセルで一つのセルに別Bookのデータを貼り付け

    エクセルで別Bookにある複数の参照データを一つのセルに 貼り付けたいのですが、 例えばBook1には以下のようなデータがあります。    A列       B列 1 バナナ     カテゴリ1 2 もも       カテゴリ1 3 りんご      カテゴリ1 4 メロン      カテゴリ1 5 バナナ     カテゴリ2 6 みかん     カテゴリ2 7 もも       カテゴリ3 8 バナナ     カテゴリ3 9 いちご     カテゴリ3 10 もも      カテゴリ4 Book2にはB列にカテゴリ1・カテゴリ2・カテゴリ3というように、 項目が入力されています。 Book1を参照して、B列のカテゴリ1に当てはまるA列の値(例ではバナナ、もも、りんご、メロン)を Book2のカテゴリ1の横(A1)の一つのセル内に貼り付けたいのですが 可能でしょうか?    A列      B列 1 バナナ   もも       カテゴリ1   りんご   メロン 2 バナナ     カテゴリ2   みかん  3 もも       カテゴリ3   バナナ   いちご             つまり、Book2を上記のような形にできればと思います。 拡張子は .xlsxです。 A列の項目とB列のカテゴリ数は数1000ほどあり、 各カテゴリの数は1つのものもあれば、10数個あったりと不揃いです。 カテゴリに見合わせてコピペしていくのは大変なので 良い方法があれば、ご教授宜しくお願い致します。    

  • EXCEL セル内のデータを置き換えたい

    うまく説明できないのですが、 Sheet1のA列とB列に、1つのセルに複数のデータが以下のように入っています。(データの間に「,」があります。)     A列             B列 1行 6599A,6599B,6599C  6599A 2行 6599B,6599C      3行              6599A,6599C これは商品コードでして、Sheet2に明細があります。 A列    B列 りんご  6599A メロン   6599B みかん  6599B Sheet1のデータを、「りんご」「メロン」「みかん」に置き換えたいのです。 データの数が、たくさんあるので、コピー、ペーストでは対応できません。 よい方法をお教えください。よろしくお願いいたします。

  • VLOOKUP関数について(初心者です)

    エクセルで <sheet1>    A     B     C  1  1 2  2 3  3 <sheet2>    A    B    C 1  1    りんご  3/1 2  2    みかん   3  3    いちご  3/20 というファイルがあります。 そこで <sheet1>のB1 のセルに =VLOOKUP(A1,sheet2!A:C,3,0) という関数を入れます。 (この例ではsheet1と2は同じになってますが  実際はセルの大きさや行が違います。  つまり、sheet2で入力したものを  sheet1でまったく違う形にしてプリントアウトしたいんです) 【ここからが質問です】 上記の場合で、 sheet2のC列に何も入力されていないとき sheet1のB1に何も表示しないようにできますか? 現在は#N/Aとなっています。 よろしくお願いします。

  • COUNT IF???

    エクセル初心者です。 A列とB列にある項目で違うモノをはじき出したいのですが。 A列     B列    りんご   りんご    みかん   りんご りんご   みかん メロン    メロン みかん みかん いちご メロン A列にもB列にもないのが『いちご』という具合に答えを出したいのですが、何か良い方法を教えてください。 よろしくお願い致します。