• ベストアンサー

【エクセル】行番号の変動する参照セルを式に入れたい

エクセル2002を使用しています。 別シートに算出した合計金額を、シートを替えた表に、各桁をセルに振り分けたいのですが、合計金額が特定のセルである場合はできました。 合計する元データは、少ないときは1件、多いときは150件以上あるので、合計金額を算出するセルは行が変動します。 このようなときに、関数式に組み込む方法を教えていただきたいのです。 MAX関数やMATCH関数を使えばよいとアドバイスをいただいたのですが、それでもよく分からなく、質問させていただきます。 現在のシート等の状況です。 【合計金額を算出しているシート】 シート名・・・・・・・差込データ 合計金額を算出しているセル・・・・・・・行G(現在はセルG152にあります) 合計金額としての項目名・・・・・・・・・列Bに”合計”と表示しています。 【各桁に分けるシート】・・・・・印刷用の様式になっています。 シート名・・・・・・・金種連絡票 入力セル・・・・・・・セルH9からセルP9の9桁 現在、桁を分割するために使用している関数式(*********は半角スペース9個です) セルH9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,9),1,1)) セルI9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,8),1,1)) セルJ9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,7),1,1)) セルK9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,6),1,1)) セルL9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,5),1,1)) セルM9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,4),1,1)) セルN9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,3),1,1)) セルO9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,2),1,1)) セルP9・・・・・・・=(MID(RIGHT("*********"&差込データ!$G$152,1),1,1)) この関数式の【差込データ!$G$152】を変えればよいのかと思ったのですが、うまく行きません。 よろしくお願いいたします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

差込データ!$G$152を次の数式に変更してお試し下さい。 因みにB列に合計の文字列が重複していない事を前提にしています。 VLOOKUP("合計",差込データ!$B:$G,5,FALSE)

saitama090
質問者

お礼

ありがとうございます。 あてはめてみると、最初はできなかったのですが、VLOOKUPの参照列を6に変えて VLOOKUP("合計",差込データ!$B:$G,6,FALSE) としたところ、うまく行きました。 たいへんありがとうございました。

その他の回答 (2)

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

質問分が長すぎて読む気がしない。回答者に負担をかけないように。 ・「別シートの合計金額欄の値を持ってきたい。データ数で合計金額セルの行は変動する」で良いのではないですか。 ・シート名なぞSheet1とかで回答するから、類推して、質問者側で 「差込データ」とかに変えてください。名前が何であろうと、質問に影響しないでしょう。 「各桁に分ける」以下は質問者が類推で考えればよいことではないですか。このコーナーは、まる引き受けの回答を請け負うところで無いはず。 ーー Sheet2のA,B列に 合計金額 1000 とあるとする。 Sheet1の合計金額を入れるセルに =INDEX(Sheet2!$A$1:$B$100,MATCH("合計金額",Sheet2!$A$1:$A$100),2) と入れる。$B$100は100行目を越えないと仮定。 ーー それよりも合計金額を見つけるのが ・合計金額という文字列の同行であることで見つけるのか ・データの最終行やその前の一定行数の前後か ・その他 をしっかり書くべきです。

saitama090
質問者

お礼

質問の仕方が下手で申し訳ありません。 詳しく書いたほうが、回答をいただく時も、回答者の方が簡潔な回答を書けると思い、多くの文字を使用してしまいました。 また、質問のポイントを分かりやすく教えていただいてたいへんありがとうございました。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.2

シート「差込データ」のセル G152 を選択してから エクセルの メニュー>挿入>名前>定義 にそのセルに名前を定義づけ  仮に  【 合計 】と名付けます。 ※ 参照範囲には 「 =差込データ!$G$152 」と表示されています で、 OK 次に、シート名 「金種連絡表」の数式を下記のように変更 H9   =(MID(RIGHT("*********"&合計,9),1,1)) (I9~P9  も 定義した名前に 書き直し) 定義名で表す数式に置き換えれば、解決出来ます。

saitama090
質問者

お礼

定義名使うと便利ですね。 ありがとうございました。

