• ベストアンサー

エクセル 条件一致で別シートに自動転記

数多くの検索をして、自分がやりたい関数に作り変えようとしたのですが、 上手く出来ず、質問させて頂きました。 下記のようにSheet1に添付画像のように入力されている伝票の B2~B7を店舗別に別のシートに自動で転記させたいです。 A店のシートには、A店と書かれた列全てを上から順に、 B店のシートには、B店と書かれた列全てを上から順に シートを分けて転記させたいのです。 説明が下手で申し訳ありません…。 おわかりの方がいらっしゃいましたら教えてください。 宜しくお願いします。

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

  • ベストアンサー
  • 135ok
  • ベストアンサー率34% (26/75)
回答No.2

 以前、同じような質問に回答したことがあります。画像が読めないので何とも言えませんが、やりたいことは合っていると思います。  参考URLを紹介しますので、一度覗いてみてはいかがですか。間違っていたら、ごめんなさい。

参考URL:
http://okwave.jp/qa/q5447508.html
sowilukka
質問者

お礼

ありがとうございます!!似てそうです!やってみます!! ありがとうございました。

sowilukka
質問者

補足

できました!!!! ありがとうございました!

その他の回答 (1)

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

 それで >A店と書かれた列 や >B店と書かれた列 とは一体どの列の事なのでしょうか?  「A店」や「B店」はどちらも2文字の文字列ですが、質問者様が添付された画像に写っている表において、1行目が2文字となっているのはD列、G列、H列、I列、L列、M列の6列だけで、その内の >A店と書かれた列 や >B店と書かれた列 を >上から順に という事は、D列、G列、H列、I列、L列、M列の内のといずれか"1列のみ"を転記するという意味になってしまいますが、本当にそれで宜しいのでしょうか?  もしかしますと、 >A店と書かれた列 や >B店と書かれた列 等というものは存在しておらず、「Sheet1上のどこかの列」に「A店と書かれた行」や「B店と書かれた行」の間違いという事はないでしょうか?  それで、「Sheet1上のどこかの列」がどの列の事であるのか全く情報がない以上、実際の質問者様の表の中のどの列のデータを基準にして転機を行う様にすれば良いのか解りませんし、どの列のデータを基準とするのかが不明なままでは、考え方を説明したとしても解り難い説明になってしまいますので、取り敢えず仮の話としてSheet1のZ列に「A店」や「B店」と入力されているものとします。  又、Sheet2のA列を作業列として使用すものとします。  まず、Sheet2のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",INDEX(Sheet1!$A:$A,ROW())&"◆"&COUNTIF(Sheet1!$A$1:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW())))  次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に貼り付けて下さい。  次に、転記先のシートのA2セルに次の関数を入力して下さい。 =IF(ISERROR(1/(INDEX($A:$N,MATCH($Z$2&"◆"&ROWS($2:2),Sheet2!$A:$A,0),COLUMNS($A:A))<>"")),"",INDEX($A:$N,MATCH($Z$2&"◆"&ROWS($2:2),Sheet2!$A:$A,0),COLUMNS($A:A)))  次に、転記先のシートのA2セルをコピーして、転記先のシートのA2~N3のセル範囲に貼り付けて下さい。(この時、循環参照が原因でエラーとなりますが、気にせずに作業を続けて下さい)  次に、Z2セルにコピーした関数を消去して、 A店 や B店 等といったデータを転記したい店舗名を入力して下さい。  これで店舗ごとのデータが転記される様になります。  尚、当然の事ながら、上記の説明におけるZ列に関する箇所は、あくまで「どの列に店舗名が入力されているのかという事に関する情報を質問者様が説明していない事が原因で情報が不足しているため、しかたなく取り敢えず仮の話としてZ列であるものとして話を進めた」というだけの事に過ぎませんので、実際に上記の方法を使う際には、関数や説明文中におけるZ列に関する箇所を、「実際に店舗名が入力されている列」に対応する様に、質問者様の方で適時置き換える様にして下さい。

sowilukka
質問者

お礼

手打ちした表がずれてますね…。余計見づらくなってしまいました。 すみません…。ちょっとやってみます!! ありがとうございました。

sowilukka
質問者

補足

OKwaveを初めて利用し、画像の表示サイズがわかっていなかった為、 分かりづらい中、ご回答ありがとうございました! 伝票に使用しているのですが、下記のようにSheet1に全ての情報が入っており、 それを店舗ごとに分けた伝票で印刷するようにしたいです。 <Sheet1>    A   B    C     D    E   ------------------------------------------------------- 1   No.  店舗名 バーコード  品番  商品名 2  1   A店   123   123  aaa 3 2   B店   124   124  aab 4 3 C店    125 125 aac 5   4    A店    126 125 aad 6 5   A店    127   127  aae <Sheet2> ※A店のみで絞り込んだシート    A   B    C     D    E   ------------------------------------------------------- 1   No.  バーコード  品番  商品名 2  1   123   123  aaa 3 2   126 125 aad 4 3 127   127  aae 5   4    6 5  教えて頂いたもので、やってみます!! 取り急ぎお礼まで。ありがとうございます!

