エクセル2003で科目ごとに別シートに転記する方法とは?

このQ&Aのポイント
  • エクセル2003を使用して、現金出納帳シートのデータを各科目のシートに自動的に転記する方法を教えてください。
  • 利息シートと会費シートにはそれぞれのデータを転記するための式がありますが、収入シートを作成して利息と会費を一つにまとめたい場合、どのような式を使用すればよいでしょうか?
  • 上記の式の意味を十分に理解していないため、具体的な手順を教えていただけると助かります。
回答を見る
  • ベストアンサー

エクセル2003 科目ごとに別シートに転記したい

Ecxel2003を使用しています。 [現金出納帳]シートに記入したデータが各科目(利息、会費など)のシートに自動的に転記される方法として次の式を使いました。 [現金出納帳]シートには   A   B   C   D 1    日付  科目 金額 2 3 4 5 6    3/8  利息  18 7    3/9  会費  100   [利息]シートには A5=IF(ISERROR(MATCH("利息",現金出納帳!$C$6:$C$500,0)),"",MATCH("利息",現金出納帳!$C$6:$C$500,0)) A6=IF(ISERROR(MATCH("利息",OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),0)+A5),"",MATCH("利息",OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),0)+A5) B5=IF(ISERROR(INDEX(現金出納帳!$B$6:$B$500,A5,1)),"",INDEX(現金出納帳!$B$6:$B$500,A5,1)) B6=IF(ISERROR(INDEX(現金出納帳!$D$6:$D$500,A5,1)),"",INDEX(現金出納帳!$D$6:$D$500,A5,1)) と式を入れると[現金出納帳]シートから転記されます。 同様に[会費]シートも式の”利息”を”会費”に書き換えたものを入力すると[現金出納帳]シートから転記されます。 ここで、 [収入]シートというものを作って、[利息]と[会費]を一つにまとめたシートを作る場合、 式はどうなりますか?([現金出納帳]シートには利息、会費以外にも色々な科目のデータが入っていきます) なお、上式の意味は充分理解していない程度の知識しかありません。よろしくお願いいたします。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

先ほどの回答で一部誤りがありました。(配列式でない方です) A5 =IF(SUM(COUNTIF(現金出納帳!$C$6:$C$500,{"利息","会費"}))=0,"",MIN(MATCH("利息",現金出納帳!$C$6:$C$500,0),MATCH("会費",現金出納帳!$C$6:$C$500,0))) A6 =IF(SUM(COUNTIF(OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),{"利息","会費"}))=0,"",MIN(IF(COUNTIF(OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),"利息")=0,10^8,MATCH("利息",OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),0)),IF(COUNTIF(OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),"会費")=0,10^8,MATCH("会費",OFFSET(現金出納帳!$C$6:$C$500,A5,0,100,1),0)))+A5)

nekoyashik
質問者

お礼

ご連絡遅くなりました。配列式でないほうで確認できました。ありがとうございます。配列式のほうも試してみます。本当に助かりました。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

分かり易い方法は作業列を作って対応することです。現金出納帳シートの例えばE2セルには次の式を入力して下方にドラッグコピーします。 =IF(C2="","",C2&COUNTIF(C$2:C2,C2)) 収入シートのA1セルからD1セルには項目名が有るとして A2セルには次の式を入力してD2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COUNTIF(現金出納帳!$E:$E,"利息"&ROW(A1))>0,INDEX(現金出納帳!$A:$D,MATCH("利息"&ROW(A1),現金出納帳!$E:$E,0),COLUMN(A1)),IF(COUNTIF(現金出納帳!$E:$E,"会費"&(ROW(A1)-COUNTIF(現金出納帳!$C:$C,"利息")))>0,INDEX(現金出納帳!$A:$D,MATCH("会費"&(ROW(A1)-COUNTIF(現金出納帳!$C:$C,"利息")),現金出納帳!$E:$E,0),COLUMN(A1)),"")) これで収入シートには利息の行が並んだ後で会費の行が表示されることになります。

nekoyashik
質問者

お礼

ご連絡遅くなりました。式の意味は今は理解できませんが、上手くいきましたよ。今回は日付順に並べたかったのですが、教えていただいた方法も色々応用できそうです。勉強して役立てようと思います。ありがとうございます。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

