• ベストアンサー

エクセルの関数について

画像の黄色セルにどのような関数を書けばいいでしょうか (目標)「科目」と「補助科目」を入れると自動で「科目名」を検索して入力したい (1)下線部分はあらかじめ入力されている (2)科目一覧はSheet2、補助科目一覧はSheet3 (3)「科目」がSheet2A列にある かつ 補助区分が「0」 なら →Sheet1C列にSheet2の科目名を返す。 (4)「科目」がSheet2A列にある かつ 補助区分が「1」 なら →Sheet1C列にSheet3の科目と補助科目が一致するの科目名を返す。 VBAは使用できず、関数でどう書けばいいか分かりません。 よろしくお願いします

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

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

ズバリ回答ではないのですが。 本件は、関数では難しい(複雑になって手に負えない)課題だと思う。 エクセルを十分経験してないため、何とか方法があって、知っている人が居て、教えてもらえると思うのだろうが。 ここ程度の質問コーナーではそうはいかないことが多いと思う。 ーー Excel向きにエクセル術語的に言えば(Googleで照会するとき、どういう語句で照会すればよいかと言えば)、「2条件(2項目)での検索(特にVLOOKUP関数利用)」とでもいうべきかと思う。 >VBAは使用できず、 会社としては、セキュリティの問題により、VBAを弄られては困るというのも、よくわかる。  だからそもそも、一般論として、一般社員が、独自にこういうソフト作成にのりだすべきではないのだ、ということだと思う。 エクセルなど仕事に使いたければ、VBAが必須になるのは目に見えて居る、が小生の持論。それをきんしするのだからね。 プロならSQLなど使って、この課題を簡単にやると思うが。 (アクセスを使わせてくれれば、社員の勉強と工夫で、一般操作で解決し(VBAは使わない)そうだが) よく(書籍・WEB記事で)出てくる方法論は (1)2次元の表を作る(縦にA項目、横方向にB項目を並べる) これは2条件どまりだ。これだとMATCH関数を縦方向、横方向に使い、クロスしたセルで、求める結果を採る。 (2)2次元の表だが、1列の表を項目別に作り、横方向に並べていく。そして関数を用いて検索する。 検索するとき、大分類の方の条件によって、別の表を選ぶやり方です。 (3)2条件の文字列の結合文字列のセルを、ム見合せあり分だけ、作っておく ーー Googleで「Excel 2条件 VLOOKUP関数」で照会し、出てきた記事で勉強するしかない(ここへ書くには長くなりすぎる)。 質問者が検討してみて、「出来そうだ」と感じる場合の話だが、 https://office-hack.com/excel/vlookup-multiple/ 複数の条件を結合して1つの検索値にする方法 https://www.manpowerjobnet.com/haken_guide/improving-skills/vlookup/ など。これらも2条件までです。 (2)の方法に関して https://dekiru.net/article/16518/ など参考になるのでは。 == とはいっても、さらに検索表を作る(作り直す)には、項目が多いと、VBAでも使わないと、非常に時間がかかるし、複雑化する。 == 問題は、会社が、しかるべきプロに金を出して作らせずに、素人に毛の生えた社員が、自主的にスモール・システムを作らざるを得ない仕組みにしていることにあると思う。また部署があっても、システム部に相談してない人も居そうだ。  会社によっては、弥生会計などを使って(「公認し)、社員自作をしないでも済むようにしているところもあるかと思う。 == 2条件でのVLOOKUP関数利用でもって、本件解決しそうなら、具体的な方法の詳細は、「別」質問で改めて、尋ねたらどうか?

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

