[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別シートから条件を付けたセルデータを持ってくる』(tyun)
B1に 3と入力されている場合に D3を指定するという意味なら、 =INDIRECT(A1&"!D"&B1) です。 (純丸)(o^-')b はずしてそう、、
A B C D E 20 1 い 東 21 1 い 東 22 1 ろ 西 23 1 ろ 西 24 25
>A,Bの条件でDを持ってきたいのです。 どういった条件かがいまいちわかりません。。。
具体例を上げていただくとレスがつくかもしれませんよ〜♪
Sheet1 の A1 に「○○」 B1 に「□□」 Sheet2 の別表が下記 A B C D E 20 1 い 東 21 1 い 東 22 1 ろ 西 23 1 ろ 西 24 25
何処のセルに「△△」を出したい。など
(キリキ)(〃⌒o⌒)b
A B C D E 1 1 2 3 い 3 5 ろ 4 7 は 5 2 に
6
衝突しました。上の表なら簡単ですが、Sheet2の別表はセルが 結合されているのですよね。そうなると話は簡単じゃないですよ。 私がイメージしたのは、A20:A23、B20:B21、B22:B23、D20:D21、D22:D23は 結合されていて(統合は間違いですよね)、同じようなデータが下方に 並んでいる。その中で、A列が「1」でB列が「ろ」だったら「西」を 返す数式がほしいということです。これは難しいです。 なぜなら、A20:A23が結合されていると、数式で条件を拾おうとした時に、 A21〜A23は 1とはならないからです。結合セルのない、すぐ上の表とは 条件が違うのです。別の方法を考えてみますが、今はちょっと時間が ないので後になります。 はずしてたらすみません。 (純丸)(o^-')b ※キリキさん、イメージ出来た?
衝突!
純丸さん、お帰り〜♪ イメージは、できてきました! ただ、まだ条件が見えてきません・・・ なぜ、 >このSheet1のD5に「1」と「い」 なのでしょう? Sheet1 の A1 と B2 の事に思えますが。。。なぜ?
>A列20〜23行までセルが統合されています。 純丸さんと被っちゃいますが、統合ですか?結合ですか? 結合だとすると、Sheet2 の該当場所を探すのが難しそうです。。。 結合に規則性があれば何とか出来るかもしれませんが、、、 マクロでなら対応できそうですが、今日・明日はチョット時間が無くて 書込みできそうにありません。。。
他の方の回答を一緒に待ってみましょう〜♪
(キリキ)(〃⌒o⌒)b
Sheet2
A B C D E
1 1 東 い
2 1 西 ろ
3 2 東 は
4 2 西 に
5 3 東 ほ
6 3 西 へ
Sheet1
A B C D E
1 年 月 日
2 東 い
3
4
5
方法の1つとしてこんなんどうでっか? 1)Alt+F11でVBEを開く 2)「挿入」→「標準モジュール」を選択 3)下のコードをコピペ 4)エクセルに戻る
使い方は関数と全く同じです、はい。
上の例で申しますと、Sheet1のD1に=tyun(a2,c1)と書き込みます。またコピーして
使うばやいはc$1としとけばよろしいかと・・・。
(弥太郎)
'------------------------------
Function tyun(data As Range, data1 As Range)
Dim flag As Boolean
Dim i As Long, maxrow As Long, n As Long
With Sheets("Sheet2")
maxrow = .Range("a" & Excel.Rows.Count).End(xlUp).Row
For i = 1 To maxrow
If .Cells(i, 1) = data1 Then
For n = i To maxrow
If .Cells(i, 2) = data Then
tyun = .Cells(i, 3)
flag = True
Exit For
End If
Next n
End If
If flag Then Exit For
Next i
End With
End Function
Sheet2
A B C D E
10 1 い
11 2 ろ
12 3 は
13 4 に
14 5 ほ
15 6 へ
Sheet1
A B C D E
1 年 月 日
2 い
3
4
5
西を選択したら0? 有りえん事ですが・・・ 結合とかなんとか書いてらっしゃるとこみたら、Sheet2のデータ範囲に結合セルが あるっちゅうことでっか? それやと正確にデータを拾う事はでけまへんワ。 従って私のんは没でんなぁ。 (弥太郎)
Sheet1 Sheet2
A B C D E A B C D E
1 年 月 日 10 1 い
2 い 11 2 ろ
3 12 3 は
4 13 4 に
5 14 5 ほ
15 6 へ
この表だけなら、VLOOKUPでできそうです。
D2に =VLOOKUP(C1,Sheet2!A10:C15,3,FALSE)
で、前の表も結合解いていいんであれば、こんなのも。
Sheet2
A B C D E
1 1 東 い ※A1,A2、A3,A4…の結合を解いて、各セルに入力されているとして
2 1 西 ろ
3 2 東 は
4 2 西 に
5 3 東 ほ
6 3 西 へ
Sheet1
A B C D E
1 年 月 日
2 東 い
3
D2に、=INDEX(Sheet2!C1:C6,SUMPRODUCT((Sheet2!A1:A6=C1)*(Sheet2!B1:B6=A2)*(ROW(A1:A6)))) (かなれっと)
追伸
・A10〜A12は結合している。
・Sheet2と同じSheetが他に6つある。
よろしくお願いします。
(tyun)
Sheet1
A B C D E
1 年 月 1
2 い
3 ろ
4 は
5
Sheet2
A B C D E
10 1 い
11 1 ろ
12 1 は
13 2 に
14 2 ほ
15 2 へ
日付の結合は解かないってことですね。
>Sheet2と同じSheetが他に6つある。 というのはどういうことでしょう?
今言われているのは、Sheet1のC1に日付を入れたら〜、ということでしたが。
実はSheet1のB1に月、C1に日を入れたら、Sheet2からだけではなく、Sheet3〜7からも対応する月日の
データを引っ張ってくる、ということなんでしょうか?('-';
とりあえず、すぐ上の(tyun)さんの例から。
Sheet1のD2に =INDEX(Sheet2!$C$10:$C$15,MATCH($C$1,Sheet2!$A$10:$A$15)+ROW(A1)-1)
D3、D4にコピー。でいかがでしょう。(かなれっと)
ちょっとtyunさん、>条件付ですが・・!?!! この2番目の?はまさか私の事やおまへんわなぁ。(笑 (弥太郎)
A B C 1 2 ● 3 ○ 4 ▲ 5
>C1=C2〜C4に1つでも入力されていたら空白にして、 >C2〜C4が何も入力されていなかったら、指定した文字を入れる方法があったら教えてください。 何処に指定した文字が入るのでしょう? 別セルであれば、関数で出来そうですね〜
=IF(COUNTIF(C2:C4,B1),"",B1)
同じセル内(C1)であれば、マクロになります。
シートモジュールへ
'-------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim data As Variant
If Target.Count <> 1 Then: Exit Sub
If Target.Address <> "$C$1" Then: Exit Sub
Set data = Range("C2:C4").Find(what:=Target)
Application.EnableEvents = False
If Not data Is Nothing Then
Target = ""
End If
Application.EnableEvents = True
End Sub
#読み直したら、何か違ってるかも・・・ (キリキ)(〃⌒o⌒)b
表のC2〜C4には他のSheetから文字を引っ張ってくるようになっています。何も引っ張ってきていない(空白)の場合、C1に「順調」と表示されるようにしたいのです。マクロを使うことになるのでしょうか。
(tyun)
こう言う事でしょうか?
C1 =IF(COUNTA(C2:C4)=0,"順調","不調")
(キリキ)(〃⌒o⌒)b
>C2〜C4には他のSheetから文字を引っ張ってくる ということは、C2からC4には何か数式が入っているのでしょうか? それだとこんなのはどうでしょう? C1に =IF(OR(C2<>"",C3<>"",C4<>""),"","順調") (かなれっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.