エクセル列の移動

このQ&Aのポイント
  • エクセル列の移動についての質問です。全会員名簿情報を入力したシートから、VLOOKUPでほしい人の情報を拾い出すシートを用意してありますが、列の移動がうまくいきません。
  • 元の名簿シートの情報の並び順が気に入らないので、拾い出しシートで列を丸ごと切り取り、気に入った場所に挿入しようとしました。後ろに持っていく場合はうまくいくのですが、前に持っていこうとするとエラーが出てしまいます。
  • 「Ctrl+Endで最後のセルを探し、そのセルと最終データがあるセルとの間のデータを削除しないとできません」というウィンドウが表示されますが、それに従ってもうまく挿入できません。どうすれば列の移動がうまくいくでしょうか?
回答を見る
  • ベストアンサー

エクセル列の移動

全会員名簿情報を入力したシートから、VLOOKUPでほしい人の情報を拾い出すシートを用意してあります。情報の種類は多く、列は50列になります。とりあえず全情報を拾い出すよう、50列分関数を設定してあります。会員数は300人くらいで、LOOKUPの関数も300行に設定してあります。 もともとの名簿シートの情報の並び順が気に入らないので、拾い出しシートで列を丸ごと切り取り、気に入った場所に挿入しようとしました。元の場所より後ろに持っていく場合はうまくいき、反映もきちんとできたが、元の場所より前に持っていこうとすると、「Ctrl+Endで最後のセルを探し、そのセルと最終データがあるセルとの間のデータを削除しないとできません」のウィンドウが出て、それらしき操作をしてもうまく挿入できません。どうしたらうまくいきますか?

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

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

一読して質問の意味が取れない。 具体的に 少数会員にして 少数列にして 例示して説明すること。 ーー 関連して >会員数は300人くらいで、LOOKUPの関数も300行に設定してあります。 この必要性がわからない。 VLOOKUP関数は検索データ(第1引数)のある列は、検索表(第2引数)の最左列にないといけない。不便だが、そのことを行っているのかな。 であればMATCH関数に置き換え、OFFSET関数で考える列のデータを採るようにすれば出来そうだ。 ーー >情報の並び順が気に入らないので 情報の「列の!」並び順が気に入らないので、ということか。 それで列を動かしたのか。列を動かしても検索データのある列だ最左列にあればよいが。式は変える必要は当然アリ。

oboburi
質問者

お礼

imogasiさんがお答えくださった後も問題は解決されなかったのですが、時がたつにつれ、楽をしたくて自分が始めたことが欲張りすぎで却って物事を複雑にしているような気がして、もっと単純なやり方で一から考え直すことにしました。 その節は示唆に富むお返事をありがとうございました

oboburi
質問者

補足

事情が複雑なのですが、元の会員情報は公式に本部から配布されたものだし、ほかの社員の手前、自分勝手に使いやすいように直接いじるのも怖いので、まずは、本部からのブックの情報シート丸ごとを、自分で作ったブックの「本部」シートにコピーします。データ数を減らし単純化して説明します。 「本部」シートのタイトル列 は A列「会員氏名」 B列「事務所電話」 C列「事務所住所」 D列「事務所〒」 E 列「自宅電話」 F列「自宅住所」 会員数10人とします。会員氏名は時として昇順になっていません。 たとえば、「事務所FAX」番号が私としては必要なのに無い、場合、「自分情報」シートを作り、A列に会員氏名、B列以下E列までに「事務所FAX」など自分で集めた情報を記入します。A列は探しやすいよう昇順です そして「合体名簿元」シートを用意し、A列にLOOKUP用に全会員分数字を入力、B列~G列はタイトル行も含め、「本部」シートA列~F列をリンク貼り付け。H列~K列にタイトル行も含め、   =INDEX(自分情報!$A:$K,MATCH($B1,自分情報!$A:$A,0),3)     ※「$B1」「~,3」部分は可変 の関数を設定します。 次いで、「反映元」シートを用意。タイトル行は「合体名簿元」シートからリンク貼り付け。AをLookup用数字入力列としとりあえず空欄、B「会員氏名」列・タイトル行を除くC~K列10行分に   =IF($A2=0,"",VLOOKUP(反映元!$A2,合体名簿元!$A$1:$K$11,5))      ※「$A2」「~,5」部分は可変 の関数を設定。ここまでが準備です。 利用方法は、たとえば、昇順でない会員4名のリストがあり、元データの順番を狂わせずに、その出欠確認や住所録などを作りたいとき、  1.4名のリストから「反映元」シート「会員氏名」列に名前の貼付  2.A列に対応するLookup番号を「合体名簿元」シートを見て入力、 3.その会員の情報が引き出されるので、不要情報の列は非表示に  4.ジャンプ→可視セル選択→コピー し、別に用意された表に値貼り付けする、というものです。リストの人数は1~10人分まで様々です。 ここで、問題となったのは、「私としては、事務所住所は事務所郵便番号の後ろに置きたい」 場合、「反映元」シートで「事務所住所」列切り取り→「事務所〒」の次に「切り取ったセルの挿入」、でできたのに、後ろの方の列の「事務所FAX」を 前に繰り上げて、「事務所電話」の次の列に持ってこようとしたら、質問の通り、ダメ出しが出て、できなかった、ということです。長くなりました OFFSET関数って初めて聞きましたが、よそで説明を読んだら便利そうなものですね。