式が長くなりますが、一応以下でできます。 A5 =IF(SUM(COUNTIF(現金出納帳!$C$6:$C$500,{"利息","会費"}))=0,"",MIN(MATCH("利息",現金出納帳!$C$6:$C$500,0),MATCH("会費",現金出納帳!$C$6:$C$500,0))) A6 =IF(SUM(COUNTIF(OFFSET(現金出納帳!$C$6:$C$500,G5,0,100,1),{"利息","会費"}))=0,"",MIN(IF(COUNTIF(OFFSET(現金出納帳!$C$6:$C$500,G5,0,100,1),"利息")=0,10^8,MATCH("利息",OFFSET(現金出納帳!$C$6:$C$500,G5,0,100,1),0)),IF(COUNTIF(OFFSET(現金出納帳!$C$6:$C$500,G5,0,100,1),"会費")=0,500,MATCH("会費",OFFSET(現金出納帳!$C$6:$C$500,G5,0,100,1),0)))+G5) あとの式は同じでいいです。(B6の式はC5の場所の間違いと判断しました) 配列数式でもよければ、もう少し短くなります。 A5に入れ、CtrlキーとShiftキーを押しながらEnterキーで確定 =IF(SUM(COUNTIF(現金出納帳!$C$6:$C$500,{"利息","会費"}))<ROW(現金出納帳!A1),"",SMALL(IF((現金出納帳!$C$6:$C$500="利息")+(現金出納帳!$C$6:$C$500="会費"),ROW(現金出納帳!$C$6:$C$500)-5,""),ROW(現金出納帳!A1))) A6以降は、このA5をコピーします。

