[[20190105125541]] 『別のシートに反映させたいです。』(ガラクタ) ページの最後に飛ぶ

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

 

『別のシートに反映させたいです。』(ガラクタ)

エクセルに関しての質問です。
sheet1のHOT状況に成約と打ち込むと
自動的にsheet2のお客様名、担当者、住所、電話、電話2が反映するようにしたいです。(上に詰めて)
助けていただきたいです。お願い致します。

sheet1

 エー ビー シー デー イー エフ  ジー  エイチ アイ ジェー ケイ
1     |名前 担当 住所 電話  電話2 日にち GO  日にち HOT状況
 ----------------------------------------------------------------------------------------------
2     |
3     |
4     |
5     |
6     |
7     |

sheet2

 エー ビー シー デー イー エフ  ジー  エイチ アイ ジェー ケイ
1     |名前 担当 住所 電話  電話2
 ----------------------------------------------------------------------------------------------
2     |
3     |
4     |
5     |
6     |
7     |

< 使用 Excel:unknown、使用 OS:unknown >


 解答ではないですが。
 表が分からないです。頭に半角スペースを入れると改行せずに表示されて、見やすくなります。
 Sheet1、Sheet2ともに行数が7ありますが、どのように反映させたいのでしょうか?
 ”成約”と入力したらSheet2の内容を丸ごと反映させたいのか、入力したSheet1と同じ行数(日付)の内容を反映したいのか、などなど。(見当違いならすみません)
 具体的にデータを載せれば回答がつくと思います。
 あとエクセルバージョンと使用OSも分かるなら載せたほうが良いです。
(ぬっ子) 2019/01/05(土) 13:56

 返信ありがとうございます!!
sheet1のHOT状況に成約と入れると
sheet2に名前、担当、住所、電話、電話2のみ反映するようにしたいです。
sheet1には来店されたお客様全員入力して
sheet2には成約されたお客様をかんりしたいのです。
すみませんが宜しくお願い致します泣

(ガラクタ) 2019/01/05(土) 14:17


 Sheet1から成約データだけをSheet2に転記でしたか。読み間違えてました。すみません。
 それでしたら、Sheet1の表をオートフィルターで”成約”だけ表示にすれば目的のものが出来ると思います。
 追加で。A、B列には何が入りますか? またSheet1のほうに日付がH列とJ列2つありますが、どう違うのでしょうか?
(ぬっ子) 2019/01/05(土) 14:59

 ご返信ありがとうございます!!
自動で反映させるのはやはり難しいですか?
sheet1はお客様情報なので来店日と結果が出た日を入れます。
sheet2は他の項目を入れていくのですが、名前など重複する部分を
成約にしたら反映したら楽かと思ったんです。
色々関数調べてやったのですが、できなかったので・・・
ありがとうございました。
(ガラクタ) 2019/01/05(土) 15:04

 時間が出来たので関数挑戦しようかなと思ったのですが、”一致した行だけ表示”と検索したら出てきましたね。
 他サイトですし、人の数式を勝手にUPするのもアレなのでリンクは貼りません。
 トピ主さんと同じ質問結構あるようなので他にも調べたら見つかるかもしれません。
 では。
(ぬっ子) 2019/01/06(日) 22:07

Private Sub Worksheet_Change(ByVal Target As Range)
'Sheet1のシートモジュール
    Dim k As Variant, r As Range, c As Range, cc As Range, col As Long
    If Target.Count <> 1 Then Exit Sub
    If StrConv(Target.EntireColumn.Cells(1).Value, vbNarrow) Like "*HOT状況*" Then
    col = Target.Column
        For Each k In Array("名前", "担当", "住所", "電話", "電話2")
            For Each c In Rows(1).SpecialCells(2)
                If StrConv(c.Value, vbNarrow) = k Then
                  For Each cc In c.EntireColumn.SpecialCells(2)
                    If Cells(cc.Row, col).Value = "成約" Or cc.Row = 1 Then
                        If r Is Nothing Then
                            Set r = cc
                        Else
                            Set r = Union(r, cc)
                        End If
                    End If
                  Next cc
                End If
            Next c
        Next k
    Sheets("Sheet2").Cells.ClearContents
    For Each c In Sheets("Sheet1").UsedRange.Rows
        If Not Intersect(r, c) Is Nothing Then
            Intersect(r, c).Copy Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
        End If
    Next c
    End If
End Sub
(mm) 2019/01/07(月) 15:32

 実は、昨日から凄く気になっていて考えていたんですけど、、、
