- ベストアンサー
Excel で、こんなこと出来ますか?
いつもいつも大変お世話様になっております。 とある伝票を作成しています。 フォームが決まっていて、いつもその前に使ったシートをコピーして使っています。(【1伝票=1シート】) そして、その伝票に入力した同じ内容を、集計表にも入力しています。 (その集計表と伝票は同じファイル内にあります。) 二度手間だなぁ…といつも思うのですが、そう入力する内容も多くないので今まで苦とは思わずやってきましたが、ふと… 集計表にうった内容が伝票の方にも連動表示しないかなぁ~ (または、伝票の方にうった内容が集計表に連動表示されないかなぁ~) …と思いました。そこで、試してみました。 集計表(Sheet1)のセルB1にうったものが、伝票(Sheet2)の該当セルにも表示させるよう Sheet2にの該当セルに…『Sheet1!B1』…と設定。 以下、セルC1、D1,E1…と同様の設定をしていきました。 しかし、新しい伝票が発生するたびに、新しいシートが必要となります。 Sheet2をコピーしてSheet3を作成しましたが、当然、Sheet2のセルに設定してある内容と同じなので、 集計表の セルB2、C2、D2…のデータを返してほしくても、Sheet2のデータである セルB1、C1、D1…のデータをかえしてしまいます。 仕方がないので、Sheet3に入っている…『Sheet1!B1』…の『B1』の部分を『B2』に手で修正しました。 シートが増えるたびにこの作業(手でセル内にある式を修正)をしているのでは、今のままの方が断然 楽なので、連動させるのは、やめようかと思っています。 もし、良いアイディアをお持ちの方がいらっしゃいましたら、アドバイスいただければ幸いです。 (なにぶん知恵がないもので…すみません…) なければないでキッパリ諦めます。 よろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
http://oshiete1.goo.ne.jp/kotaeru.php3?q=483970 を思い出してください。 関数で自分自身のシート名を取得しましたね。それを応用しましょう。 伝票のシート名を001、002、003のように固定した桁数の連番にします。そうすると 自分自身のシート名は =right(cell("filename", $A$1),3) のようになるわけです。 そして、value()関数で頭の余計な0を取って取ってやればシート名から集計表の行番号 に変換できたことになります。 =value(right(cell("filename", $A$1),3)) ですね。 これを伝票のどこかで計算させておきます。A1でもいいですね。 そうすると後は簡単。集計表のB列の値を欲しい場合は =indirect("Sheet1!B"&A1) これだけです。 伝票の連番と集計表の行番号がズレてる方が都合がよければ、A1に入れる関数の最後で 足し算でも引き算でもして調節してください。
その他の回答 (6)
- taknt
- ベストアンサー率19% (1556/7783)
複数のシートの選択の仕方は、シートを変更するタブをひとつ クリックして 二つ目以降、シフトキーを押しながら クリックします。
お礼
複数のシートの入力箇所が同じ場合でのシート選択の仕方を御教授いただきましてありがとうございます。 今回は、入力する箇所がシートで違うので活用できませんでしたが、 この操作方法は、別で試してみたところ、うまくすることが出来ました。 またなにかありましたら、よろしくお願い致します。
- Spur
- ベストアンサー率25% (453/1783)
新しいシートを作るなら、それは白紙ですから、仕方がないと思います。 少しだけ楽になる方法を考えてみました。 (1)Sheet1のA列、B列・・・に列の名前をつけます。 例えば、A列は「伝票1」、B列は「伝票2」・・・ 名前の付け方は分かりますね?その列を選択しておいて、「挿入」→「名前」→「定義」です。 (2)Sheet2の一番上のセルに、「=伝票1」と入力します。 そして、そのセルの右下角をマウスポインタで掴んで、ズズ~っと下に、コピーしたいだけ伸ばします。 (3)同じように、Sheet3への入力は「=伝票2」として、ズズ~っと引っ張ってコピーします。 (4)Sheet3が増えた時は、Sheet1のC列に「伝票3」と名前をつけることと、Sheet2をコピーして作ったSheet3で、(2)と同じ事を、「=伝票3」と名前を変えて行うだけです。 これでどうでしょう?
お礼
御回答いただきまして、ありがとうございました。 伝票シートの該当セルが、シートのあっちこっちに点在していたため、なかなか、ズズ~っといかない状況でありましたが、 この度、教えていただきました方法は、なにかに使えそうなので、その時に活用させていただきます。 (列への名前のつけ方を教えていただきまして、ありがとうございます。 つけ方、わかりませんでした……/汗) またなにか疑問が生じました折は、よろしくお願い致します。
- driverII
- ベストアンサー率27% (248/913)
解決方法がいくつか・・・ (1)予めシートを沢山(10~20シート)作っておき、#1の方の解答のようにまとめて直す。 (2)シート作成マクロを作成しておき、ワンボタンでシートを作成できるようにしておく。
お礼
(1)のやり方、私めも考えておりましたが… 「もぉ~、先にシート作っておこうかぁ~?! あーでも、面倒くさ…」 …で、やめておりました。(爆) (2)の方のやり方 いつか試してみたいと思います。 参考アドレスの方、この先、おおいに役立たさせていただきますっ♪ さっそくの御回答ありがとうございました。 またなにかありましたら、よろしくお願い致します。
- s-mariko
- ベストアンサー率64% (33/51)
それは折角Excelを使われているのだから、簡略化しないと 勿体無いですね。 集計表の中に、各伝票を一意に特定できる情報(番号、日付など)は ありませんか?まっとうに作るのであれば、各伝票から集計表を 参照して、その一意な情報をLOOKUP関数などで検索して値を取得する と良いと思います。 簡単に済ますのであれば、伝票の特定のセル(ここではA1とします) に連番で数値を入れて、以下のようにすれば、シートをコピーして A1の値だけ変更すれば例で挙げられているような修正は不要になる かと思います。お試しください。 <Sheet3に対して> セルA1に 数値"1" を入力します 集計表のB2を表示したいセルに関数"=OFFSET(Sheet1!B1,$a$1,)"を入力します
お礼
そうなんですよねっ! 折角Excelを使っているのですから簡略化できるのであれば、とことん簡略化したいものですよね。 ただ、それをカタチにすることが出来ない自分……。(爆) この度は、No.7の方のアドバイスを活用させていただきました。 また時間が出来たら、こちらの御回答のやり方も試してみたいと思います。 御回答いただきまして、ありがとうございました。 またなにかありましたら、よろしくお願い致します。
補足
簡単に済ませたいので(笑)、第2案の方を試させていただきました。 集計表(Sheet1)のデータで、伝票シート(Sheet4)に表示したいセルに 関数『=OFFSET(Sheet1!B1,$a$1,)』を入力してみました。 (例)Sheet1のセルB4のデータを、Sheet4のセルJ2に表示させたい。 →J2のセルに『=OFFSET(Sheet1!B4,$a$1,)』 ここまでの作業(セルA1になにも入力しない状態)なら、O.K.(B4のデータを表示)だったのですが Sheet4のセルA1に 数値1を入力したところ、Sheet1のB4ではなくB5のデータを返してしまいました。 また、Sheet4は、伝票の連番では『伝票3』にあたるので、セルA1に『3』と入力してみたのですが、うまくいきませんでした。 う~ん、なんでだろう~? 原因を探ってみようかと思います。 御回答ありがとうございました。
- Snuki
- ベストアンサー率33% (1/3)
Question? 串刺し演算をしたいのですか?
お礼
く…『串刺し演算』っ!? そういう計算方法もあるのですね…。 それがどういうものなのか「?」状態なので(恥っ…)、またそれについても勉強してみたいと思います。 この度は、No.7の方のアドバイスで、無事に解決することが出来ました。 この質問に対して、考えを巡らせていただきまして、ありがとうございました。 またなにかありましたら、よろしくお願い致します。
- taknt
- ベストアンサー率19% (1556/7783)
シート1とシート2の入力個所が同じならば、シートを両方選択してから 入力すると 同じ個所に同じ値が入力できます。
お礼
シート1とシート2の入力箇所が同じではないので 両方選択してから入力するという手段は使えなかったのですが この方法はどこかで活用できそうなので、いつか利用してみたいと思います。 御回答いただきまして、ありがとうございました。 またなにかありましたら宜しくお願い致します。
補足
さっそくの御回答ありがとうございます。 「シートを両方選択してから入力」を試してみようと思うのですが すみません…両方選択するのは、どうやったら良いのでしょうか?(恥っ) よろしくお願い致します。
お礼
前回に引き続き、今回もアドバイスをいただきまして、ありがとうございます。 応用がサッと出来る方を、とても尊敬してしまいます。 自分、計算式を理解するのにも一苦労です。(爆) 精進! 精進!!…ですね。がんばります。 アドバイスいただきましたやり方で、無事に「出来たらなぁ…」と思っていたことが出来ました。 さらに、先を見越してのアドバイスまでいただきまして、ありがとうございます。 入力していて「あれ?なんでズレてんだっ??」という事態にあたりましたが(笑)、無事に解決することができました。 またなにかありましたら、よろしくお願い致します。