• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:以前と似た質問でエクセル関数=複数条件付関数です)

エクセル関数=複数条件付関数:野菜番号と名称を自動取得する方法

このQ&Aのポイント
  • エクセル関数を使用して、シート1の中で野菜かつ判定が○の場合の番号と名称をシート2に自動的に取得する方法を教えてください。
  • シート1には野菜の情報が記載されており、判定結果がマル(○)の場合に該当の番号と名称をシート2に取り込みたいです。
  • シート1のA列に野菜と入力し、D列が○の場合に、その番号と名称をシート2に自動的に表示する方法を教えてください。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.4

>当てはまらない場合は空欄にしたいのですがどうしたらよろしいですか? 条件に当てはまらない場合とはどういう場合が不明ですが、 以下でどうでしょうか? Excel2003までの場合、またはExcel2003まででも開く可能性がある場合: =IF(ISNA(VLOOKUP(A1,Sheet1!B1:D3,2,FALSE)),"",VLOOKUP(A1,Sheet1!B1:D3,2,FALSE)) Excel2007以降のみの場合: =IFERROR(VLOOKUP(A1,Sheet1!B1:D3,2,FALSE),"")

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

その他の回答 (5)

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

A列が野菜、D列が○の2つの条件で抽出するなら、数式は複雑になりますが、条件部分などに配列計算をしない、以下のような数式のほうが計算負荷が少ないかもしれません(Ctrl+Shift+Enterの操作の必要はありません)。 =INDEX(Sheet1!B:B,SMALL(INDEX(((Sheet1!$A$1:$A$100<>"野菜")+(Sheet1!$D$1:$D$100<>"○"))*1000+ROW($A$1:$A$100),),ROW(A1)))&"" データ数が多いなら、Aheet2のB列の式だけ上記の数式を入力し、以下のようにB列の値が空白なら空白を返す数式にしたほうが、さらに計算負荷を少なくすることができます。 (B列に上記の式で範囲を「Sheet1!C:C」に変更した数式を入力し、A列はそのセルの値を参照して配列計算を実行しない) =IF(B1="","",INDEX(Sheet1!B:B,SMALL(INDEX(((Sheet1!$A$1:$A$100<>"野菜")+(Sheet1!$D$1:$D$100<>"○"))*1000+ROW($A$1:$A$100),),ROW(A1))))

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

ご質問ではA列には必ずしも野菜が入力されていない場合もあるということですね。その場合には式もやや複雑になります。作業列を作って対応するのがよいでしょう。 シート1では2行目から下方にデータが入力されているとします。 E2セルには次の式を入力して下方にドラッグコピーします。 =IF(D2="","",IF(A2<>"",A2&D2&COUNTIF(E$1:E1,A2&D2&"*")+1,INDEX(A:A,MATCH("ー",A$1:A1))&D2&COUNTIF(E$1:E1,INDEX(A:A,MATCH("ー",A$1:A1))&D2&"*")+1)) *は半角英数モードでShiftキーを押しながら「け」のキーを押します。 "ー"ではーが半角英数モードではいけません。一旦式を入力した上で最後にひらがなモードでーを入力するのがよいでしょう。 お求めの表はシートに表示させることにしてシート1でA列で野菜とか使っていますので魚などのケースもあるのでしょう。それらを考慮してA1セルに野菜と入力し、×の選択もできるようにB1セルには○を入力します。その上でA2セルには次の式を入力してB2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COUNTA($A$1:$B$1)<>2,"",IF(COUNTIF(Sheet1!$E:$E,$A$1&$B$1&ROW(A1))=0,"",INDEX(Sheet1!$B:$C,MATCH($A$1&$B$1&ROW(A1),Sheet1!$E:$E,0),COLUMN(A1)))) 勿論該当のデータが無ければエラーではなく空白の表示になります。

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

>すいません、関数に含まれているコメジルシみたいな文字はなんでしょうか? *はアスタリスクです。「かつ」や「AND」の条件なので*を使用しています。 通常は数式では「かける」のとき使用します。 =2*3 とセルに入れると6となります。

bananaroad4363
質問者

補足