その他の回答 (2)

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

VLOOKUP関数の自動計算と関係があるのではないでしょうか? 確証はありませんが、「ツール」→「オプション」の「計算方法」タブの「自動」を「手動」に設定し、「行」を移動後「自動」に戻したらどうなりますか?

oboburi
質問者

お礼

その後回答は増えないし、私としても時がたつにつれ、自分のやっていることが複雑すぎて、意味がなく思えてきたので質問を締め切ります。 その節は早速の回答をありがとうございました。

oboburi
質問者

補足

残念ながらうまくいきませんでした。ただ、私は計算方法の操作に関する知識がなかったので、ほかの方のサイトを読んで、手動にしたり、自動にしたりすることで、動きが軽くなったり重くなったりすることがわかりました。参考になりました。

noname#64531
noname#64531
回答No.1

追試しておなじ現象をえられなかったのですが =vlookup(検索値,範囲,列番号,[検索の型]) のうち、 1.範囲はどう指定してますでしょう? 2.列番号は?

oboburi
質問者

お礼

時がたつにつれ、楽をしたくてした工夫が欲張りすぎていて、却って操作を複雑にしていると気づきました。一からやり直してみます。お騒がせしました。お礼が遅れ申し訳ありませんでした。

oboburi
質問者

補足

No.3のimogasiさんへのお返事とかぶると思いますので、そちらでまとめてお答えしようと思います。