関連するQ&A

  • エクセル VBAで関数

    こんばんわ。いつもお世話になっております。 エクセルでデータを加工しているのですが、関数で加工するととても遅くなってしまうので なんとかVBAで作業できないかと模索中です。 Sheet1の、A列=取引先 B列=支店名 となっており、それが3,000行ほどあります。 Sheet2も、A列=取引先 B列=支店名 となっており、 Sheet1のC列に、Sheet1のA列のB列という支店が、Sheet2にあるか確認したいのです。 現在は、Sheet1のC列に、SUMPRODUCT関数でカウントさせているのですが、大変重いです。 ほかのSheetで、VBAを使って関数のような働きをさせている部分があります(前任者作成) そのように、なんとかVBAを使用したいのですが、なかなかうまく出来ません・・・。 どうか、お力を貸してください!! うまく説明できなくて、わかりづらかったらごめんなさい。 よろしくお願いいたします。

  • エクセル 関数を使わずにデータを取りたい

    EXCELを使ってデータ入力をしたいです。 下の図のように、シート1のA列にコードを入力すると、シート2のテーブルから値を引っ張ってくるようにしたい。 たとえば、シート1のA1に"C001"を入力したら、B1に"赤"が自動入力されるようにしたい。 シート1 A列 B列 行1 C001 シート2 A列 B列 行1 C001 赤 行2 C002 青 行3 C003 黄色 ただし、シート1のB列の値は、入力後に編集するため、ここには計算式を入れたくないのです。 なので、通常ならばB列にVLOOKUP関数を使えばすむことですが、計算式を入れずに上記を実現する方法を教えてください。

  • Excelの関数を教えてください。

    Excelの関数で例えば シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行のF列の値を返す関数を考えているのですが、いろいろ試してもエラーになってしまいます。(B列とC列の一致する行は1つしかありません) これができないと家に帰れません;; どなたか、教えてください! よろしくお願いします。

  • ExcelのVBAについて

    お読みくださりありがとうございます。 エクセルVBA初心者の事務員です。 仕事に活かしたく思いこちらへ質問させていただきました。 カテゴリー違いでしたら申し訳ございません。 添付データにて画像を貼り付けましたが、 A列に名前、B列に区分、C列に部署。とあります。 A列とC列は入力フォームを起動し、lastrowにて、データを下の行へ追加入力していきます。 しかし区分は別シートから名前検索し、貼り付けたいと考えております。 なお別シートには、A列に名前、B列に区分が入力されております。 またB列の区分も左右の列に合わせてlastrowしていきたいと考えております。 まとめますと・・・ 1、シート1にあるB列区分を入力するために、別シートにある一覧を名前検索し、隣の列にある「区分」をコピーし、シート1にあるB列に貼り付けたい。 2、シート1にあるB列も左右の列と同様に下の列へと追加していきたい。 すみません、、、ド素人ゆえ皆様へどれだけ伝わったかと思いますが、 何卒お助けください。 どうかよろしくお願いいたします!!

  • エクセル関数で困っています。VLOOK??・・

    恐れ入りますが、下記のような場合での関数は何を使えばよろしいでしょうか? シート1に A列     B列 郵便番号  地区分コード(17分類) 000-0001  1 000-0002  2 000-0003  3 という一覧表があります。 シート2には A列     B列 郵便番号  事業所の一覧(3000社) 000-0001  トウキョウショウジ 000-0003  カナガワショウシャ 000-0002  サイタマコウギョウ という具合です。 シート1の郵便番号とシート2の郵便番号が一致した場合に シート1のB列にある地区分類コードをシート2のC列に入れたいのです。 シートがわかれている必要はありません。 VlookUPらしいということまで分かりましたが、何度やってもN/Aが出てきます。 どなたかお教え下さいませ m(_ _)m

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • エクセルの関数、お願いします<(_ _)>

    AのシートのE列に数百種類の記号が入力されています。 BのシートのC列に都度、記号を入力した際に、AのシートのE列にその記号があれば「入力済み」と表記されるには、どのような関数をどのように使用すればよろしいでしょうか? 宜しくお願いします。

  • エクセルで関数を使いこのようなこと可能でしょうか?

    こんにちは。皆様のお力を貸してください。 エクセルで商品一覧(シートA)を作りました。販売管理(シートB)と連動させ、納品日欄(F列)に日付が入ったら、列Bに入っている商品の仕入金額をG列に入れたいのです。商品一覧シートは、A列に商品コード、B列に商品名、C列に商品金額、D列に表示させたい仕入金額が入ってます。 関数で簡単に出来そうですが、組み方がいまいちわかりません。 ご存知の方いましたら、ご教授願います。

  • EXCELの関数について

    EXCELの関数について エクセルの関数で複数条件の場合の計算について 例 A列…日付 B列…支店名 C列…処理科目 D列…金額 ある支店の日付の範囲を指定し科目別金額の合計値を別シートに算出したいのですが、 SUMIF関数では、条件の範囲が設定できないみたいなので SUMPRODCUTを使っても同一列での条件設定でうまくいきません。 なにかうまい方法はありませんか

  • エクセル関数2

    シート(1) A B C D 作業列    コード    顧客名     金額 3        300001     A 10,000 3        300002   B 15,000 3        300003   C 20,000 3        300004   D 25,000 3        300005   E 30,000 4        400001   F 35,000 4        400002   G 40,000  4 400003 H 45,000 4 400004 I 50,000 4 400005 J 55,000         シート(2) A B C D E F 「1」 「2」 「3」 「4」 「5」 「6」 10,000 35,000 15,000 40,000 20,000 45,000 25,000 50,000 30,000 55,000 ※ シート(1)にコード、顧客名、金額を入力すると、シート(2)にあるように該当するコードの先頭行の列に表示するようにしたいと思っています。 シート1で作業列を作りその作業列を基にシート2でVLOOKUP関数を使い‥シート2の10,000のセルの場合、 VLOOKUP(C$2,sheet1!$A$3,$D$12,4,false)として、下にコピーすると同じ金額になってしまいます。 セルが空白にならず、シート1の金額が上から順番にシート2に表記されるようにするにはどうしたらよいでしょうか。マクロはできませんので、関数で詳しく教えて下さい。宜しくお願いします。

このQ&Aのポイント
  • 【TK-FDP099TBK】のキーボードで一部のキーが反応しない状況が発生しています。キーの不良ではない可能性があるため、問題の原因と解決策を探っています。
  • 【TK-FDP099TBK】のキーボードでB、N、矢印キーなどが反応せず表示されないという問題が発生しています。一部のキーは特定の操作をすると反応することがありますが、一貫して使用することができません。
  • 【TK-FDP099TBK】のキーボードが接続されたPCによって問題が発生することがあります。購入店での確認では再現しなかったものの、自宅で再度確認したところ、問題が再現しました。PCとの相性が原因である可能性が考えられます。
回答を見る

専門家に質問してみよう