• 締切済み

Excel>結合したセルとINDIRECT

お世話になっております。 INDIRECTを使用し、記号(橙)を入力すると自動的に表の数字(緑)が埋まるシートを作っています。 (説明では伝わりにくいと思うので、添付画像をご覧ください。) シート1はリストです。 シート2に記載される数字(緑)は記号(橙)ごとに分別されています。 実際のシート2は膨大な量があるので、間違い防止と作業効率化のため、記号(橙)を入力すれば自動的に数字(緑)が埋まるようにしたいのです。 当初、「八百屋」と「スーパー」のみの入力だったのでうまくいっていたのですが、 追加で「りんご」「桃」「苺」の入力をすることになってから、エラーが出ています。 式が違うのか、INDIRECTの使い方が違うのか、セルの大きさの違いに問題があるのか、 自分では分かりません。 現状を記載しますので、みなさまの知恵をお貸しください。 よろしくお願い致します。 【現状】 緑枠セル =IFERROR(INDIRECT(VLOOKUP($B$21,List,2,TRUE)),"") シート1の青枠範囲を名前定義で「J2」としています。 名前定義に「-」が使用できないので赤枠範囲を名前定義で「List」とし、J-2→J2としています。 ちなみに、シート2は取引先から指定されたものであり、形状や表記を変更する事はできません。 シート2では、J-2と表すしかありません。 目的は、橙枠を記入するだけで緑枠が埋まるようにする事です。 後々取引先にデータで渡すため、VBAは使用できません。 説明不足があればおっしゃってください。 よろしくお願い致します。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 横からお邪魔します。 オーソドックスにコツコツやってみました。 名前定義せずに関数だけで処理してみてはどうでしょうか? ↓の画像で Sheet2のB2セルに =IFERROR(INDEX(Sheet1!B:B,MATCH($A4,Sheet1!$A:$A,0)),"") という数式を入れ隣のC2セルまでコピー! B7セルはB2セルの数式をそのままコピー&ペースト 同様にB12セルにも貼り付けてC列までコピーします。 そして、Sheet2のD2セルに =IFERROR(INDEX(Sheet1!D:D,MATCH($A4,Sheet1!$A:$A,0)),"") D3セルに =IFERROR(INDEX(Sheet1!D:D,MATCH($A4,Sheet1!$A:$A,0)+1),"") という数式を入れD2・D3セルを範囲指定 → D3セルのフィルハンドルでG列までコピー! 最後にD2~G3セルをすべてコピー! → D7セルに貼り付け → D12セルに貼り付け・・・ とすべての行に地道に貼り付けると画像のような感じになります。 ※ ご希望の方法でなかったらごめんなさいね。m(_ _)m

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、シート1において「J-1」、「J-2」、「J-3」等の記号が入力されている列がSheet1のC列であり、御質問欄の添付画像中のシート2において「田中」と入力されているセルがSheet2のB4セルであるものとします。  まず、Sheet2のC4セルに次の関数を入力して下さい。 =IF($B6="","",IF(ISERROR(1/(INDEX(Sheet1!$E:$J,MATCH($B6,Sheet1!$C:$C,0),COLUMNS($C:C))<>"")),"",INDEX(Sheet1!$E:$J,MATCH($B6,Sheet1!$C:$C,0),COLUMNS($C:C))))  次に、Sheet2のC5セルに次の関数を入力して下さい。 =IF($B6="","",IF(ISERROR(1/(INDEX(Sheet1!$E:$J,MATCH($B6,Sheet1!$C:$C,0)+1,COLUMNS($C:C))<>"")),"",INDEX(Sheet1!$E:$J,MATCH($B6,Sheet1!$C:$C,0)+1,COLUMNS($C:C))))  次に、Sheet2のC4~C5の範囲をコピーして、Sheet2のD4~H5の範囲に貼り付けて下さい。  次に、Sheet2のC4~H5の範囲をコピーして、添付画像において「佐藤」(?)と入力されているセルの右隣のセル(添付画像におけるC19セル)や、「小野」(?)と入力されているセル(添付画像におけるC24セル)の右隣のセルに貼り付けて下さい。  以上です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 何をやりたいのかという事に関して、不明な点が幾つかありますので、追加情報を御教え願います。 (1)B列に入力する「J-1」等の記号は、「田中」や「小野」と言った取引先の各1件ごとに、必ず1つの記号しか入れないのでしょうか?  それとも、例えば「田中」という1件の取引先に対して、「J-1」と「J-3」の2つの記号が同時に入る事もあり得るのでしょうか? (2)Sheet1のG列に入力される丸で囲まれた数字は、どの記号に対しても必ず(1)と(2)の2つが入っていて、(1)だけとか、(2)だけの場合や、(3)等の別の値が入る事は無いのでしょうか? (3)もしも、例えば「田中」という1件の取引先に対して、「J-1」と「J-3」の2つの記号が同時に入る事がある場合には、「J-1」と「J-3」の合計値を表示させれば良いのでしょうか? (4)Sheet1に入力される「J-1」等の記号は、同じものが重複して入力される事は無いと考えても宜しいのでしょうか?