分かりました、シート2のB列の名称がはいるとこなのですが、野菜かつ○なら名称がはいるのですが、条件に当てはまらなかった場合にはエラーがはいるのですが、当てはまらない場合は空欄にしたいのですがどうしたらよろしいですか?条件に当てはまった場合は教えていただいたとおり名称がきます。 何度もすいません。

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

ムズカシイ数式の応用ができないようなら,前回にお話しした猿でもできる方法で。 シート1のE1に =IF(AND(A1="野菜",D1="○"),ROW(),"") と記入してリストの下端まで埋めておき, シート2のA1に =IF(ROW(A1)>MAX(Sheet1!E:E),"",INDEX(Sheet1!B:B,SMALL(Sheet1!E:E,ROW(A1)))) シート2のB1に =IF(ROW(A1)>MAX(Sheet1!E:E),"",INDEX(Sheet1!C:C,SMALL(Sheet1!E:E,ROW(A1)))) とそれぞれ記入して下向けにコピーして埋めておくとできます。 いずれの数式もCtrl+Shift+Enterはしない,ふつーのただの数式なので間違えないよう注意してください。 前回トラブっていた「実はセル結合してました」みたいな表でも,支障なく計算できます。

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

B列の番号に重複がないなら、以下でできます。 シート2、A1 =IF(SUMPRODUCT((Sheet1!$D$1:$D100="○")*(Sheet1!$A$1:$A100="野菜"))<ROW(Sheet1!A1),"",INDEX(Sheet1!B$1:B$100,SMALL(IF((Sheet1!$D$1:$D100="○")*(Sheet1!$A$1:$A100="野菜"),ROW(Sheet1!$A$1:$A$100)),ROW(Sheet1!A1)))) シート2、B1 =IF(SUMPRODUCT((Sheet1!$D$1:$D100="○")*(Sheet1!$A$1:$A100="野菜"))<ROW(Sheet1!A1),"",VLOOKUP(A1,Sheet1!B1:D3,2,FALSE))

bananaroad4363
質問者

補足

有り難うございます。すいません、関数に含まれているコメジルシみたいな文字はなんでしょうか?

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

