エクセルでこんな事できますか??

このQ&Aのポイント
  • エクセルでsheet1の指定されたセル(B12~B44)に文字が入力された場合、空白セルを無視してsheet2の指定されたセル(A5~A15)に入力された文字が順番に反映される方法を教えてください。
  • 具体的には、sheet1の B12→あ、B22→う、B30→お、と入力されたら、sheet2の A5~A7 に あ、う、お と空白セルを除いて入力されるようにしたいです。
  • 上記の要件を満たすためには、どのような設定を行えばよいでしょうか?
回答を見る
  • ベストアンサー

エクセルでこんな事できますか??

エクセルでこんな事できますか?? sheet1(B12~B44)に文字が入力さた時に(空白セルは、無視して)自動的にsheet2の指定部分(A5~A15)に空白セルは無視して順番に入力された所のみ反映されるようにするには、どうしたらできますか? >例)sheet1(B12=あ・B13=い・B14=う)をsheet2(A5=あ・A6=い・・・)では、なく。 Sheet1の指定されたセル(B12~B44)の中で文字が入力された場合のみsheet2の指定されているセル(A5~A15)へ反映されるという意味です。例えばsheet1の B12→あ、B22→う、B30→お、と入力されたら、sheet2の A5~A7 に あ、う、お と空白セルは除かれ入力される設定にしたいのです。 どうですか?可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

関数: Sheet2, A5 から下へ =IF(ROW(A1)>COUNTA(Sheet1!$B$1:$B$50),"",INDEX(Sheet1!$B$1:$B$50,SMALL(INDEX((Sheet1!$B$1:$B$50<>"")*ROW($A$1:$A$50),,),ROW(A1)+ROWS((Sheet1!$B$1:$B$50))-COUNTA(Sheet1!$B$1:$B$50)),1)) VBA: VBAは、人が書いたものは評価できても、今回のような関数と同じように再現するのは少し難しく感じます。ミスしやすい部分がいくつもあります。 *With Me.Next というのは、Sheet2ということではなく、右側にシートに写すようになっています。 明示的に入れるなら、With Worksheets("Sheet2") とします。 シートタブを右クリック-->コードの表示 '------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range)   Dim rng As Range   Dim ar As Variant   Dim c As Variant   Dim buf As Variant   If Intersect(Target, Range("B12:B44")) Is Nothing Then Exit Sub   Set rng = Range("B12", Cells(Rows.Count, 2).End(xlUp))   For Each c In rng     If c.Value <> "" Then       buf = buf & ", " & c.Value     End If   Next   With Me.Next      .Range("A5:A15").ClearContents '不要分を消す      ar = Split(Mid(buf, 2), ",")      If UBound(ar) > 10 Then       .Range("A5").Resize(11).Value = Application.Transpose(ar)      Else       .Range("A5").Resize(UBound(ar) + 1).Value = Application.Transpose(ar)      End If   End With   Set rng = Nothing End Sub なお、「セル(A5~A15)」のA15という上限は、関数には設定されていませんので、数式は、Sheet2のA15まで入れてください。VBAは、上限が設定されています。

think_pink
質問者

お礼

親切なご説明ありがとうございます。 感謝いたします。助かりました。

その他の回答 (2)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

直前に同じ質問をされて回答が出ているようですが 提示された関数式でうまくいきませんでしたか?

think_pink
質問者

補足

直前に似たような質問を致しましたが、若干セルなどが異なっておりうまくいきませんでしたので 再度質問させていただいた次第でございます。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

少なくとも関数では無理です。 プログラムを読むことはできますか? できるならマクロ(VBA)で対応が可能です。

think_pink
質問者

お礼

アドバイスありがとうございました。