関連するQ&A

  • ExcelセルにVBAでINDEX関数を入力

    ExcelでINDEX関数とMATCH関数で"B11:E13"セルに以下の数式データがあります。 数式は "B11"=IF(ISERROR(INDEX($A$1:$A$9,MATCH(1,B$15:B$23,0))),"",INDEX($A$1:$A$9,MATCH(1,B$15:B$23,0))) "B12"=IF(ISERROR(INDEX($A$1:$A$9,MATCH(2,B$15:B$23,0))),"",INDEX($A$1:$A$9,MATCH(2,B$15:B$23,0))) "B13"=IF(ISERROR(INDEX($A$1:$A$9,MATCH(3,B$15:B$23,0))),"",INDEX($A$1:$A$9,MATCH(3,B$15:B$23,0))) "C11"==IF(ISERROR(INDEX($A$1:$A$9,MATCH(1,C$15:C$23,0))),"",INDEX($A$1:$A$9,MATCH(1,C$15:C$23,0))) "B15~B23"に数値1~3を入力した場合イニシャルA~I が入力される式ですが、列を連続で入力できるような処理をVBAのWorksheetFunctionで行うにはどのようにコードを記述すればよいのでしょうか。 ご回答のほどよろしくお願いします。

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

    エクセルのデータ転記について助けてください。 現在 エクセルで職場で使用する現金出納帳を作成中です。完成間近なのにつまずいてしまいました。 作成にもう長い時間かかっるので今週中になんとか仕上げたいのです。 (職場での周りの目がこわくって・・・) どうかどうかよろしくおねがいします。 *各シートの説明 【シート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枚(AとB)があります。 シート A のD2に職員番号(例えば26)を入れるとシート B のC28にある名前データを読んで、 シート A のD3に表示させたい、 のです。今日、2時間半いろいろ試してみたのですが完成しませんでした。どなたか簡単な方法をご存知でしたら教えてください。 =choose(D2, .....) というのは使えないのでしょうか。

  • エクセルの関数の直し方

    現在、画像のような表を作成しておりますが、 1行目の前の行に5行挿入したいと考えております。 下の表からデータを製番・区分ごとに合計して上の表に表示されるようになっています。 5行挿入してタイトル等入れたいと思い、挿入してみると、 今まで下の表からの合計が上の表に表示されなくなってしまいます。 セル番号等確認はしてみたのですが、 どこがいけなくてうまく表示されないのかがわからなくて困っています。 どのように直したらいいかをご教示お願いいたします。 現在入っている関数は以下の通りです。 A2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(A1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(A1)),Sheet1!$L$14:$L$38,0),MATCH(A$1,Sheet1!$B$13:$I$13,0))) B2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(B1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(B1)),Sheet1!$L$14:$L$38,0),MATCH(B$1,Sheet1!$B$13:$I$13,0))) C2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(C1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(C1)),Sheet1!$L$14:$L$38,0),MATCH(C$1,Sheet1!$B$13:$I$13,0))) D2=IF(A2="","",SUMIFS(Sheet1!$G$14:$G$38,Sheet1!$B$14:$B$38,A2,Sheet1!$H$14:$H$38,B2)) E2=IF(C2="","",IF(ISERROR(VLOOKUP(C2,list!$S$3:$T$6,2,0)),"",VLOOKUP(C2,list!$S$3:$T$6,2,0))) H14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),3,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),3,FALSE))) I14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),4,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),4,FALSE))) J14=IF(ISBLANK(B14),"",IF(B14<="J121100144","旧","新")) K14=IF(AND(B14<>"",H14<>"-"),B14&"_"&H14,"") L14=IF(AND(K14<>"",COUNTIF(K$14:K14,K14)=1),COUNTIF($K$14:$K$38,"<"&K14)+1,"")

  • エクセルのシート1からシート2に引用すると重複表示

    当方、この7月からある団体の会計を任されて四苦八苦しています。 エクセルで1枚目のシートに「現金出納」、 2枚目以降のシートには1枚目の項目を引用して、 「科目ごとの集計」といった書類を作成しました。 2枚目以降の引用で、重複項目が表示されて原因が解らず 困っています。 使った手法は 1.「データの入力規制」でシート1の右側に項目を置き、 c行の「項目」欄の入力をプルダウンで選択出来るようにした。 2.シート2のH2「項目」を入力すると、シート1のC行の項目を参照し 当てはまるものを抽出し、シート2のA~E行に表示されるようにした。 使った関数はこちらです。 =IF(OR($H$2="",COUNTIF(現金出納!$B$2:$C$1000,$H$2)<ROW(A1)),"",INDEX(現金出納!A$2:A$1000,SMALL(IF(現金出納!$B$2:$C$1000=$H$2,ROW($A$1:$A$999)),ROW(A1)))) この状態で概ね上手く表示されるのですが、 中に二重表示されてしまうものが有ります。 シート1のD行「収入金額」にデータが有るものが 2枚目のシートに二重に表示されている感じなのですが、 中には二重表示されていないものも有るようです。 多分関数のどこかが間違っているのだと思うのですが、 関数の知識がほどんど無いので困っています。 原因がわかりましたら教えて頂けませんか。 よろしくお願いいたします。

  • 条件にあう複数の行を別のシートに抽出する

    例 データ Sheet2のA1に(条件の)2 Sheet1 A列  B列  C列  D列 コード 名前 計数 1 A 12 2 B 13 1 2 B 14 2 4 D 15 5 E 16 6 F 17 2 B 18 3 3 C 19 5 E 20 D列は =IF(A2=Sheet2!$A$1,MAX($D$1:D1)+1,"") 下方向に式を複写。 Sheet2に行って =INDEX(Sheet1!$A$1:$D$100,MATCH(ROW()-1,Sheet1!$D$1:$D$100,0),COLUMN()) 式を右方向に式複写 A2:C2の式を下方向に式複写。 結果 2 2 B 13 2 B 14 2 B 18 #N/A #N/A #N/A ーー #N/Aを空白にするには ROW()-1がSheet1のD列のMAXを超えていると空白と いうIF文を加えると良い。   以前、上記のように質問のご回答を頂いたのですが、更に質問があって再度聞きたくて、再質問します。上記の場合は、「2」だけでしたができました。それで後の2以外の「1~6」について、Sheet3・4・5・6・7に抽出したいと思いますが、関数では無理でしょうか。初心者で色々な記事もみますがよくわかりません、お教え下さいませんでしょうか、お願いします。

  • データー表から別のシートに転記

    いつもお世話になります。 WINDOWS7 EXCELL2010 です。 データーを記入したシート「入力」から会社別のシート「請求書」に転記したい。 シート「入力」 1月~12月迄、C /G列を除くA~F列には手入力しています。 C2 =IF(B2="","",VLOOKUP(B2,顧客管理,2,FALSE)) & " " G2 =IF(F2="","",E2*F2) シート「請求書」 月初~月末 の月毎に請求内容を「入力」シートより参照図のように転記したい。 参照図でいうと 10月のみにまとめたい。 この請求書は 例えば A1 に 「0030」と入力すると A1 0030 A2 郵便番号 =" "&IF(A1="","",TEXT(VLOOKUP(A1,顧客管理,4,FALSE),"〒000-0000")) & "" A3 会社名 荒川商店 =" "&IF(A1="","",VLOOKUP(A1,顧客管理,3,FALSE)) & "" 当然のことながら A1 に 0041 と入力すると 「春日南九(株)」の請求書に早変わりし、 D15 E15 F15 G15  10/20 JF 250 4  という具合になればありがたいです。 御指導のほどよろしくお願いします。

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

    縦に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))) のようにしても上手くいきません。 何卒宜しく御願いいたします。

  • エクセルVBA シート1からシート2へ転記したい

    シート1のデータはそのままで、 シート2に編集して転記したいです。 シート1にはA列からI列までデータが入っています。 行数は都度変わりますがデータは3行目から始まり 大体500行くらいです。 転記方法は シート1のD列→シート2のA列 シート1のE列→シート2のB列 シート1のF列→シート2のC列 シート1のC列→シート2のD列 でシート1のD列の値が同じ場合は 転記先のシート2の行数は増やさずにシート1のC列の値を 同じ値のF列内にカンマでつないで転記したいです。 でそのつないだ合計数をシート2のE列に表示したいです。 イメージ C  D    E     F ------------------------ A1 みかん 国内 Sサイズ A3 みかん 国内 Sサイズ D6 みかん 国内 Sサイズ D9 りんご 国内 Mサイズ G7 りんご 国内 Mサイズ F5 バナナ 海外 Lサイズ G1 バナナ 海外 Lサイズ A2 いちご 国内 Sサイズ D8 いちご 国内 Sサイズ F3 いちご 国内 Sサイズ H2 いちご 国内 Sサイズ   ↓ A    B    C      D     E ------------------------------------------- みかん 国内 Sサイズ A1,A3,D6   3←3個 りんご 国内 Mサイズ D9,G7     2←2個 バナナ 海外 Lサイズ F5,G1     2←2個 いちご 国内 Sサイズ A2,D8,F3,H2  4←4個 上記例の場合は元データは11行ですが編集後は4行です。 配列は自力で作成できないので考え方を教えていただきたいです。 構文をそのまま書いていただいても大変助かります。 Do~LoopかFor~Nextで上から順最終行まで処理で シート1からシート2へ転記する構文をかいて D列の値が直前に処理した値と同じ場合は 転記はしないでC列の値を変数1に代入し シート2の該当行のD列も変数2に代入し 変数1&","&変数2で対象行のD列に転記と考えましたが うまくできませんでした。 またシート2のE列の求め方ですが、上記変数1,2に代入した後に 変数3=変数3+1とかの文でカウントし、 その値を転記すればいいのでしょうか? すいません。今日1日頑張ってうまくできず 上手く説明できません。 よろしくお願いします。

  • 2sheet間のVLOOKUPのデータの転記

    sheet1 sheet2 A1 B1 C1 D1   E1  A1  B1  C1 D1  E1  F1 姓 名 会社 メルアド   アドレス姓 名  会社  メルアド TRIM(B1&C1&D1&E1) ・  ・  ・         ・    ・   ・  ・    ・ ・  ・  ・         ・    ・   ・  ・    ・ ・  ・  ・         ・    ・   ・  ・    ・ 上記の様にデータがありsheet2のアドレスをsheet1のE1に転記したいと思っています。 現在、Sheet1でのE1に=Vlookup(TRIM(A1&B1&C1&D1),Sheet2!A1:F100!A:A,0)と記述していますが、#NAMEなどのエラーが出てしまいます。 どうしたらデータの転記が出来るでしょうか? 何卒、宜しくお願い致します。

専門家に質問してみよう