[[20250507104530]] 『範囲内に入力が「有る」セルだけ、別の指定セルに』(gag) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『範囲内に入力が「有る」セルだけ、別の指定セルに「順番に」転記する方法』(gag)

 よろしくお願い致します。
 下記に示すような表が有って
B列には大項目が6行ずつ入力されています。
N列は空白行も存在し、2行セットで検査が示されています。

 欲しいのは、N列で検査が入力されていれば、同じN列の
70行以降で15行おきに表の様に「自動で」転記したいのです。

 良い方法を教えてください。

※ 最初のデータに当たるN列はB列の種類の示す業の中でランダム
  にデータが並びます。

 よろしくお願い致します。

           B               N

 ・                   ・
 ・                   ・
11    AA     |  ・・ |  あああ   |
12    AA     |  ・・ |  検査?@   |
13    AA     |  ・・ |        |
14    AA     |  ・・ |        |
15    AA     |  ・・ |  ううう   |
16    AA     |  ・・ |  検査?D   |
 ・                   ・
 ・                   ・
29          |  ・・ |        |
30    CC     |  ・・ |  いいい   |
31    CC     |  ・・ |  検査?B   |
32         |  ・・ |        |
 ⇩                   ⇩
 ⇩                   ⇩
 ⇩                   ⇩
 ⇩                   ⇩
70         |  ・・ |   AA     |
71           |  ・・ |  あああ   |
62           |  ・・ |  検査?@   |
 ・                   ・
 ・                   ・
86          |  ・・ |   AA     |
87           |  ・・ |  ううう   |
88           |  ・・ |  検査?D   |
 ・                   ・
 ・                   ・
90          |  ・・ |   CC     |
91           |  ・・ |  いいい   |
92           |  ・・ |  検査?B   |

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 もっとよい方法がありそうですが、ひとまず
 =TOCOL(DROP(HSTACK(WRAPROWS(FILTER(B1:B21,N1:N21<>""),2),WRAPROWS( FILTER(N1:N21,N1:N21<>""),2)),,1))
(´・ω・`) 2025/05/07(水) 13:05:59

 15行おきに、というところを追加するとすれば以下のようなことですか?(12じゃなく13かも)
 ´・ω・`さんの式を全面的に拝借しましたw。

 =LET(
     rngB,B1:B69,
     rngN,N1:N69,
     a,WRAPROWS(FILTER(rngB,rngN<>""),2),
     b,WRAPROWS(FILTER(rngN,rngN<>""),2),
     c,MAKEARRAY(ROWS(a),12,LAMBDA(r,c,"")),
     TOCOL(DROP(HSTACK(a,b,c),,1))
 )    
(xyz) 2025/05/07(水) 14:40:10

 Const COL1 As String = "B"
 Const COL2 As String = "N"
 Dim dRng As Range
 Dim iRow As Long
 Set dRng = Cells(70, COL2)
 For iRow = 2 To Cells(Rows.Count, COL2).End(xlUp).Row
  If .Value Like "検査*" Then
   dRng.Value = Cells(iRow, COL1).Value
   dRng.Offset(1, 0).Value = Cells(iRow, COL2).Offset(-1, 0).Value
   dRng.Offset(2, 0).Value = Cells(iRow, COL2).Value
  End If
  Set dRng = dRng.Offset(15)
 Next

例示の出力先が70,86,90となっていてこのコードでは期待通りの出力になりませんがいちおう
(さわ子) 2025/05/07(水) 15:28:30


 皆様、ご回答ありがとうございます。
当方の説明が足らず(うまく出来ず)すみません。
 会社で使うモノなのですがVBAは「使えません」
(自身も理解できていません)
説明しておらずスミマセンでした。
「自動で」を強調してしまったために勘違いさせて
しまったと反省しております。
 本当に申し訳有りませんでした。
※補足説明になります。
1.「関数)仕様でお願いします。
2.N列の70〜72行のセル、同列の85〜87行のセル、
 同列の100〜102行(間違ってました)のセルの様に
 15行ごとのセルに入れる「関数」を教えて欲しいです。

 お手数をお掛けしますが、もう一度御教授下さい。
よろしくお願いいたします。
(gag) 2025/05/07(水) 17:38:01


(´・ω・`)さんもxyzさんも関数で回答されていますが、、、
(重箱) 2025/05/07(水) 17:53:37

 了解です。明日の朝一に確認してみます。
(gag) 2025/05/07(水) 21:44:01

 70行
 =LAMBDA(r,
    LET(
      c,N1:N69<>"",
      n,FILTER(N1:N69,c),
      b,FILTER(B1:B69,c),
      l,DROP(HSTACK(WRAPROWS(b,2),WRAPROWS(n,2)),,1),
      IFERROR(TOCOL(CHOOSEROWS(l,r)),"")
    )
 )(1)
 以下、15行毎に 最後の(1)を(2),(3) ... 
(´・ω・`) 2025/05/08(木) 09:14:51

それはそうと、[[20250430185054]]はどうなった?
後始末はしなさいよ。

(もう昼前) 2025/05/08(木) 11:12:25


朝一って
(朝一) 2025/05/09(金) 20:48:07

コメント返信:

[ 一覧(最新更新順) ]


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