• 締切済み

エクセルでの転記について

関数を使って転記をしています。 Sheet1 が 売上げ全体 Sheet2 が 担当者別 という形で、 Sheet2のB1に、「Sheet1 のA1(担当) が 田中 ならば、Sheet1のB1を入れなさい。そうでなければ空白にしなさい。」という関数を使用し、売上げ金額、経費、利益・・・・等C1,D1,E1・・・と転記するようにしています。 転記自体はうまく行くのですが、担当が「田中」でない場合、空白になるため、10件の売上げの内、田中の売上げが4件しかなかった場合に残りの6件は空白行になってしまい、一覧としてみた場合見栄えが悪くなってしまいます。 原因は、Sheet1のA1が田中なら・・・,A2が田中なら・・・,A3が田中なら・・・と1行ずつ固定して式を入れているからだということは何となく解るのですが、10件の売上げの中の田中だけをSheet2を転記しなさいという関数が色々調べているのですが答えにたどり着けません。 どういった関数にすれば、可能なのでしょうか? どうぞよろしくお願いします。

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

#1,3のmshr1962です。 とりあえず最初のほうだけですが... >転記されたときに、各担当0001の転記だけされないのです。 Sheet2の開始行は2行目からですか? B2=IF(COUNTIF(Sheet1$B:$B,$A$2)>=ROW(A1),VLOOKUP($A$2&TEXT(ROW(A1),"0000"),Sheet1!$A$1:$Z$60000,COLUMN()+1,FALSE),"") とROW()のカッコ内にA1とするかROW()-1として調整してください。

rs0415
質問者

お礼

ありがとうございます。 ROW(A1)にしたら、担当単位で全て転記されました。 セルの違いで変わってしまうは解っていたので、慎重にやったつもりだったのに、すみません。

  • omusupa
  • ベストアンサー率61% (115/186)
回答No.4

#2です。 すみません・・・。抽出結果も同じシートに作成してました。解決しているようですが・・・・参考になれば。 Sheet2のA2番地に以下の式を入れます =IF(ISERROR(MATCH("田中",Sheet1!$A$2:$A$23,0)),"",MATCH("田中",Sheet1!$A$2:$A$23,0)) 今度は、Sheet2のA3番地に以下の式を入力し、適当な行までコピーします。 =IF(ISERROR(MATCH("田中",OFFSET(Sheet1!$A$2:$A$23,Sheet2!A2,0,100,1),0)+Sheet2!A2),"",MATCH("田中",OFFSET(Sheet1!$A$2:$A$23,Sheet2!A2,0,100,1),0)+Sheet2!A2) あとは、Sheet2のB2番地に =IF(ISERROR(INDEX(Sheet1!$B$2:$B$23,Sheet2!A2,1)),"",INDEX(Sheet1!$B$2:$B$23,Sheet2!A2,1)) です。

rs0415
質問者

お礼

ありがとうございます。 ↑の式をいれたらできました。 同じ転記をやるのでも、色々な方法があるものですねぇ~。 1つ1つの関数は何となくわかっても、組み合わせるのがさっぱり解らなくて・・・。 まだ、日付で転記したり、残高で転記したり、色々作る予定ですが、思わずPCの電源を落としたくなる今日この頃です・・・。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

#1のmshr1962です。 >Sheet1に入力したら自動的にSheet2に転記する方法を探しています。 数式にこだわるなら、 Sheet1でA列の前に列を挿入して =$B1&TEXT(COUNTIF($B$1:$B1,$B1),"0000") として出たの最後までコピーします。 Sheet2のA1に田中と入力 B1=IF(COUNTIF(Sheet1$B:$B,$A$1)>=ROW(),VLOOKUP($A$1&TEXT(ROW(),"0000"),Sheet1!$A$1:$Z$60000,COLUMN()+1,FALSE),"") これを横方向にコピー後、必要分下方にコピー もっともVBAを使って転記(コピー&ペースト)を行ったほうがスマートかもしれませんが...

rs0415
質問者

補足