関連するQ&A

  • エクセルを教えてください!!!

    エクセルを教えてください!!! sheet1(A1~A40)に文字が入力されたら(空白セルは、無視して)自動的にsheet2の指定部分(A1~A10)に空白セルは無視して順番に入力された所のみ反映されるようにするには、どうしたらいいのでしょうか?

  • エクセルを教えてください!!!

    エクセルを教えてください!!! sheet1(A5~A40)に文字が入力されたら(空白セルは、無視して)自動的にsheet2の指定部分(A1~A10)に空白セルは無視して順番に入力された所のみ反映されるようにするには、どうしたらいいのでしょうか? >例)sheet1(A5=あ・A2=い・A3=う)をsheet2(A1=あ・・・)では、なく。 Sheet1の指定されたセル(A5~A40)の中で文字が入力された場合のみsheet2の指定されているセル(A1~A10)へ反映されるという意味です。例えばsheet1の A5→あ、A26→う、A30→お、と入力されたら、sheet2の A1~A3 に あ、う、お と空白セルは除かれ入力される設定にしたいのです。

  • エクセル:指定した別シートのセルに入力する方法

    エクセル2000 を使用しています。 sheet1 のセルに数字を入力して ・sheet2、sheet3、・・・ の指定したシートの指定したセルに文字を反映させる方法はありますでしょうか? 例)sheet1 A3 に"100"と入力すると、('sheet2'の'B2'を指定)   sheet2のB2に"100"と反映   同様に sheet1 A3 に"300"と入力すると、('sheet3'の'C5'を指定)   sheet3のC5に"300"と反映 ※作業しやすい為に入力セルを一つのみにするというのは難しいでしょうか? 条件 ・一度指定して入力したセルは何度も入力しなおします。 ・入力は数値のみです。 ・入力の対象シートは30シート程あります。 対象となるセル全てに関数をいれてみて・・とやってみたのですが、たどり着きませんでした。 分かる方どなたか教えていただけますでしょうか? 質問文が下手ですいません、回答していただけたら補足で再度質問しなおしたいと思います。。 VB、関数どちらでも分かる方お願いします。

  • エクセル Excel 関数or条件付き書式

    あけましておめでとうございます(*^_^*) 新年早々教えてください! セルに指定された値(文字列)を入力すれば 自動で別のシートの別のセルの書式が変更される (あるいは関数により自動で値が入力される) 方法を探しています! エクセルマスターの方お願いします! 【具体的に…】 シート1の セルA1に  指定された文字列(例-ねずみ)を 入力すれば    ↓ シート2の セルC10の 書式が 自動変更される(例-フォントが赤になる) もしくは 【具体的に…(2)】 シート1の セルA1に  指定された文字列(例-ねずみ)を 入力すれば    ↓ シート2の セルC10に 指定された値(例-厄年)が 自動入力される そんな方法を教えてください! どちらもできれば最高です!!

  • エクセルの関数について

    いつもお世話になります。 エクセルの関数について教えてください。 【やりたいこと】 ・1つのエクセル内に複数のシートを用います。 ・「シート1」に「指定日」を入力します。 ・「シート2」以降、各シートで用意されている3つのセルに、 「その月の期首」「その月の期末」「期首から期末までの日数」を反映させたいのです。 「指定日」の翌日から起算して56日目に達するまでです。 指定日のみ西暦で入力、反映は和暦です。 【例(1)】 ・「シート1」に指定日として「20160629」と入力。 その入力に対して期待する反映は、 ・「シート2」に用意されている3つのセルに「280630」「280630」「1」と出ること。 ・「シート3」に用意されている3つのセルに「280701」「280731」「31」と出ること。 ・「シート4」に用意されている3つのセルに「280801」「280824」「24」と出ること。 【例(2)】うるう年を考慮。 ・「シート1」に指定日として「20160131」と入力。 その入力に対して期待する反映は、 ・「シート2」に用意されている3つのセルに「280201」「280229」「29」と出ること。 ・「シート3」に用意されている3つのセルに「280301」「280327」「27」と出ること。 よろしくお願いします。

  • エクセルの途中から関数を反映させるには・・・。

    いつもお世話になります。 エクセルの途中までは、文字を残しておき、その後、シートの名前を自動入力したいのですが? こんなのって可能なのでしょうか? 例はこんな感じです。 (1)/(2)/※と同セルに文字を入力し、シート名に(3)を 入力すると※の部分に(3)が反映される。 ただし、同セル内で反映させたいです。 よろしくご回答お願いします。

  • エクセルで他のシートのセル(文字列)を自動的に参照したい

    シートAセルに、シートBのセルを参照する方法を教えて下さい。 シートBのセルに入力した文字列がシートAのセルに自動的に 反映されるようなことを試していますがうまくいきません。。。

  • Excelで違うシートから日付を引っ張ってきたい

    すいませんが教えてください。 EXCELでAのシートとBのシートがあって、 Aのシートに日付を入力していきます。 その日付をBシートに引っ張ってきたいのですが、 ='Aシート'!A2 とBシートのA2に入れると Aシートの空白セルでは 「1月0日」となってしまいます。 空白セルは同じように空白セルにしたいのですが、 やり方がわかりません。 よろしくお願いします。

  • Excelシート

    ExcelシートBに打ち込んだ数字をAに反映させたい。シートAのセルに=をBのセルを範囲を指定してエンターしましたが♯VALUE!となりました…=シートB!BS55:BZ55どうしたらシートAに反映するのでしょうか教えて下さい。

  • 関数を使って参照した際、空白を反映しない

    Excel2010で関数で文字の結合と改行を10セル分ぐらいしたときに、セルが空白の場合、空白を反映しないようにすることはできないのでしょうか? たとえば、     A    B    1 あ   か   2 い   き   3 う    く   として、C1に   あ   い   う   か   き   く と表示するための関数が入っているとして、もし、”き”や”く”が空白だった場合、その空白を反映しないようにしたいと思っています。 C1に表示されたものを、さらに別のシートで表示すようになっているのですが、その別のシートで表示された際、最後のセルが空白だと、表示セルの上のほうに文字が行ってしまい、上下中央に表示されなくなってしまうので、空白を反映しない、無視するような関数があればと思い質問させていただきました。 Excel自体そんなに詳しくないのですが、文字の結合はセルを”&”でつなげ、改行には”CHAR(10)”を入れてやっていました。これだと別のシートでは下のほうに空白ができてしまい、結合した文字が上に行ってしまいます。 自分でもいろいろ調べて、試してみましたができませんでした。 空白のセルを削除したりして詰めるのではなく、表示されないようにできないものかと考えています。 参照しているA1からB3までのセルには、文字を入力したり消したりと更新することがあるので常にすべてのセルを参照しておき、表示されるときに空白を除く形にしたいと思っています。 別シートのほうでは”VLOOKUP”を使って表示されるようにしています。 わかりにくい説明かもしれませんが、どうか回答をよろしくお願いします。

専門家に質問してみよう