[[20050128110217]] 『売上高の集計についてご質問いたします。』(KENちゃん) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『売上高の集計についてご質問いたします。』(KENちゃん)

営業担当A,B,C,.....が各自にブックをもっていて
それぞれシートが1月から12月まで12あります。

A列は会社コード、B列は会社名、C,D,E,F,...は項目別の売上高がはいるようになっています。
集計表ブックも1月から12月までのシートがあり各売上担当のシートと対応するようになっています。

ここで、集計方法の式ですが、例えば営業担当Aの1月売上E7を集計表1月のF2に取り込むのに
F2に式 =IF(A2='[営業担当A.xls]1月'!A6,'[営業担当A]1月'!E7,"エラー")とはいっています。
この1月の集計表をコピーして2月のシートをつくったとき、
F2の式の"1月"の部分が自動的にすべて"2月"に変わるような式は作れるでしょうか。
ご教示下さい。

1月のシートをコピーしたときできる"1月(2)"を"2月"に変更したとき、
そのシート名を参照して式内に取り込むとか?よろしくおねがいいたします。


 シート名の取得方法は
[[20020823145459]]『シート名を同じシートに表示』(なな) 
を参照してください。応用で何とかなりませんか?
参考になりますでしょうか?
(ケン)

 単に作業としてラクをする方法であれば「置換」が便利ではないでしょうか?
 「1」を「2」に変更してしまうと、売上金額などの全てのデータまで変更されてしまうので
 「1月」を「2月」にする、変更するセル指定してから実行するなどを使えばうまく行くよう
 な気がします。

 ご質問の意味を取り違えていなければいいのですが、
 1.シートをコピーする(必要に応じて名前を変更する)
 2.シートの変更部分を選択する
 3.Ctrl+H(編集から置換でもOKですが)を打鍵
 4.「検索する文字列」に「1月」を、「置換後の文字列」に「2月」を入力後、全て置換
 で良いと思います。

 もし上記の方法はご存知で、あくまでコピー後の自動化ということでしたら無視してください。
 (shouta)

 またもや思いつき。。。
こんなのをシートモジュールに貼り付けておいて
そのセルを参照するのはどうでしょうか???
未検証、、思いつきのみ( ̄□ ̄;)!!
Option Explicit
Private Sub Worksheet_Activate()
Range("a1").Value = Me.Name
End Sub
(SoulMan)

みなさまありがとうございます。でも勉強不足でうまくいきません。
ケンさん---ー過去ログを見てもよくわかりません。質問の仕方が良くなかったかもしれません。いま”1月”というシート名の隣りにシートのコピーで”1月(2)”を作り”2月”にシート名を変更した場合、前の1月のシートのF2に入っていた式 =IF(A2='[営業担当A.xls]1月'!A6,'[営業担当A]1月'!E7,"エラー")の1月(2箇所)がコピーをすると自動的に”2月”になるようにするには1月のF2の式をどのようにすればよろしいでしょうか?
Soul Manさん---VBは未知の世界ですがMe.NameのMeはどういう意味ですか。初心者の質問ですがお願いいたします。
(KENちゃん)

 A1に1月とあるとして
=IF(A2=INDIRECT("[営業担当A.xls]"&$A$1&"!A6"),INDIRECT("[営業担当A.xls]"&$A$1&"!E7"),"エラー")
こんな感じだと思うんだけど、、
それから、Meは英語だから自分です。
シートモジュールに貼り付けるから貼り付けたシートの名前・・・つまり自分の名前です。
今回の場合でしたら、自分のシート名を1月(2)から2月に変えたら
式の1月も2月にしたいってことじゃないの??
ただイベントが
Activate()
だから、一度違うシートを選択しなおさないといけないけどね。
まぁ、そのくらいは負担にならないだろうし。。。
どうでしょう??
(SoulMan)

Soul Manさん 今度はわかりました(分かったつもりかもしれません)来週会社で使わせていただきます。大変勉強になりました。たびたびありがとうございました。
(KENちゃん)
\