またまたお返事ありがとうございます。 ↑の式で苦戦しながらも転記できました。 画面が変わっていく時は感動でした。 しかし・・・・1番目の式で、担当のカウントを付けていきますが、 転記されたときに、各担当0001の転記だけされないのです。 設定セルは式にあうように変えたし、式も間違っていないようなのですが・・・・。 何が理由でしょうか?教えていただいたのに、式の中身が所々わかるものの、完全に理解できない為すみません。 また・・・今回は担当者で転記をしましたが、これを1月(1/1~1/31)に納品された契約のみ転記、ということも可能でしょうか? 1/1以上、1/31以下というスラッシュをいれた関数を作ってみたら、エラーがでて、スラッシュはダメなんだろうな・・・とは思うんですが。 日付だから、↑の式をちょっと変えてというわけにはいかないのでしょう・・・ねぇ。 正直、関数での転記を覚えてから色々な表を作成しましたが、作るたびにどこかで式がずれたり、コピー&ペーストの繰り返しで疲れを感じ、先日VBAの初心者の本を購入しました。ただ、2月1日までに綺麗に転記される表を提出しなければならなかったため、とりあえず関数で。 これからVBAを勉強して(苦難の道ですが・・・)挑戦しようと思っています。

  • omusupa
  • ベストアンサー率61% (115/186)
回答No.2

Sheet1のA2からA23までに、担当者の名前が入っていると仮定します。 Sheet1B2からB23までにも、何か入力しておいてください。 そして、Sheet2のA2番地に以下の式を入れます。 =IF(ISERROR(MATCH("田中",$A$2:$A$23,0)),"",MATCH("田中",$A$2:$A$23,0)) 今度は、A3番地に以下の式を入力し、10行ぐらいコピーしてみてください。 =IF(ISERROR(MATCH("田中",OFFSET($A$2:$A$23,F2,0,100,1),0)+F2),"",MATCH("田中",OFFSET($A$2:$A$23,F2,0,100,1),0)+F2) 上記の式で、「田中」さんがリストの中の何番目に出てくるかを調べることができます。あとは、B2番地に =IF(ISERROR(INDEX($B$2:$B$23,F2,1)),"",INDEX($B$2:$B$23,F2,1)) を入力して、コピーしてみてください。 A列の数字が気になるようであれば、非表示にするとか、文字色を白にするとか・・工夫してください。

rs0415
質問者

補足

お返事ありがとうございます。 教えていただいた関数入れてみました。 2番目の式をいれコピーをしたら、空白セルと0セルの2パターンに分かれ、3番目の式をいれコピーを入れると2番目とずれた位置で空白と0が並びました。 選択するセルが間違っていたのか・・・。 sheet1を選択する文章?はいらないのでしょうか? F2にってセルのF2?? 教えていただいた関数の意味を自分で理解できるようにこれから勉強です!!

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

数式でなくていいなら Sheet1の1行目に項目名を設定してから 「データ」「フィルタ」「オートフィルタ」として 氏名の列の▼ボタンを押し、田中を選択する。 田中のデータのみが表示されるので、転記が必要ならコピーして別のシートに貼り付ける。

rs0415
質問者

お礼

お返事ありがとうございます。 でも・・・オートフィルタではなく、Sheet1に入力したら自動的にSheet2に転記する方法を探しています。 店舗が数件あり、それぞれの店舗、担当で日々オートフィルタ→コピーとなりますと、手間が掛かってしまうので・・・。

