[[20060407103131]] 『何度もごめんなさい』(魔人ぶー) ページの最後に飛ぶ

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

 

『何度もごめんなさい』(魔人ぶー)
度々ごめんなさい。前に似た感じで質問したんですけど、その時はBook間のやり取りだったのをシート間に変更したのですが、またまた????になりました。(>_<)ご協力お願いします。
  
シートあ
  A  B   C  D   E   F  G H I
1        55         ○    △
2
3
4
シートい・う
  A  B   C   D  E   F  G
1        55
2
3              △
4        ○

シートあC列とシートい・うのC列が同じ時は、シートいE4→シートあI1 シートいE5→シートあF1に飛ばしたいの
ですが・・・。シートあは、1段でデータが入力されていますが、シートい・うは、4段で1つのデータが
入ってます。やはりシートの形式が同じでないと転記していくのは無理がありますか?


 よく意味が解りませんが、こう言うことでしょうか?
 ※上記説明の
  >シートいE4→シートあI1 シートいE5→シートあF1
  は、表が合っているものとしています。

 各シート「い・う」
 E1 =IF(OR(MOD(ROW(),4)=3,MOD(ROW(),4)=0),
    IF(INDIRECT("あ!C"&INT((ROW()-1)/4)+1)=LOOKUP(99^9,$C$1:C1),
    INDIRECT("あ!"&IF(MOD(ROW(),4)=3,"I","F")&INT((ROW()-1)/4)+1),""),"")
  以下コピー

 ちょっと長くなってしまった。。。
 外してるかな?
 (キリキ)(〃⌒o⌒)b


キリキさん、ありがとうございます。
 説明不足でごめんなさい。シートあC列とシートいC列の数字が一致したら、シートいE3はあI1へ シートいE4はあF1へ
 シートあC列と照合するのは、シートいC列とシートうC列です。△と○はE列に入っているものです。
 行は6行間隔です。こんな説明で解りますか?????(魔人ぶー)

 ???
 逆だったのかな?
 こう言う事?

 シート「あ」
 F1 =IF(C1="","",IF(C1=INDIRECT("い!C"&((ROW()-1)*6)+1),OFFSET(INDIRECT("い!C"&((ROW()-1)*6)+1),3,2),""))
 I1 =IF(C1="","",IF(C1=INDIRECT("い!C"&((ROW()-1)*6)+1),OFFSET(INDIRECT("い!C"&((ROW()-1)*6)+1),2,2),""))
 以下コピー

 (キリキ)(〃⌒o⌒)b