関連するQ&A

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • ExcelのVLOOKUPの列番号を一括で変更したい

    検索しても自分では見つけられなかったので、質問させてください。 私はExcel2007の一個前のものを使っています。 仕事上、sheet1でVLOOKUPを使い、sheet2(データ入力用シート)の情報を読み取るブックを使っています。 作った人とは連絡が取れないので、知恵をお借りしたいです。 そのExcelのVLOOKUPでは、sheet2の14列目を読み取るようにしていますが、13列目に列を挿入して、15列目(挿入前は14列目)を読み取るようにしたいです。 しかし、sheet1のVLOOKUPは1500行も使っている上に、VLOOKUPを使っている行や別のデータを入れている行もあり、簡単には引数を14から15に変更出来ません。 sheet1のVLOOKUPの14を15に返る簡単な方法は無いでしょうか? つたない説明で申し訳ありません。 宜しくお願いします。

  • (エクセル)表から1列の別表をつくりたい。

    表に入力されたものを1列に並び替えをしたいのです。(エクセル関数) エクセルの表から、セルに入力された情報を抜き出し、並び替えたいのですが、行き詰ってしまい質問させていただきます。 (やりたいこと) 添付資料のように、事業所ごとに購入した物品が日付ごとに入力されていきます。この表を一列で並び替えることを したいのですが、現状の表の形で1列に抜き出すやり方が思い浮かびません。ひとつずつリンクを設定していけばいいですが、 それですと、空白のセルができてしまうこともあり、空白を消すためにフィルタをやらなくてはいけず、なんとか関数でどうにかできないと質問させていただきました(つまり空白のセルは飛ばし、隙間のない1列の表に変換したいです)。 (試したこと) (1)vlookup関数を使うために、日付の横に検索列を作ってもみましたが、同じ行に複数の抜き出すべくものがあると、 if関数のネストをいれるにも「if(c5="","",vlookup(v5,b5:r10,2,fasle)」みたくやってみましたが、c5までは取り出せても、 d5,e5,f5・・・と右にずらしていく関数式が思い当たりません。 (2)種類、数量データ入力されている全てのセルの横に(1.2.3.4.5.6.7.8.9.・・・)と数字をいれて検索列をつくり、vlookupとmatch関数の 組み合わせも試しましたが、vlookup関数の性質上、複数列に検索値(「vlookup(検索値,範囲,列番号,検索の型)」)が存在しているとこれも出来ず。 説明が不十分な点もあると思いますが、よろしくお願いいたします。もし、VBAでなければ難しいとのことでしたら、どのようなVBAを組めばいいかもお願いいたします。

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • エクセル2002 文字列で作成のセルを標準に

    エクセル2002  5000行程の参照シートからVLOOKUPで検索した数値を表にし合計をする作業をしています。参照シートは全てを文字列に設定したものです。☆(゜o゜ (多分0を入れたい為 全てを文字列設定にしています)。 上記シートをVLOOKUPで検索した数値をはりつけると すべて文字列になっています。 ・元シートのせいか? ・私の設定方が悪く 何かミラクル設定方法があるのか教えて下さい。 書式設定で標準に戻しても 関数入らず(そのセルさえ文字列になっています) 区切り位置 → 完了で訂正しますが シート全体を 書式設定 標準にでき 関数が入る方法はないでしょうか? 修正すると・・・文字列に戻っていたりします。 説明下手で申し訳ありませんが いい方法があればご教授お願いします。

  • エクセルについて

    VLOOKUP関数で、プルダウンで選択されたものを返すことはできるのでしょうか? 「シート1」には100人分の名簿 「シート2」には10人分の名簿 「シート1」の「X列」に固有番号があり、「Y列」にはプルダウンで「大、中、小」の3つが選べるとします。 「シート2」の「A列」にVLOOKUP関数を組み込み、そこに固有番号を手入力することによって、「B列」に「シート1のY列」のプルダウンで選択された「大、中、小」のいずれかが自動で返ってくるようにしたいのです。 よろしくお願いします。

  • Excelのセルに斜線を引くマクロ

    Excel2007を使用しています。 画像のように,「印刷」シートと「データ」シートがあります。 画像のように,「印刷」シートのAO112~BZ112のセルを結合しています。 そのセルには,VLOOKUP関数で,「データ」シート10列目のデータを返すようにしています。 関数を見てもらえば分かるとおり, もし10列目にデータがなければ(VLOOKUPで値が0なら)””(空白)を返すようにしています。 以上のようなシートで,このセルにデータが無い場合, 画像のAO113~BZ113のように右上がりの斜線を引きたいのです。 もちろん,データが入っている場合は,斜線は消します。 マクロに関しては,まだまだ初心者のため, ほとんど分からないので,分かりやすく教えていただけませんでしょうか? お願いします。

  • VLOOKUP関数 列番号の設定の仕方教えて下さい

    VLOOKUP関数の列番号を 1、2、とかではなく、 計算して列番号を設定することはできますか? シート2 に入っているデータを参照して シート1 に関数をいれて、表示させたいと思っています。 シート2 データは 3行目に、項目(品名、(1)材料名、(2)数量、(2)材料名、(2)数量、...、(10)材料名、(10)数量) A列、 B列、 C列、 D列、 E列、...、 M列、 N列 クッキー、小麦粉、100、卵、1、...、砂糖、20 クラッカー、小麦粉、100、米粉、10、...、りんご、0.2 が入っていて、4行目から100行目くらいまでデータがはいっています。 シート1 の セルA5に品名を入力すると、 シート2の(1)材料名がセルA6に、 (1)数量がセルB6に、 (2)材料名がセルA7に、 (2)数量がセルB7に、 ... (10)材料名がセルA15に、 (10)数量がセルB15に、 入るように作りたいのですが、VLOOKUPの列番号を COLUMNやINDEXなど試してみましたが、エラーばかりで うまくできません...VLOOKUPでは無理なのでしょうか? どなたか詳しい方教えてください。よろしくお願いします・

  • エクセルで挿入した列に関数が値を返しません。

     エクセルで列を挿入したセルに、関数を入力しても値を返しません。 関数を入力しても、数式バーに表示される数式がセルに表示されるだけで、答えは出ません。式はあっていて、違うセルに数式をコピーして張り付けると、値を返します。  また、挿入した列に元からある空白の列をコピーして貼り付け、関数を入力しても値を返します。  どこかで変な設定をしてしまったのでしょうか?  分かる方、どうか教えてください。

専門家に質問してみよう