ntd5055
質問者

補足

回答ありがとうございます。説明が分かりずらく申し訳ありません。 (1)B列に入力する「J-1」等の記号は、「田中」などの取引先の各1件ごとに、必ず1つだけ入ります。複数はありません。 (2)Sheet1のG列に入力される丸で囲まれた数字は、どの記号に対しても必ず(1)と(2)の2つが入っていますし、変化しません。 (3)1人の名前に対し、「J-2」などの記号も1つですので合計は不要です。 (4)Sheet1に入力される「J-1」等の記号は、Sheet1では重複しません。 よろしくお願いします。

関連するQ&A

  • エクセル・セルの結合ができない…

    WindowsXPのExcel2003を使用してます。 御回答の程宜しくお願い申し上げます。宜しくお願いします。 ★計算式の入ったセルを保護したい。 (計算式の変更や、削除を防ぐため) ↓ まずはシート全体の セルの書式設定内の保護「ロック」のチェックをはずす。 ↓ 特定の箇所のセルを「ロック」する。 ↓ シートの保護  許可する操作=「ロックされたセル範囲の選択」以外全て許可 ↓ ロックした場所はクリックできない。 ロックしていない場所は数字の入力や色の変更などできる。 ここまでは良いのですが、問題は「セルの結合」ができないことです。 セルの書式設定の中でも「セルの結合」だけグレーになっていて どうしても結合が出来ません・・・。 計算式を消してしまわないよう保護しつつ、他の計算式のないセルは 結合したり左寄せを必要としてます。 解決策をお願い致します!

  • エクセルVBAでセル結合

    いつもお世話になっています。 エクセル2003でVBAを使って下記をしたいのでその、VBA構文を教えて下さい。 特定の列のあるセルに文字が入っています。 (文字が入っている列は固定ですが、行番号はデータによって変わります。例えば、Aデータの場合は「J30」、Bデータの場合は、「J55」だったりします。) この文字が入っているセルをVBAで検索し、検索したセルを右隣のセルと結合します。(先ほどのAデータの場合、J30:Z30に結合します。) 更に、文字が入っているセルが2以上の複数の場合があります。(先ほどのAデータの場合、「J30」と「J40」と「J45」という感じです。文字が入っているセルの数はデータにより異なります。) 結合が終わり、このシートのデータがあるところだけに罫線を引きます。(このシートのデータというのは、前述の文字とそれ以外は、「数字」と「・」です。 ややこしいですが、よろしくお願いします。

  • エクセルにおけるセルへの名前のつけ方につきまして

    同一ブックの別シートで、それぞれのシートのセルに同じ名前をつけることはできないのでしょうか?マクロなどを使用せずにエクセル表左上の「名前ボックス」で定義したいのですが。

  • エクセルについて改

    (1)シート1 セル結合にて縦B4~B5の横B~Jの枠にCtrl+;にて2012/07/03と入力したらシート部分シート1に上書きで07.03又は7月3日と表示したいのですが自動でしてくれる方法ないでしょうか? (2)シート1 縦のG49~U49までのセルのどれかに完と入力したら、その完の列の(縦の47)の数字をセル結合にてTの26~28の枠に入力する方法ないでしょうか? ややこしいこと言ってますがすいません わかるかたいましたら教えてください

  • EXCELで同じ値のセルを結合したいのですが。。。

    よろしくお願いします。 OSはwindows2000で、EXCEL2000を使用しています。 A列内に数字が昇順に入っています。 数字によって、行数がばらばらで1~1000の値が入っていますが、全体では、5000行のデータです。 同じ値のセルを結合したいのです。 現状は、1から順に選択して、セルの結合しています。 早く出来る方法ありますか? よろしくお願いします。

  • エクセル リストの連動について教えてください。

    エクセルの入力規則のリストを連動させて使用させたいのですが上手くできないのでご教授願いたいと思います。 まず、A1に食材の分類(野菜、肉など)をリストで選択できるようにしてあります。 A1の結果によってB1に食材(人参、玉ねぎなど)をリスト表示したいのですが、 (別シートに分類ごとにセル範囲に名前を付けてあります) 元の値を=indirect(A1)とするとエラーが出ます。 (A1には先に入力してあります) 食材のセル範囲の名前をoffsetを使って定義しているのですが (確認しましたが関数自体は間違っていません) offsetを使っているとエラーになるようなのです。 (A1:A5のようにセル範囲名前を定義しているときはちゃんと出来ます。) いろいろ調べましたが名前の定義、リストの連動の仕方自体は間違っていないと思うのですが・・・ 連動させるときはセル範囲をoffsetなどを使って可変にすると出来ないのでしょうか?

  • Excel 入力規則のリストをカウントアップさせて上から順に選択回数の多いものを表示させる

    初めまして。 Excel2002を使用しております。 先ずそれぞれのシートのご説明をさせて頂きます。 Sheet1・・・40名程度の氏名とそれぞれの氏名の下に項目を入れており、名前の定義をそれぞれの氏名で作成しております。 Sheet2・・・Sheet1の名前定義を入力規則でドロップダウンリストにしており、それぞれの氏名の横にドロップダウンリストを入れております。 Sheet2でドロップダウンリストに表示された項目を選択するとSheet1の項目欄横のセルに数字がカウントアップされて行き、降順並べ替えを行う事でSheet2で使用するドロップダウンリストに表示される順番が変わるという形にしたいのですが、何か良い方法がございますでしょうか? 情報が少なく分かり難いかも知れませんがご教授願います。

  • Excel(エクセル) 名前定義をしたリストから、indirect関数を利用して選択入力できるようにしたいのですが… 

     次のようなことができず困っています。  Sheet1とSheet2があり、Sheet2には"数字"、"英語"と名前定義された2つのリストがあります。Sheet1のセルA1には"数字"か"英語"どちらかの文字列を選択入力し、B1には、もしA1に"数字"を入力していればリスト"数字"から、もし"英語"を入力していればリスト"英語"から選択入力できるようにしたいのです。つまり、Sheet1のセルA1、B1の入力規則の種類をリストとして、元の値をそれぞれ、    ・Sheet1!A1には=数字,英語    ・Sheet1!B1には=indirect($A1) としています。 質問(1)) ここまでなら何の問題もないようですが、問題はSheet2の"数字"と"英語"の参照範囲です。    ・"数字"の参照範囲は=Sheet2!$A$1:$A$10,Sheet2!$C$1:$C$10    ・"英語"の参照範囲は=Sheet2!$B$1:$B$10,Sheet2!$D$1:$E$10 と複数範囲におよんでいる場合、Sheet1!B1にはうまくリストが表示されません。解決法、およびなぜ表示されないのか、どなたかご教示お願いいたします。 質問(2)) Sheet2の"数字"と"英語"の参照範囲を    ・=OFFSET(Sheet2!$A$1,,,COUNTA(Sheet2!$A:$A))    ・=OFFSET(Sheet2!$B$1,,,COUNTA(Sheet2!$B:$B)) とした場合も同様にSheet1!B1にはうまくリストが表示されません。こちらの方も解決法と表示されない理由をお願いいたします。

  • エクセルの式に関して

    質問です。 AからEという項目にそれぞれ数字を入力していった時(緑枠) 緑枠の値が全て一致した時、別シートにある値(今回でいうとサクラ)が 自動的に入力(黄色枠)されるような式はありますでしょうか? (vlookupをたくさんタス感じなのかな…) (一致していなければ、空白、できれば、色セルの色が変わるなど、わかりやすく なるといいのですが…) よろしくお願いします。

  • エクセル2007 結合セル

    エクセル2007 結合セル 下の画像のようなエクセルシートを 練習用に2枚作成しました。 上段が月の入力フォームで、 下段が各個人の営業成績表です。 ここで、下段の成績表の1行目が B列からI列まで、セル結合されており その中に表題の( 月分)が表示されています。 ここの月の前の空白部分に上段の入力フォームの黄色で 入力した月の数字をを自動的に表示させることはできるのでしょうか。 結合させなければ、簡単にできたと思いますが、 結合している前提で、教えていただけるとありがたいです。 よろしくお願いします。

専門家に質問してみよう