要はK列の 成約 だけを表示したいんでしょ?

 >自動的にsheet2のお客様名、担当者、住所、電話、電話2が反映するようにしたいです。(上に詰めて) 
 >助けていただきたいです。お願い致します。 
 そうおっしゃている( ̄▽ ̄;)

 で、図がよく分かりませんが、妙にK列だけが気になったので、、↓こんなリストがSheet1にあったとして
A   B    C       D   E    F      G     H     I     J    K 
		名前	       担当	住所	  電話	       電話2	  日にち 	GO	   日にち    HOT状況
		かめはめは	A	地球	 901234	        12349	  あの日 	いく?	   昨日	
		もじもじ 	A1	地球1	 9012341	123491	  あの日1	いく?1	   昨日1	
		あいうえお	A11	地球11	 90123411	1234911	  あの日11	いく?11   昨日11     成約
		その1	        A111	地球111	 901234111	12349111  あの日111	いく?111  昨日111	
		かめはめは8	A8	地球8	 9012348	123498	  あの日8	いく?8    昨日8	
		もじもじ8	A18	地球18	 90123418	1234918	  あの日18	いく?18   昨日18	
		あいうえお8	A118	地球118	 901234118	12349118  あの日118	いく?118  昨日118    成約
		その18	        A1118	地球1118 9012341118	123491118 あの日1118	いく?1118 昨日1118	
		かめはめは88	A88	地球88	 90123488	1234988	  あの日88	いく?88   昨日88	
		もじもじ88	A188	地球188	 901234188	12349188  あの日188	いく?188  昨日188	
		あいうえお88	A1188	地球1188 9012341188	123491188 あの日1188	いく?1188 昨日1188	

 見出しは、作るとして、
=IF(SUM((Sheet1!$K$2:$K$12="成約")*1)<ROW(A1),"",
INDEX(Sheet1!$A$2:$K$12,SMALL(IF(Sheet1!$K$2:$K$12="成約",ROW($A$1:$A$11)),ROW(A1)),COLUMN(A1)))

 と入力してCtrl+Shift+Enterで確定して右に下に必要数フィルすると↓みたいになるにはなりますけどね

 0	0	あいうえお	A11	地球11	90123411	1234911	    あの日11 	いく?11 	昨日11	成約
 0	0	あいうえお8	A118	地球118	901234118	12349118	あの日118	いく?118	昨日118	成約

 まぁ、この手のトピは沢山あると思いますよ
[[20050207232114]]
ふるぅ(笑)
(SoulMan) 2019/01/07(月) 21:12

 >sheet2に名前、担当、住所、電話、電話2のみ反映するようにしたいです。 

 あぁぁ、すみません
もう、パソコンとじちゃったけど、範囲を限定するんですね?

 その時は、最初のindexの中身をその範囲にするか

 列のindexをその列だけにすればいいですってわかりづらいね
(^^;;

 また、明日時間があったらね
それまでに解決してるでしょ?
(SoulMan) 2019/01/07(月) 23:15

 昨夜のトピはどこだぁ〜〜〜??って探すくらいだから、もうみてないかなぁ??
A1からのリストだと、、後で、出来ませんってなるだろうから、、
あえて C7からK17 にしてみました。

 表示するのは、C1からG1に見出しがある状態で、↓と入力して配列で確定してください。
=IF(OR(SUM((Sheet1!$K$7:$K$17="成約")*1)<ROW(A1),ISNA(MATCH(C$1,Sheet1!$C$6:$K$6,0))),"",
INDEX(Sheet1!$C$7:$K$17,SMALL(IF(Sheet1!$K$7:$K$17="成約",ROW($A$1:$A$11)),ROW(A1)),MATCH(C$1,Sheet1!$C$6:$K$6,0)))

   名前	          住所	  電話	        担当	電話2
 あいうえお	地球11	90123411	A11	1234911
 あいうえお8	地球118	901234118	A118	12349118
 かめはめは88	地球88	90123488	A88	1234988

 見出しは、元のリストからコピーするのがいいと思います。

 ではでは、おやすみなさいzzzzzzzzzzzzzz
(SoulMan) 2019/01/08(火) 23:27

結局、ぬっ子さんがオートフィルタ使ったらというアドバイスをされてるけどそれでは気に入らなかったんでしょうか?

関数使った方法でも頑張ればできるようには思いますけど、ちょっと複雑になりそうなので、そこで悩むくらいなら

 Sheet1でオートフィルタでケイ列が"成約"のものを抽出して
 Sheet1のシー1 〜 ジー○(データが表示されてる行)までをコピーして
 Sheet2のシー1 に貼り付け

とすれば、1〜2分で出来そうですけど・・・

(もこな2) 2019/01/08(火) 23:46


コメント返信:

[ 一覧(最新更新順) ]


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