[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『何度もごめんなさい』(魔人ぶー)
シートあ 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.