Google Sheetsでは、次の空白でないセルまで、または他の列の値が変更されるまで、どちらか早い方の自動入力を繰り返すことができますか?

0
2022.01.06

膨大な数の商品リスト(8000以上)を含むCSVファイルをフォーマットしようとしています。問題は、一部のセルが意図的に空白になっていることで、商品IDが変更されたら自動入力を停止し、空白でないセルを持つ次の商品に到達したら自動入力を再開したいと考えています。いくつかの方法を試してみました。

=arrayformula(vlookup(row(w:w),{if(len(v:v),lookup(unique(v:v),v:v,row(v:v))),filter({row(w:w),w:w},w:w<>"")},2,true))

エラーが発生しても変更回数を正しくカウントする

=arrayformula(if(len(v:v),lookup(unique(v:v),v:v,row(v:v),vlookup(row(w:w),filter({row(w:w),w:w},w:w<>""),2,true)))))

エラーが発生しているが、適切な場所でFALSEを表示している =ARRAYFORMULA(IF(LEN(V:V),LOOKUP(UNIQUE(V:V),V:V,VLOOKUP(ROW(W:W),FILTER({ROW(W:W),W:W},W:W<>""),2,TRUE)))))

いくつかの値を返しますが、順番がおかしいです

ファイルのモックアップです。https://docs.google.com/spreadsheets/d/1DAIDk5EphV-RPGzo4Um4k0RZn0A2uhsTiPUApDzafRg/edit?usp=sharing(この場合、A列の値が変化したときにチェックして、B列の空白でないセルの値をコピーするのを止める)

何かご提案がありましたら、よろしくお願いいたします。

回答
1
2022.01.07

この式を空の列の2行に入れます。

=arrayformula( 
  iferror( 
    vlookup( 
      A2:A, 
      unique(A2:B), 
      column(A2:B) - column(A2) + 1, 
      false 
    ) 
  ) 
)

この式は、新しい値が初めて現れるA列の各範囲で、B列の最初の値を取得します。


出力

snapshot