キリキさん度々ありがとうございます。
 えーぃこの際甘えてしまえー!!的考え(^^ゞで質問します
 INDIRECT("い!C"&((ROW()-1)*6)+1)
          ~~~~~   ~~~~~~~~~~~~~~~
           @      A
 @ シートいC列 ですよね。
 A が解らないんですぅ。ROW()は行番号?のあとは何?
 もしかしてすごい初歩的なことを聞いてるかもしれませんが・・・・・(魔人ぶー)

 >もしかしてすごい初歩的なことを聞いてるかもしれませんが・・・
 いえいえ^^
 解らないことは質問!
 ここは、学校です。そういう場所ですからジャンジャン聞いちゃいましょう〜♪
 聞いて、自分でやってみて、吸収して、そしてわからない人がいたら、教えてあげちゃいましょ〜♪

 では、上記Aを何処でもいいから数式として入力してみましょう〜
 ここでは「A1」に入力してみます。
 =((ROW()-1)*6)+1
 下にコピーをしていくと、、、
  A
1  1
2  7
3 13
4 19
5 25

 こんな感じになりますね?
 シート「い」の「C列」の参照場所は?
 C1・C7・C13・C19・・・
 こうなってますね?
 INDIRECT関数は、文字列をセルとして参照してくれます。
 よって、い!C1・い!C7・い!C13・・・
 と、下にコピーをすることで参照していってくれます。

 こんな説明で、わかるかしら・・・
 (キリキ)(〃⌒o⌒)b

キリキさん有難うございます。少しずつ解ってきました。(少しずつかよ!!(@_@;)
 =((ROW()-1)*6)+1
    ~~~~  ~~~
 -1,+1 って? ご迷惑をおかけ致しております。(>_<) (魔人ぶー)

 =((ROW()-1)*6)+1
   ~~~~~1 ~2~3 ~4
 1.ROW関数です。
  行番号を返します。()内を省略すると、数式の入力してある行番号が返ります。
  A1 に入力すれば「1」が返ります。
 2.その数字を「-1」します。
 3.それに「6」を掛けます。
 4.そこに「1」を足します。
 A1 で考えてみると
 = ((1-1)*6)+1 =1
 (1番上は「1」を返すためにROW()=1 を「-1」し、「0」を6倍 =「0」+1)
 A2 だと
 = ((2-1)*6)+1 =7
 (2番上は「7」を返すためにROW()=2 を「-1」し、「1」を6倍 =「0」+1)

 増える数字は、6行ごとですよね?
 1番上は「1」
 2番目は「7」
 それをするために、
 ROW() から「-1」をし、6倍しているわけです。

 こんな感じで伝わるでしょうか?
 (キリキ)(〃⌒o⌒)b

 ありゃ衝突☆ でもそのままU〜P! 

 ROW() は、その行番号を返すので、入れてみればわかります。
    A
 1  1  =((1-1)*6)+1
 2  7  =((2-1)*6)+1
 3 13  =((3-1)*6)+1

 って! =ROW()*6-5 これでよさそう。
(純丸)(o^-')b 

 算数の公差の話になってきたようですね (^_^A;
(ROUGE)


 >って! =ROW()*6-5 これでよさそう。
 そうっすね・・・

 でも、σ(^o^;)はいつも
 =((ROW()-1)*6)+1
 で考えてます。
 後から見たときに、解んなくなっちゃうんです。。。

 (キリキ)(;⌒o⌒)b

(キリキ)さん(純丸)さんありがとうございま〜す。
 金曜日にUPしたつもりが無く遅くなりました。
 少しづつですが頼まれた表が出来できました(フゥ〜)
 甘え次いでに悪いのですがまたまた質問します。
 「Book.1シートあ」と「Book.2シートあ」を
 新規Bookシート1に統合したいのですが・・・?
 Book1もBook2も件数は増えていきます。新規Bookを開いたら自動で出てくるように
 したいのですが・・(説明下手ですね(~_~;) なんとなく解って頂けますか?(魔人ぶー)


 >「Book.1シートあ」と「Book.2シートあ」を新規Bookシート1に統合したいのですが・・・?
 う〜ん。。。
 数式を組むにしても、VBAを組むにしても、その後のメンテナンスなどはどうします?
 
 単純にまとめるだけだったら、お好きな「Bookのシートあ」をコピーして
 残りの「Bookのシートあ」の下に貼り付け。
 その「Book」で
 ファイル → 名前を付けて保存
 をしたほうが早いし、メンテナンスもやり易いのではないでしょうか?
 数式は、コピペすればいいだけですし。。。

 何か違う目的かしら?
 (キリキ)(〃⌒o⌒)b


キリキさん、度々ありがとうございます(*^_^*)
 やっぱり無理ですよね〜。メンテのことなんて考えてなかったなぁ(魔人ぶー)


 無理って事は無いと思いますよ。
本当にまとめたいなら、数式にしても、VBAにしても情報が少ないかも…
本当にシート名は「あ」なの?
シート構成は上記通り?
この先、シート構成の変更はないの?
等、?がまだあります。
そのへんがしっかりすれば出来なくは無いと思います。
(キリキ)(〃⌒o⌒)b

出来るんですか?(☆☆)
 ご挨拶が遅れてしまいました。おはようございます。(ちょっとあせってしまった。)
 電.xlsに設台帳(シート)と保.xls設台帳(シート)を出来高.xlsの設台帳(シート)にまとめたい
 んです。設台帳から同じブック内で2枚のシートに分かれています。
 シートの構成は変更はありません。A〜CPまでダラダラと入ってます。
 ただ、件数が増えていきます。  こんな感じで解りますか?(魔人ぶー)

 >設台帳から同じブック内で2枚のシートに分かれています。
 この意味が良くわかりませんが。。。

 こういったことで大丈夫でしょうか?
 1)出来高.xls で、Alt + F11 を押し、Microsoht Visual Basic を出す。
 2)挿入 → 標準モジュール
 3)出てきた画面に、下記コードをコピペ

 標準モジュールへ
'--------------
Sub ぶー()
Dim MyDen As Variant, MyHo As Variant
With Workbooks("電.xls").Worksheets("設台帳")
    MyDen = .Range("A1").CurrentRegion
End With
With Workbooks("保.xls").Worksheets("設台帳")
    MyHo = .Range("A1").CurrentRegion
End With
With Workbooks("出来高.xls").Worksheets("設台帳")
    .Cells.ClearContents
    .Range("A1").Resize(UBound(MyDen, 1), UBound(MyDen, 2)) = MyDen
    .Range("A" & UBound(MyDen, 1) + 1).Resize(UBound(MyHo, 1), UBound(MyHo, 2)) = MyHo
End With
Erase MyDen, MyHo
End Sub

 使用方法
 1)Alt + F8 で【マクロ】を出し、「ぶー」を選んで実行。
 ※電.xls・保.xls・出来高.xls を立ち上げている状態で実行してください。
 ※元に戻せませんので、出来れば新規ファイルで試してからお使いください。

 (キリキ)(〃⌒o⌒)b


(キリキ)さん ありがとうございます。
 ヘンになってしまいました。E列までしか文字がきてません。(>_<)
 うーん??? せっかくマクロまで組んで頂いたのに・・・
 お手数をおかけしました。 (魔人ぶー)

 そうすると、空白列もあるって事ですね?
今、ご飯食べてるので、もう少し待ってください〜♪
(キリキ)(〃⌒o⌒)b

 あ〜 お腹いっぱい〜♪
 お待たせしました〜

 こちらでは如何でしょう?
Sub ぶー()
Dim MyDen As Variant, MyHo As Variant
Dim MyR As Long
With Workbooks("電.xls").Worksheets("設台帳")
    MyR = .Range("A" & Rows.Count).End(xlUp).Row
    MyDen = .Range("A1").Resize(MyR, 94)
End With
With Workbooks("保.xls").Worksheets("設台帳")
    MyR = .Range("A" & Rows.Count).End(xlUp).Row
    MyHo = .Range("A1").Resize(MyR, 94)
End With
With Workbooks("出来高.xls").Worksheets("設台帳")
    .Cells.ClearContents
    .Range("A1").Resize(UBound(MyDen, 1), UBound(MyDen, 2)) = MyDen
    .Range("A" & UBound(MyDen, 1) + 1).Resize(UBound(MyHo, 1), UBound(MyHo, 2)) = MyHo
End With
Erase MyDen, MyHo
End Sub

 (キリキ)(〃⌒o⌒)b

(キリキ)さん お食事中どーもごめんなさい。
 感動!!です。超〜感動です。出来ましたよ〜(*^_^*)
 ちゃんとお偉いさんには、変更は出来ません!って言い切っておきました。
 本当にながながとありがとうございました。(魔人ぶー)

 あ〜 良かった〜♪

 >ちゃんとお偉いさんには、変更は出来ません!って言い切っておきました。
 そんなこと言わずに、ココでジャンジャン勉強しちゃって
 変更できるようになっちゃいましょ〜♪

 兎にも角にも、良かったですね^^
 (キリキ)(〃⌒o⌒)b

コメント返信:

[ 一覧(最新更新順) ]


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