web-dev-qa-db-ja.com

MS Excel:空白セル間の同様の値の頻度をカウントします

同じ値の頻度を続けて数えたいのですが。値は少なくとも2つのセルを占有し、互いに横に並んでいる必要があります。

ここに画像を投稿したいのですが、評判がよくありません。とにかく、スクリーンショットはここにあります: https://www.dropbox.com/s/1em9ltssc1ruw0u/stackOverflow_excelIssue_Countfrequencyofsimilarvaluesinbetweenblankcells.jpg?dl=

J7:BE7は、人が値を入力する場所です。これは、30分刻みで時間に対応します。

同じシートの別の部分で、この場合DD7:EY7は、数式を実行している場所です。

この式は(最初の列)DD7にあります-COUNTIF(J7:$ BE7、J7)

この式は(最後の列)にありますEY7-COUNTIF(BE7:$ BE7、BE7)

DD7の式は、J7の値が列JからBEまでの行7に現れる回数をカウントします。

シナリオ1:この式は、「オレンジ」が1回だけ表示される場合にうまく機能します。 K7:L7からの私の例では。

シナリオ2:問題は、連続していないセルに「オレンジ」が再び表示される場合です。つまり、「オレンジ」はK7:L7に表示され、次にP7:Q7に再び表示されます。

シナリオ1では、K7:L7をチェックする式の結果は2であり、これが目的の値です。

シナリオ2では、K7:L7をチェックする式の結果は4です。これは、K7:L7に表示される「オレンジ」もカウントするためです。

M7の値が違うとカウントが止まるといいなと思っていました。 K7:L7には「オレンジ」が含まれ、M7:N7には「アップル」が含まれます。または、U7:V7に「guava」が含まれ、T7が空のように、間に空のセルがある場合、カウントは停止し、X7:Y7には再び「guava」があります。

果物は、各行の2〜48列を占める場合があります。

私はこれが言葉であると知っています、しかし私はそれを説明する他の方法を見つけることができません、英語は私の最初の言語ではありません。

よろしくお願いします。

〜マーク

2
Mark Robles

私があなたの要求を正しく理解していれば、次の式が機能します。私のソリューションにはダミー列とヘルパー行が必要ですが、それらは非表示にすることができます。さらに、少しの作業でダミー列を削除でき、ヘルパー行をどこにでも配置できます。

クライアント名は行2にあると想定します。列Aをダミー列として使用するため、予定データは列Bから始まります。行3がヘルパー行になります。セルB3に、数式を入力します。

=IF(B2="", "", IF(B2<>C2, 1, C3+1))

意味:

  • B2 = ""の場合、このタイムスロットのクライアント名は空白であるため、これはアイドルタイムスロットであるため、空白で表示します。
  • それ以外の場合、B2 <> C2の場合、このタイムスロットと次のタイムスロットのクライアントは異なるため(C2は空白の場合と空白でない場合があります)、これがこの予定の最後のタイムスロットになります。 1として表します。それ以外の場合は、逆方向にカウントするため、この予定の最後から2番目のタイムスロットは2、最後から3番目のタイムスロットは3などになります。

セルB4に、次のように入力します。

=IF(A2<>B2, B3, "")
  • A2 <> B2の場合、このタイムスロットと前のタイムスロットのクライアントは異なるため(A2は空白の場合と空白でない場合があります)、これがこの予定の最初のタイムスロットです。 B3を表示します。これは、この予定にあるタイムスロットの数(30分)を示しています。それ以外の場合は、空白を表示します。

これらの数式を使用したデータは次のとおりです。


 (上の画像は完全なものにリンクしています。)

これがどのように機能するかをわかりやすく説明するために、GUAVAデータを変更しました。

 

「値は少なくとも2つのセルを占める必要があります…」とあなたは言います。私がそれを正しく理解していれば、4行目の式を次のように変更できます。

=IF(AND(A2<>B2,B3>1), B3, "")

つまり、B3値が1より大きい場合にのみ表示されます。これは、行4の最初の行4の数式と、行5の変更された数式を示しています。