たびたびお世話になります。先の式は個々のセルに手入力するとうまくいきますが、縦横にコピーするとセルの番号がそのままで変わりません。A6はA7, A8, A9,.....と、E7はF7, G7, H7, ....と変わってもらいたいのですが?何が問題なのか分かりません。よろしくお願いいたします。(KENちゃん)

 >セルの番号がそのままで変わりません
 (◎-◎;)ドキッ!!そうなのよねぇ。。(;^_^A あせあせ・・・
でも、方法がないわけじゃないんだけど、、ちょっと問題ありなのよね。
[[20050125173809]]『行を挿入しても数式を変化させないには?』(カノン) 
↑の方法でやるとE7の部分は変わるのね。問題はA6の部分なのね。
=IF(A2=INDIRECT("[営業担当A.xls]"&$A$1&"!A6"),INDIRECT("[営業担当A.xls]"&$A$1&"!E7"),"エラー")
式を二つに分けるしかないかな?と思っていました。
INDIRECT("[営業担当A.xls]"&$A$1&"!A6")
この部分をシートのどこかに移しておいて例えばB2とかに
=IF(A2=B2,INDIRECT("[営業担当A.xls]"&$A$1&"!E7"),"エラー")
こんな感じになるんじゃないかな?
当然B2には
INDIRECT("[営業担当A.xls]"&$A$1&"!A6")
を入れておいて上のやりかたでフィルすればいいんじゃないのかな??
いずれにしても手間やね。。(ーー;)
(SoulMan)

SoulManさん
過去ログの「行を挿入して....」で1列の連番はできるようになりました(複数行はできなくて1列しかできないということも判りました)。今回はIF分の条件をはずしてうまくいきました。非常に勉強になりました。大変ありがとうございました。
(KENちゃん)

Soul Manさん

むしかえしで申し訳ありません。シートはうまく動いて大変助かっていますが過去ログにあった「区切り位置」がどういう働きをするのかがいろいろ本で探しましたが分かりません。ご教示いただければ大変ありがたいのですが。よろしくお願いいたします。
過去ログ(ちなみに最初に'をつけて文字列にした後でハンドルをつまんでフィルし
データ→区切り位置→次へ→次へ→完了)。
(KENちゃん)


 わちゃぁ、、困りましたねぇ。。。
どういう働き??うぅ〜〜ん。。。
'をつけて文字にすんですね。ちなみに"でもいいみたいですよ。
セルの値を参照したいので、文字になってしまう。
つまり、INDIRECTを使う必要がある。
で、そのままフィルしても式の中の「文字」は変化しない。。。
式ごと文字にすればエクセル君が勘違いして変化させちゃう。。。
お好みの文字になったところで、文字にしている、’を取っちゃう。。。
'を取られたら、、数式に戻っちゃう。。。まぁ、、一種の・・ですわなぁ。。
しかし、これを考えた人は「えらい!!!」
と、こんなもんでどうでしょう??
説明は苦手だっぴ(^^;; ヒヤアセ
(SoulMan)

変な質問にお応えいただきありがとうございます。私のレベルの問題でいまだ良く分かりません。区切り位置という機能は何のためにあるのかが判りたいのですが。特に「区切り」とは何を区切。よろしければ再度ご教示お願いいたします。シツコクてすみません。(KENちゃん)

 お勉強熱心ですねぇ。。。
 >区切り位置という機能は何のためにあるのか
 これは、難しいですねぇ。。。
 私の個人的な見解でよろしければ、、ですが、
 区切り位置はデータの中にありますよね?
 データには、「並び替え」や「フィルタ」などがありますよね。
 どれも、データを加工するための機能ばかりですよね。
「区切り位置」もデータを加工するための機能の一つなんですね。
 並び替えやフィルタと同じですね。では、いつ使うのか?ですよね?
 >「区切り」とは何を区切。
 タブ、セミコロン、スペース、色々な形で区切られたデータってありますよね。
 私がよく使うのがこの掲示板のデータなどを自分のエクセルにコピーした時などに
 テキストで貼り付けると一連の区切りのないデータになってしまいます。
 でも見た目にには「スペース」で区切られています。
 そんな時、セルに一つ一つ区切りたい時などに使います。
 データを加工するもの、、加工するデータに出会えば自ずと使う様になる。。。
 「習うより慣れろ」ですかね(;^_^A あせあせ・・・
 どうですか???少しはお役に立ちましたか?
(SoulMan)

SoulManさん
参考になります。度々大変ありがとうございました。
(KENちゃん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.