関連するQ&A

  • 円マークを自動で表示するには

    請求書において シート1で押印及び合計金額 シート2で明細、計、消費税、合計 が表示されている状態です。 シート1の合計金額の部分は1桁1セルになっており(指定請求書がそういう形式の為変更できません) =(MID(RIGHT(" "&シート2!E32,1),1,1)) 以下同様 =(MID(RIGHT(" "&シート2!E32,6),1,1)) として各セルに1桁づつシート2の合計からとりだして記入している現状です A1|B1|C1|D1|E1|F1|G1|H1 (セル) 無|¥|6|5|4|3|2|1 (桁数) しかし、7桁目が入ったり入らなかったりするので合計をいつものつもりで6桁でいると1桁足らない請求になってしまいます。 常にチェックすればいいのですが、 if等を用いて シート2の合計の7桁目に数字が入っていれば数字を、入っていない場合は”¥”をとしたいのですが、うまくいきません。 =IF((MID(RIGHT(" "&シート2!E32,7),1,1))>0,(MID(RIGHT(" "&シート2!E32,7),1,1)),"\") としても7桁目にはなにかあると判断されているようでうまくいきません。 シート2の合計に\がないので認識できないのだと思いますが、 A1|B1|C1|D1|E1|F1|G1|H1 (セル) 無|無|6|5|4|3|2|1 (桁数) となってしまいます。 7桁目が無い場合 A1|B1|C1|D1|E1|F1|G1|H1 (セル) 無|\|6|5|4|3|2|1 (桁数) 7桁目が有る場合 A1|B1|C1|D1|E1|F1|G1|H1 (セル) \|7|6|5|4|3|2|1 (桁数) とするにはどのようにすればよいでしょうか。 わかりにくい解説で申し分けありませんが、お力をお貸しください。

  • エクセルでのセルの参照

    sheet1にデータが入力されています。 そしてsheet2ではそのsheet1に入っているデータを 抽出するsheetとして使用しています。 そこで、sheet2にある一つのセルに3と入力したら sheet1で使用しているA3、B3、C3、D3・・・ のセルのデータを、 4と入力したら A4、B4、C4、D4・・・ のセルのデータをsheet2のそれぞれのセルに引っぱってこれるように 関数を書きたいと考えています。 INDIRECTが機能的に近いのかなと考え、式を試してみたのですが なかなかうまくいきません。 また、4と入力したときにA5、B5、C5、D5を参照するというように 数値をいじったりできるであればそれも教えていただきたいです。 よろしくお願いいたします。

  • EXCELの複数条件式

    セルA  セルC 100   1000 101   1000 102   1000 200   2000 =SUM(IF(Sheet1!$A$1:$A$4=10,Sheet1!C$1:C$4,0),0) この条件式にセルAの先頭2桁で該当した合計を算出したいのですが 教えて下さい。

  • 【エクセル2002】別シートの数値を桁ごとに別々のセルに振り分けたい。

    お世話になります。 別シートで合計値を出した数値を参照し、指定のセルにその数値を桁ごとに分解して表示させたいのですが、うまくいきません。おそらく、IF関数、ISERROR関数、MATCH関数あたりを組み合わせるのだろうと思いますが、教えていただけないでしょうか 目的は、金種内訳票を作りたいのですが、票の規格により、各桁ごとに個別の升目(セル)に入力しなくてはならないためです。 【基礎データとなるシート】 ROUNDDOWN関数を使って金種別の金額を出し、SUM関数を使って合計値を出しています。その合計欄を参照したいと思っています。 シート名-------------差込データ (総合計について) 合計値のセル---------差込データ!の列Gの下のほうの行にありますが、最終行ではありません。同じ行の列Bに「合計」と項目見出しが入っています。 合計値の桁数---------4桁から8桁の間で毎回変動します。 (各金種について) 列Qの金種別合計額が入る行に、項目見出しとして「金種別合計額」と入っています。 1万円の金種別合計額------列R 5千円の金種別合計額------列S 1千円の金種別合計額------列T (※2千円は求めていません) 5百円の金種別合計額------列U 1百円の金種別合計額------列V 5十円の金種別合計額------列W 1十円の金種別合計額------列X 5円の金種別合計額--------列Y 1円の金種別合計額--------列Z 【差込先(表示させる)シート】 シート名-------------金種連絡票 各列の金額桁数 列Hは億の単位で、列Iは1千万円の単位です。順次、セルが右に移るごとに一桁下がります。 例えば、123,456,789円(1億2,345万6,789円)の場合 ・HIJKLMNOP(列) ・123456789  と、各セルに表示させたいのです。 また、金額が少ない場合は、数字が入らないセルは空欄にしたいのです。 例えば、56,789円(5万6,789円)の場合 ・HIJKLMNOP(列) ・    56789  このように、桁数に対応する各セルに表示させたいのです。 (総合計額を表示させるセル) セル範囲 セルH9からセルP9までのセルに右詰で表示させたいのです。      1億円の桁がセルH9で、順次桁が下がり、1円の桁がP9です。 (各金種額表示させるセル) 1万円はセルH10からセルL10までが計算により表示させる範囲で、ゼロ下4桁はシートに入力しておきます。 小額の金種は、各一行下に同じように表示します。  ※合計額の変動部分だけ計算により表示させたいです。 例えば、1万円の場合は、下のゼロ4つは計算でなく、シートにあらかじめ0を入れておきたいのです。これは、規定の様式でもあり、書体を変えて見やすくするという意味もあります。(金種の枚数ではなく、金額です) 1万円の金種別合計額 セルH10からセルL10までのセルに1万円単位の金額のみ右詰で表示させたいのです。下4桁(セルM10からセルP10までのセル)にはゼロが入っています。 5千円の金種別合計額 セルH11からセルM11までのセルに5千円単位の金額のみ右詰で表示させたいのです。下3桁(セルN11からセルP11までのセル)にはゼロが入っています。 1千円の金種別合計額  セルH13からセルM13までのセルに1千円単位の金額のみ右詰で表示させたいのです。下3桁(セルN13からセルP13までのセル)にはゼロが入っています。 (※本当は行12に2千円の項目があるのですが、2千円札は使わないので省略します) 5百円の金種別合計額 セルH14からセルN14までのセルに5百円単位の金額のみ右詰で表示させたいのです。下2桁(セルN14からセルP14までのセル)にはゼロが入っています。 1百円の金種別合計額 セルH15からセルN15までのセルに1百円単位の金額のみ右詰で表示させたいのです。下2桁(セルN15からセルP15までのセル)にはゼロが入っています。 5十円の金種別合計額 セルH16からセルO16までのセルに5十円単位の金額のみ右詰で表示させたいのです。下1桁(セルP16のセル)にはゼロが入っています。 1十円の金種別合計額 セルH17からセルO17までのセルに1十円単位の金額のみ右詰で表示させたいのです。下1桁(セルP17のセル)にはゼロが入っています。 5円の金種別合計額 セルH18からセルP18までのセルに5円単位の金額のみ右詰で表示させたいのです。 1円の金種別合計額 セルH19からセルP19までのセルに1円単位の金額のみ右詰で表示させたいのです。 すみません。もちろん、全部の桁について教えていただこうなどとは思っていません。総合計の欄の表示方法が分かれば、後は当てはめて出来ると思います。 念のため、これからやりたいことを列記させていただきました。 どうか、よろしくお願いします。

  • エクセルで別ブックのセルを参照する式の内部

    エクセルで別ブックのセルを参照する式の内部 別ブックのセルを参照する時は ='パス名[ブック名]シート名'!セル名 という式みたいなので、 ='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5 という式を作りました(パスは適当です)。 それで、 ='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5 ='item\zaiko\[zaiko_2010_06_02.xls]在庫シート'!B5 ='item\zaiko\[zaiko_2010_06_03.xls]在庫シート'!B5 ='item\zaiko\[zaiko_2010_06_04.xls]在庫シート'!B5 と日付を連番で複数のセルに入れていきたいので、 日付の 2010_06_01 の部分を他セルから持ってきたいのですが、 この式の中に 文字列参照のMID() とかで挿入できるでしょうか? 日付の入っているセルがちょうど横の方に連番で存在しています。 分かる方いましたら教えてください。 よろしくお願いします。

  • エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ、「右詰」で移したい

    以前に エクセルのセルに入れた文字あるいは数字を別なセルに1文字づつ移したい、ということで質問しまして、「MID関数を利用する」事で、先頭文字から一文字ずつ別々なセルに移すことが出来ましたが、スミマセンが次のような場合はどのような関数になるのでしょうか? 例えば「番地などの表示」等で1桁の場合もあれば、5桁あるいは6桁等々の場合もあるとします。これを別なセルに下一桁を合せる様にしたいのです。 例としまして セルA1に1桁~6桁の数字(例:345678)を入力した場合、これを右側のB1には3を、同様にC1には4を、D1=5、E1=6、F1=7、G1=8を関数で入力できるようにしたい。 問題は、桁数が毎回違う場合にG1に下一桁が来るようにしたいのですがRIGHT関数では下一桁だけ応答されるのは上手くいくのですが、下二桁、三桁以上の場合には上手くいきません。 つまり「A1に789」の数字を入力したら、G1=9が、F1=8が、E1=7が応答されるようにしたいのです。 勿論、5桁の場合にはB1が空欄で、C1、D1、E1、F1、G1が埋まる様に、4桁であればB1とC1が空欄で、D1~G1が埋まるように、三桁の場合にはB1~D1が空欄でE1~G1が埋まるようにですが、出来ますでしょうか?? よろしくご教授お願いします。

  • エクセル A8と同じシート名のG32のセルを参照するには?

    エクセル A8と同じシート名のG32のセルを参照するにはどうすればできますか? 「同じシート名」というのは、関数には入れられないのでしょうか?

  • EXCEL 参照セルを2列ずらしたいです

    関数など調べてみたのですが、うまくできずに投稿しました。 現在WindowsVistaでEXCEL2007を用いています。 シート1枚目には A1・・D1・・G1・・と2列おきにデータが並んでいます。 このデータをシート2枚目の A1 A2 A3 に次々と反映させたいと思っています。 反映させたいデータが途方もない数なので、 関数などで早く処理できる方法がありましたら、 ぜひ教えてください。 よろしくお願いいたします。

  • Excelのセル参照について

    範囲(例:2010/1/1~2010/2/1)を指定して更新すると、日にちと値を外部データから取得し、 ExcelのSheet2のA列に日にち、B列に値を表示しています。 データは月単位で拾ってきて、Sheet2に表示しています。 たとえば、2010/1/1~2010/2/1とすると、1月のデータを取得してきて、 2010/2/1~2010/3/1とすると、2/1~今日までのデータを取得してきます。 そのSheet2に表示しているB列のデータをSheet1のセルD列にセル参照しているのですが、 たとえば、2010/1/1~2010/2/1までのデータは、Sheet1のセルD1に「=Sheet2!B1」と記入して、以下オートフィルでうまくいくのですが、 2010/2/1~2010/3/1までとすると、2/1から今日までのデータはうまく表示され、 今日以降のデータはSheet2が空白なので、Sheet1で「=Sheet2!#REF!」となってしまい、以降、Sheet2にデータが取得されてもうまくセル参照されません。 Sheet1のD列の式を下記にしても、現象はかわりませんでした。 =If(Sheet2!B1="","",Sheet2!B1) =IF(ISBLANK(Sheet2!B1),"",Sheet2!B1) Sheet2で今日以降のデータが空白でも、Sheet1が「#REF」とならないように、 また、今日以降のデータは取得された際、うまく表示されるようにするのは、 どうしたらよいのでしょうか。

  • エクセル シート名を参照する関数は?

    エクセルで、売上を管理しているファイルがあります。 4~3月までの各月ごとのシートに、取引先ごとの売上額・仕入額・原価率・担当者名etcが1行ずつ入力されてあります。 そして、担当者別シートで担当者ごとの取引先データをLOOKUP関数やINDEX関数を使って抽出・合計し、グラフ化して管理しています。 ↓こんな状態です。(合計額の表)    A   B  C  D  E F G 4月 50000 40000 80% ・・・・・ 5月 6月 今の状態では、5月になればA~Gまでの4月の列をコピペして LOOOKUP関数等で参照しているシート名「4月」を「5月」にひとつずつ入力しなおしています。 これが結構面倒なので、 セルに「5月」と入力したら、5月のシートを参照しにいく、 セルに「6月」と入力したら、6月のシートを参照しにいく・・・ というように作り直したいのですが、 このような、シート名を参照する関数はあるのでしょうか?

専門家に質問してみよう