関連するQ&A

  • エクセルの自動転記について

    エクセルの自動転記について シート1にデータを入力します。 A欄に会社名、B欄にデータ1、C欄にデータ2とします。 A欄と同じ会社名のシートのA欄にデータ1、B欄にデータ2が上から順に自動転記されるようにしたいのですが 教えていただきたいです。 よろしくお願いします。

  • EXCELシートの振り分け転記の自動化について

    こんにちは、excel初心者です。 あるexcelシートの中に、数字コードが書いてあるボックス?の中に2種類か、3種類のそれぞれアルファベットコードと表題がそれぞれ書いてあります。 これを別シートにそれぞれの数字コードとアルファベットコードと表題に見やすくするために振り分けたいのですが、 いちいち一つ一つのセルをコピーペストの繰り返しで膨大な時間が掛かりました。 マクロVBAの本を読みましたが、その”数字コードボックス”のアルファベットコードの種類が2,3,4種類と順不同です。 これらの順不同型のセルの塊を自動転記は可能でしょうか? 自動化のイメージとしては、 1;B2セル数字コードを選択、コピー、別シートの数字コード列に移動、貼り付け。 2;元シートにかえって、A5アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 3;元シートにかえって、A4表題を選択、コピー、別シートの表題列に移動、貼り付け。 4;元シートにかえって、A8アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 5;元シートにかえって、A7表題を選択、コピー、別シートの表題列に移動、貼り付け。 6;元シートにかえって、A11アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 7;元シートにかえって、A10表題を選択、コピー、別シートの表題列に移動、貼り付け。―と 8;元シートにかえって、12行B列の数字コードを感知したら、11から2行はすべて削除。 9;次の”数字コードボックス”に移動します。 自分で考えてイメージしただけなのですが、この様な事は可能でしょうか? また、マクロに書くコードはどのようなコードをかけば良いでしょうか? しょ 初心者なりに必死に考えてみましたが、聞いた方が速いと思いこちらにご相談させて頂きました。 何卒宜しくお願い致します。

  • マクロで別シートの検索と別シートへの転記

    windows7、エクセル2013です。 Sheet1のA列の値を上から順に、Sheet2のA列内を検索し 同じ値が有ればその値を Sheet3のB列の5行目から順番に転記したいです。 Findを使ってうまくできないので Countifを使いましたが、駄目でした。 関数で可能なら関数でもいいのですが、教えていただきたいです。 よろしくお願いします。 Sub 抽出転記() Dim 検索行 Dim 検索値 Dim 答 Dim 入力行 入力行 = 5 For 検索行 = 3 To 200 検査値 = Worksheets("Sheet1").Cells(検索行, 1) If Worksheets("Sheet2").Columns("A").CountIf(検索値) <> 0 Then 答 = 検索値 Worksheets("Sheet3").Cells(入力行, 2) = 答 入力行 = 入力行 + 1 End If Next 検索行 End Sub

  • エクセルで別シートへの文字の転記ができない

    エクセルにて、あるシートの表の文字を、別シートにある伝票に転記する作業を行っているのですが、転記できる時とできない時があります。 できない時は伝票に「=Sheet2!C3」のような転記したい表のセルの座標が表示されてしまいます。どなたか、原因のわかる方、よろしくお願い致します。

  • エクセル マクロ 別シートへ自動転記

    お世話になります。 エクセルで元データシート(一覧表シート)からアルファベット毎に自動で別シートに転記したいのでですがマクロをどうやって作ればいいでしょうか?(出来ればファイルを開けた時に自動更新してほしいのですが。。) 基準になるのはローマ字でかかれている部品名で、それをアルファベットごとのシートに自動に転記されるようにしたいです。データはどんどん追加されていきます。 元データは以下のとおりです。 *データはB5セルから始まっています。  部品名  詳細  金額  ・・・  A56785 ねじ  ¥30   高田(株)  B13575 棒   \500 安田 C59975 柵 \200 鈴木(株)   以上よろしくお願いします。

  • エクセル2007:シート内のデータの自動転記

    Excle2007を使用しています。 シート1のデータをシート2に自動で転記したいと思っています。 シート1 作業件名ごとにその内容、作業者名が書いてある表。 1行ににつき作業1件 A列:日付 B列:作業件名 C列:内容 D列:作業者名 シート2 作業者ごとに従事した作業をまとめた一覧表で、ひとりにつき1ページ。 表の形式(見た目)はシート1とはまったく別のもの。 作業者ごとに空欄の表が既に作られており、 1ページ目:Aさん 2ページ目:Bさん という風に、1シートに改ページしながら全ての作業者について1ページずつ一覧表になっている。 1ページは25行を使用しており、 Aさん(1ページ目)は1~25行(Bさん(2ページ目)は26~50行)となる。 1ページ目の表のうち、シート1のデータを入れられる行は11~21行。 3件あれば3行使って残り8行は空欄ということになります 日付欄はシート2のA11~A21 件名欄はシート2のB11~B21 内容欄はシート2のD11~D21 シート2には、作業者の住所や生年月日など、シート1にない項目があらかじめ入力されている。 いつもはシート1を入力後に作業者基準で並べ替えをして印刷し、 シート2の該当する作業者のページに手打ちでデータ入力しています。 シート1のデータをシート2の該当箇所に転記するだけなので、シート1が完成した段階で シート2を自動で作れたら作業時間の短縮になると思い、考え始めました。 が、VBAに詳しくないため、どこからどう手をつけたらいいものかわかりません。 お詳しい方、お知恵をいただけましたらと思います。 不足情報等ございましたらご指摘いただけましたら補足をさせていただきますので どうぞよろしくお願いいたします。

  • 別シートに任意のセルを転記する方法について

    縦に6行ずつのデータがあり、これを横1行の別シートに転記する際に、 以前こちらで回答頂いた方法を応用したいと考えています。 =IF(INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))=0,"",INDEX(Sheet1!$Z:$Z,(ROW(A1)-1)*6+COLUMN(A1))) アドバイスのとおり、上記の数式で見事に横にデータが転記できました。社員1人につき6行ずつのデータが縦にならんでおり、これを別の社員1人あたり1行で横に並んだデータにしたいというものでした。 1人目のデータは1行目を1列目に、2行目を2列目に・・・2人目のデータである7行目を1列目に、8行目を2列目に・・・3人目は13行目を1列目に・・・となります。 しかし、順次並べるのではなく、転記の必要にないデータを含むシートの任意のセルを選び、別シートの任意のセルへ転記する必要が生じたため、悩んで路頭に迷っております。。。 例えば、6行ずつのデータのうち、いつも3行目を別シートの5列目に。4行目は転記せずに、5行目を6列目に。また、6行目を7列目に転記せずに10列目に転記する。(8・9列目は、別データを入力するため空白にしたい) そして、社員2人目である7行目からは、上記と同じ規則で転記したい。 などというように、選んで転記する方法は何かありますでしょうか?? =INDEX(Sheet1!$Z:$Z,(ROW(B2)-ROW($B$2))*6+IF(COLUMN()=4,MOD(COLUMN(B2)-1,6)+1,MOD(COLUMN(B2)-1,7))) のようにしても上手くいきません。 何卒宜しく御願いいたします。

  • エクセル マクロで別ブックから転記するやり方

    エクセルでBook1(集計用)と、 店舗→Book2(大宮店)、Book3(東京店)・・・・・ 何店舗もあるんですがそれぞれの店舗のA30,B30,C30,D30の数字を Book1(集計用)のA列に並んだ店舗名のB列、C列、D列、E列に転記させたいと考えています。 今までは関数を入れて読み込ませていましたがこれをマクロで作成させる場合どのようにすればよいでしょうか? 何か他にいい案があれば教えていただきたいと思います。 よろしくお願いいたします。

  • EXCELでデータを自動的に返す

    A列に会社名、B列に会社コードが記載された、簡易データベースとしてのEXCELシートがあります。 別のワークシートで、A列に会社名、B列に金額を記入していく伝票があります。 このシートのC列に、会社コードが自動で入るようにしたいのですが、どのような関数を使えばよいでしょうか? よろしくお願いします。

  • エクセル 複数の条件に一致

    複数の条件に一致したセルの内容によって、別のセルに別の文字を自動で表示したいのですが可能でしょうか? 詳細はこのような形で、 【シート1】       A     B       C 1      0001     3/1    有 2      0002     3/1    無 3      0001     3/2    不明 【シート2】       A     B       C 1             3/1      3/2 2      0001       ○      △ 3      0002       ×     "空欄" ・シート2のB2からC3を自動で表示できるようにしたい。 ・シート1のA列とシート2のA列が一致、更にシート1のB列とシート2の1行が一致。 ・シート1のC列が「有」の場合「○」、「無」の場合「×」、「不明」の場合、「△」、「空欄」の場合、「"空欄"」と表示。 知りうる限りの関数を合わせてみましたが、できませんでした。 どなたかいい方法を教えて頂ければと思います。 環境はXPpro、エクセル2000です。 宜しくお願いします。

専門家に質問してみよう