関連するQ&A

  • エクセル関数=条件付きシート別摘出方法

    すいません、皆さんの質問・回答を参考にして挑戦してみたのですがどうしても分かりませんので助けてください。if関数、vlookup関数で解決できるのかと思います。 シート1とシート2があります。 シート1にはA1~C3までの範囲でA1~A3には番号、B1~B3には名称、C1~C3には自ら入力する判定結果(マルorバツ)が入ってます。 シート1 A B C 1 なす ○ 2 ねぎ × 3 にら ○ シート2 A B 1 なす 2 にら のようにシート1のC列で○の判定した番号と名称がのみがシート2のごうに自動でもっていけるようにしたいのですがどう関数組んでいいのか分かりませんので、何方か申し訳ありませんが教えてください。  

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

  • エクセルにおける複数条件の関数について

    下記の内容を別シートに集計したいのですが、 関数が間違えているのかうまく数値が表示されません。 Aシートに以下の情報が入っています。 Cの列、C5からC54までの範囲に1から100の間で数字が入っています。 Dの列、D5からD54までの範囲に2013/6/1から2013/7/15までの日付が入っています。 例:C5に2と入っていて、D5に2016/6/3と入力されていれば該当し、 C5の2という値を別シートにその他のC列とあわせて合計を表示されるようにしたいです。 表示をさせたいBシートには、 D列のD5からD54範囲内の6月分(2014/6/1から2014/6/30まで)で、 C列に入力されている数値の合計を1つのセルに表示させたいです。 この場合の関数をお伺いしたい内容になります。 今、うまくいかない関数は、以下のような内容です。 =SUMPRODUCT(('201406'!$C$5:$C$54="○")*('201406'!$BW$5:$BW$54>="2014/6/1"*1)*('201406'!$BW$5:$BW$54<"2014/7/1"*1)) これだと、C列に○が入っていれば、その合計を表示できると思いますが、 1や5などの数字の合計を表示させるには・・で、困っています。 アドバイスいただけたらと思います。 ※関数をそのまま入力いたいと思っていますので、 返信は、関数でアドバイスいただけたら幸いです。 宜しくお願い致します。

  • 関数 各条件により貼り付けるデータを変えたい

    二つのワークシートがあり、各条件により貼り付けるデータを変えたいのですが、IF文等の関数で可能でしょうか。 ワークシートW   A列    B列    C列    D列    E列   G列 1 倉庫   商品1   10円 2       商品2   50円 3 倉庫   商品3   20円 4       商品4   15円 5              17円 ワークシートY   A列     B列    C列 1 if関数(1)  if関数(2)  if関数(3) 2 if関数(4)  if関数(5)  - このデータで、以下のことをしたいのですが、可能でしょうか ワークシートWのA1とB1に文字がある場合、ワークシートYのA1をワークシートWのD1に貼り付ける ※これを同じ条件で、貼り付けるデータを「ワークシートWのE1にワークシートB1を貼り付け」、 「ワークシートWのG1にワークシートWのC1を貼り付け」をしたい また、ワークシートWのA1に文字がないが、B列に文字がある場合、ワークシートY2をワークシートWのD2に貼り付ける ※これを同じ条件で、貼り付けるデータを「ワークシートWのE2=ワークシートYのB2」、 「ワークシートWのG2にワークシートWのC2を貼り付け」をしたい なお、ワークシートYにはIF文が入力されています。 ご存知の方いらっしゃればお願いします。

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

  • エクセルで複数のセルの合計をIF関数も含めて出す方法

    初歩的だと思うのですが・・ 異なった文字が入った各セルの合計を別セルにてIFを使用し、数字を出しながらなおかつ集計する方法がわかりません。  A   B    C   D 1 い   ろ 2     は   に   3 ほ       4 へ   と 5 A列に文字が入ると常に 500 B列に文字が入ると常に 200 C列に文字が入ると常に 100 として、D列にA-Cの合計(何もなければ空欄)を出したいのです。この場合だとD1=700, D2=300, D3=500...となるように。 IF(A1="","",500)+IF(B1="","",200)+IF(C1="","",100) のちゃんとした関数式を教えてください。よろしくお願いします。。

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • 条件にあう複数の行を別のシートに抽出する

    例 データ Sheet2のA1に(条件の)2 Sheet1 A列  B列  C列  D列 コード 名前 計数 1 A 12 2 B 13 1 2 B 14 2 4 D 15 5 E 16 6 F 17 2 B 18 3 3 C 19 5 E 20 D列は =IF(A2=Sheet2!$A$1,MAX($D$1:D1)+1,"") 下方向に式を複写。 Sheet2に行って =INDEX(Sheet1!$A$1:$D$100,MATCH(ROW()-1,Sheet1!$D$1:$D$100,0),COLUMN()) 式を右方向に式複写 A2:C2の式を下方向に式複写。 結果 2 2 B 13 2 B 14 2 B 18 #N/A #N/A #N/A ーー #N/Aを空白にするには ROW()-1がSheet1のD列のMAXを超えていると空白と いうIF文を加えると良い。   以前、上記のように質問のご回答を頂いたのですが、更に質問があって再度聞きたくて、再質問します。上記の場合は、「2」だけでしたができました。それで後の2以外の「1~6」について、Sheet3・4・5・6・7に抽出したいと思いますが、関数では無理でしょうか。初心者で色々な記事もみますがよくわかりません、お教え下さいませんでしょうか、お願いします。

  • エクセル関数の質問。

    エクセル関数の質問です。 画像添付します。 画像のように、A・B列に「0」「1」「2」「空欄」がランダムに並んでいます。 C列に判定を表示します。 判定基準は、A・B列が同じ=○        〃  異なる=×        〃  空欄有り=△です。 この場合、IF関数とCOUNTIF関数で式を作ったのですがエラーが出てしまいます。 お分かりの方がいましたら教えて下さい。 宜しくお願い致します。

  • エクセル IF関数 初心者です。。

    A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

このQ&Aのポイント
  • EPSON PHOT+を使用して年賀状の印刷をしようとした際、画面右脇の印刷開始マークが表示されず印刷できない状況です。
  • 住所録も入れた状態で印刷ができないため、困っています。
  • PCはWindows 11を使用しています。問題があれば教えていただきたいです。
回答を見る

専門家に質問してみよう