[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『二つの連動する表のコピーの方法』(manami)
A商品
A B C D E a 3 0 0 0 0 b 0 0 2 0 0 c 0 1 0 0 0 d 2 0 0 0 0 e 0 0 0 0 2
上記の様な表1があり,
A商品の a-A 3
a-B 0
a-C 0
. . b-A 0 b-B 0 b-C 2 . .
別に、このような表2があります。
表2の3の部分のセルは、表1のa-Aに対応するように=でセル指定しています。
表1の数字を入れ替えた時に表2の数字も変わるように作りたいのですが、表2の数字部分のセルに=で表1の該当部分のセル指定していくと膨大な回数しなくてないけません。
表1のa行を、表2の数字列に対応する所までは手で入力しましたが、表2のb、c、d、e、と続きを表1のb,c,d,eに対応するようにコピーする方法はないでしょうか?
わかりづらい説明で申し訳ありませんが、宜しくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
交通整理だけ。
レイアウトは以下でよろしいですか? それとも、A商品 といったセルがどこかにあるのですか?
表1
|[A]|[B]|[C]|[D]|[E]|[F] [1]| |A |B |C |D |E [2]|a | 3| 0| 0| 0| 0 [3]|b | 0| 0| 2| 0| 0 [4]|c | 0| 1| 0| 0| 0 [5]|d | 2| 0| 0| 0| 0 [6]|e | 0| 0| 0| 0| 2
表2 (以下のいずれか だとすると、後者がいいと思いますが)
|[A]|[B] [1]|a-A| 3 [2]|a-B| 0 [3]|a-C| 0 [4]|a-D| 0 [5]|a-E| 0 [6]|b-A| 0 [7]|b-B| 0 [8]|b-C| 2
|[A]|[B]|[C] [1]|a |A | 3 [2]|a |B | 0 [3]|a |C | 0 [4]|a |D | 0 [5]|a |E | 0 [6]|b |A | 0 [7]|b |B | 0 [8]|b |C | 2
あと、 a は この行、C はこの列という決めつけありですか? それとも、表1 を検索して、行がどこか列がどこかを取得する必要有り?
(β) 2016/03/23(水) 07:14
H1=IFERROR(INDEX(($A$2:$A$6&"-"&$B$1:$F$1),MOD(ROW(A1)-1,COUNTA($A:$A))+1,INT((ROW(A1)-1)/COUNTA($A:$A))+1),"")
I列は2つの内どっちでも良いです。
I1=IFERROR(INDEX($B$2:$F$6,MOD(ROW(C1)-1,COUNTA($A:$A))+1,INT((ROW(C1)-1)/COUNTA($A:$A))+1),"")
I1=IFERROR(INDEX($A$1:$F$6,MATCH(LEFT(H1,1),$A:$A,0),MATCH(RIGHT(H1,1),$1:$1,0)),"")
H1とI1を選択して、下にフィルコピー
(sy) 2016/03/23(水) 07:31
H1=IFERROR(INDEX(($A$2:$A$6&"-"&$B$1:$F$1),INT((ROW(A1)-1)/COUNTA($A:$A))+1,MOD((ROW(A1)-1),COUNTA($A:$A))+1),"")
I1=IFERROR(INDEX($B$2:$F$6,INT((ROW(C1)-1)/COUNTA($A:$A))+1,MOD((ROW(C1)-1),COUNTA($A:$A))+1),"")
もしくは
I1=IFERROR(INDEX($A$1:$F$6,MATCH(LEFT(H1,1),$A:$A,0),MATCH(RIGHT(H1,1),$1:$1,0)),"")
でした。
(sy) 2016/03/23(水) 07:37
Dim rg1 As Range, rg2 As Range, c As Range Set rg1 = Sheets("Sheet1").Range("A1") '表1 Set rg2 = Sheets("Sheet2").Range("A1") '表2 For Each c In rg1.CurrentRegion.Cells If c.Row <> 1 And c.Column <> 1 Then rg2.Value = c.Offset(, 1 - c.Column) & "-" & c.Offset(1 - c.Row) rg2.Offset(, 1).Value = c.Value Set rg2 = rg2.Offset(1) End If Next c End Sub (mm) 2016/03/23(水) 11:33
|[O|[P]|[Q]|[R]|[S]|[T] [4]| |A |B |C |D |E [5]|a | 3| 0| 0| 0| 0 [6]|b | 0| 0| 2| 0| 0 [7]|c | 0| 1| 0| 0| 0 [8]|d | 2| 0| 0| 0| 0 [9]|e | 0| 0| 0| 0| 2
表2
|[B]|[C]|[J] [48]|a |A | 3 [49||a |B | 0 [50]|a |C | 0 [51]|a |D | 0 [52]|a |E | 0 [53]|b |A | 0 [54]|b |B | 0 [55]|b |C | 2
のようになっており、表1のP5xE9に数字を入力すると、表2のJ列の対応する部分に同じ数字が反映するように作成希望です。
現在抱えている問題は、J48=P5, J49=Q5,J50=R5という風に手打ちしたのですが、残りをフィルコピーできない事です。
表2 B列がa,b,cと変わる毎に、表1ではP5,P6,P7と行が増えていくだけなのですが、単純なフィルコピーでは期待通りのコピーができません。良い方法があれば教えて頂けますか?
(manami) 2016/03/23(水) 12:24
VLOOKUPとCODEの方がINDEXとMATCHより簡単かも?
J48=VLOOKUP(J48,$O$5:$T$9,CODE(K48)-63,0)
下にフィルコピー
で求められます。
CODE関数は文字コードを返す関数です。
Aなら65を返すので-63すれば2になるので、
VLOOKUP(J48,$O$5:$T$9,2,0)
と同じ意味になります。
Bならば66を返すので-63すれば3になり、
VLOOKUP(J49,$O$5:$T$9,3,0)
と同じ意味になります。
VLOOKUPは分かりますか?
(sy) 2016/03/23(水) 22:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.