関連するQ&A

  • エクセルのマクロで転記

    シート1とシート2があり、 シート1の20Aから39Lまでのセルの中に情報を書き込んでいます。 シート1の20Lから39LのL行で、数値が入っているセルがあれば、その行のA、B、I、L列と、J2、A7を取り出し、シート2の2行目から下に転記していくのですが、 シート2のA列にはシート1のJ2を、B列にはシート1のA7を、C列以降は、シート1のA、B、I、Lを入れるようにします。 また同じ条件がシート1で発生すれば、シート2の3行目以降に転記していく感じです。 どのようにすればいいでしょうか。

  • エクセル関数について

    下記のようなエクセルのデータを作りたいのですが、どのような関数を使えばいいかわかりません。 シート1           シート11           シート12            A    B         A    B            A    B  1  田中 500円    1 田中  500       1 田中  500 2               2 シート2    A    B         A   B             A    B  1  伊藤 300円     3 伊藤 300         2 伊藤  300 2  佐藤 400円     4 佐藤 400         3 佐藤  400 このようにシート1から10まで2行入力する欄を作ります その中から大事なデータだけを集計するため一度シート11に反映させます この時2行目が空欄の場合はシート11も空欄になっています。 そしてこのシート11から空白部分を除いて順番に並べるシート12を作りたいです。 シート11は=Sheet1!A1のように単純に反映ができるのかと思うのですが シート12へ空白を除いて反映させる方法がわかりません。 わかりづらい質問でも申し訳ありませんが  何卒よろしくお願い致します。  

  • EXCELの表からの「抽出」、「転記」

    1.元帳(Sheet8)から転記した「金融機関向け提出資料」(Sheet10)があったので、こ れからまた転記して組単位で「No.」と「氏名」の表(Sheet5)を作りたいので  す。 2. 添付画像「金融機関向け提出資料」(Sheet10)において、9組を例にとると、No.7、No.16、No.17、No.23の、以下続  く。これ等をSheet5の表に抽出していきたいのです。Sheet5の構想は、1行目:組 番号、2行目は項目名:No.(A2)と氏名(B2)、3行目~27行目(25名分)に各  データを 抽出、転記する。一組分の範囲はA1:B27です。 3.組の数は9組ありますが、一組だけその方法を教えて頂ければ結構です。 4.尚、Sheet10のNo.は1~188です。Sheet10のG列に、組番号を転記しています。こ の組番号はSheet10では印刷領域外です。 5. Sheet10からSheet 5に抽出し、転記した最初の人の(1)No.と(2)氏名をオートフィ ルで下にコピーすると、同じ組のNo.と氏名が表示されたら良いのですが・・・。 6.私はマクロが使えません。INDEX関数やMATCH関数は使ったことがあります。 元帳(Sheet8)からINDEX関数で「金融機関向け提出資料」(Sheet10)に転記して います。 7.最初から9組分の表を作成しておいて、そこにデータを順次転記していく方法もあ るのかも知れません。 8.Sheet10の一部を「画像添付」します。 以上ですが、よろしくご指導ください。

  • エクセル 関数を使っての自動転記について

    ネットでいくつか検索してみましたが、こちらの検索方法が悪かったためかヒットしなかったので 改めてこちらで質問させて頂きます 今回の質問内容ですが、例えばの話シートAのA列の1行目に1組、2行目に2組、3行目3組と入力してあり、それがシートBのA列にも同じく1組、2組、3組・・と同じように表示したいというものです それだけでしたらイコールを使えば良いのですが、さらにシートAの1組、2組、3組と追加でその下の4行目に4組と入力した場合、シートBにも自動で3組の下の行に4組と入力されるようにしたいというものです (例えばの話なので1行目の文字がりんご、2行目の文字がみかんといったように数字以外になる事ももちろんあります) OFFSET関数やCOUNTA関数を使って、シートAの空白以外のセルを数えて、そのセル数分だけ シートBにデータが表示されるようにしたいのですが具体的な関数の組み合わせが分かりません 不明な点御座いましたら追記にてお答えしますのでお分かりになる方がいらっしゃいましたら ご教授の程お願いします

  • 複数のエクセルブックから転記するマクロを教えて

    エクセル2010で、1つのフォルダ内にある複数のエクセルブック(約50支店分)の売上シートから、担当者別の日次売上等の集計マクロを作成したいのですが方法がわかりません。支店ごとの担当者数は、支店ごとに違います。ご協力お願いします ■基本条件 ・毎日、支店がブック内の売上シートに入力(更新)し保存する。売上シートには、担当者が複数名登録されており、支店によって担当者数は異なります。 ・全店とも中身は同書式同形式ファイル  例)売上報告A店.XLS、売上報告B店.XLS・・・ ■マクロ(集計.XLS)でやりたいこと ・各支店ブックの売上シートから、担当者名(A5)・売上A(B5)・売上B(C5)を転記し明細表の作成 どなたか教えていただけますでしょうか?よろしくお願いします。

  • Excel転記

    Sheet1 9行目のようにC列に(株)三井住友銀行と入力すれば、 Sheet2に転記するにはどのようにすればよいでしょうか? Excelの勉強をし始めて数ヶ月、簡単な関数はできるようになりました。 ここで皆さんに助けていただいて、マクロも少し理解できる様になりましたが、今回は途方にくれています。IF関数だけでは無理ですね…。 質問がうまくないかもしれません、その際はいろいろ聞いてください。 よろしくお願いします。

  • EXCEL VBA 転記 条件分岐 新規転記 上書転記 プログラム

    いつも御世話になっております。 以下のことをしたいのですが、詰まってしまいました。 皆様の力をお借りしたいと思い、書き込ませていただきます。 ・ボタン1をクリックすると、base(転記元)のG列に書かれた事項と同一のシート(転記先)へ転記する(各シートA,B,Cへ転記) ・転記先のE列を見て、既存のものであれば、上書きする ・転記先のE列を見て、新規のものであれば、空いている行を探し転記する。 (例) base(転記元シート) E1|F1|G1 名前 収入 シート先 月曜 50 A 火曜 100 A 木曜 150 C 土曜 50 A 日曜 100 B 水曜 150 A 金曜 10 C 転記実行前 A(転記先シート) E1|F1|G1 名前 収入 シート先 月曜 A 火曜 A 土曜 A 転記実行後 A(転記先シート) E1|F1|G1 名前 収入 シート先 月曜 50 A 火曜 100 A 土曜 50 A 水曜 150 A 以下に作成したプログラムを記述します。 が、IF文に関するエラーが生じております。 Sub ボタン1_Click() Dim dstSheet As Worksheet Dim srcRow As Long Dim dstRow As Long Dim name As Integer Dim obj As Object Set srcSheet = Sheets("base") For srcRow = 2 To srcSheet.Range("G" & Rows.Count).End(xlUp).Row '元シートのデータ範囲で繰り返し(シート先は必須なのでG列でチェック) If srcSheet.Range("G" & srcRow).Value <> "" Then '(転記先シート名)が空白でない場合に実行(1) Set dstSheet = Sheets(srcSheet.Range("G" & srcRow).Value) 'シート取得(1) name = Sheets(srcSheet.Range("E" & srcRow).Value) '名前を取得(1) Set obj = Worksheets(dstSheet).Cells.Find(name) '名前を転記先の中で検索(1) End If '(1)の終了 If obj Is Nothing Then '検索でかからなかったら、新たに空白の行を見つけて転記元から転記先へ転記する(3) '以下3行問題点???? dstRow = dstSheet.Range("G" & Rows.Count).End(xlUp).Row + 1 '転記先行取得 If dstSheet.Range("E2") = "" Then dstRow = 1 '質問で転記先には1行目からなので、それに対応 dstSheet.Range("E" & dstRow).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記 End If Else '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4) lngYLine = obj.Row intXLine = obj.Column With Sheets(dstSheet) '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4) dstSheet.Range("E" & lngYLine).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記(4) End If '(3),(4)の終了 Set obj = Nothing 'Objの初期化 Next End Sub

  • データ転記。うまく転記できないシートがあります。

    エクセルのデータ転記について助けてください。 現在 エクセルで職場で使用する現金出納帳を作成中です。完成間近なのにつまずいてしまいました。 作成にもう長い時間かかっるので今週中になんとか仕上げたいのです。 (職場での周りの目がこわくって・・・) どうかどうかよろしくおねがいします。 *各シートの説明 【シート1(元帳)】は記入用シート(1年間の経費等の入力をします) A1は表題 2行目はタイトル行で B列:月日、C列:曜日、:D列:経費部門コード(以下部C)、E列:経費部門名(D列の部C入力時に他シートにあるデータベースからLOOKUPで抽出して表示するようにしてます) F、G列は手入力用の内訳や備考の列、H列:収入金額、I列:支払金額、J列:差引残高。(I・J列は転記必要なしです) データはB3(日付)から入力します。 データ表の範囲はとりあえず100行目まで(A1からJ100) 【シート2~シート16(シート名はD列の経費部門コード番号です)】 こちらが転記先シートです。 A1に部門コード、B2に部門コード名(A1のコードでデータベースより抽出)2行目はB列:月日、C列:曜日、D、E列:内訳、備考、F:支払金額 【シート17(経費部門コードのデータベース)】 部門番号と部門名を表にして 元帳で入力の際 ここからひっぱってくるようになっています。 番号は15種類(経理上不規則な番号):1・2・4・5・6・7・8・9・10・12・20・21・22・仕・給(これをシート名にしてます) *希望する完成仕様 元帳(シート1)に入力したデータが同時に部門C別シート(15種類)に必要な項目だけ転記される。必要な項目は上記のシート説明参照。 *現在の作成状況 ・元帳のシート A3に'=COUNTIF($D$3:D3,D3)&D3 以下 A列はA3をコピー ・15枚の部門番号のシート B3(転記初期行)に'=IF(ISERROR(VLOOKUP(ROW(元帳!A1)&$A$1,元帳!$A$1:$I$100,2,0)),"",VLOOKUP(ROW(元帳!A1)&$A$1,元帳!$A$1:$I$100,2,0)) C3,D3,E3,F3列はB3をコピーしLOOKUPの列番号を変更 *現在の状況と問題点 シート4・5・6・7・8・9・10・12・20・21・22はきちんと転記する。 シート1(部門C:1)は部門C:1と部門C:21のデータが転記されてしまう シート2 (部門C:2)は部門C:2と部門C:12と部門C:22のデータが転記されてしまう。 この2つのシートは 下1桁でひっぱってきてしまってるのは分かるのですが改善方法が分かりません。 どうかこの2シートがきちんと動く数式を教えていただけるでしょうか? 文章力不足のため 質問の理解にさぞ悩まれるでしょうがどうぞよろしくお願いします。 補足:01 02 04と 二桁でもしてみましたが反応は同じ。 よく分からなくて セルの表示変えても値は1・2・4になってしまうんです・・。 結局よく分かりませんでした。

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

    画像を2つ添付していますので参考に見て下さい。 やりたい事は、入力シートと集計シートは別なのですが、12カ月分12枚の入力シートから1枚の集計シートへ転記。 担当者別・扱いNo・売上種類・計算した後の金額(単価×数量)を集計シートに転記して入れたい。 添付写真のように、担当別の枠に数字の若い順番で転記させる事は可能でしょうか? 毎回コピペでやっており、大変困ってます。 どなたか、頭の悪いわたしへ教えて下さい。

  • EXCEL プログラム マクロ VBA シート 転記

    私はプログラム初心者です。 EXCELでマクロを組もうと思いましたが、皆目見当つかないので質問させて頂きました。 以下のようなことがしたいです。 ・Sheet1にある内容を他のシートへ転記する ・他のシートの名前はポン酢、醤油、味噌、酢である。 ・Sheet1には以下のようなデータ群がセルにはりつけられている 行A|行B|行C 管理番号|値段|調味料 1|100円|ポン酢 2|200円|醤油 3|900円|味噌 4|500円|酢 5|800円|味噌 6|(空白)|(空白) 7|2000円|酢 以上のデータをシートへ貼り付ける。 シートの名前はポン酢・醤油・味噌・酢であり、調味料の列に入っている名前から各シートへ転記する。 また、Sheet1に貼り付けられているデータで空欄の部分は飛ばすものとする。 シート転記例(味噌) 3|900円|味噌 5|800円|味噌 シート転記例(酢) 7|2000円|酢 どうぞ、よろしくお願いいたします。

専門家に質問してみよう