列内のフィルタリングされたセルの一部を返すスプレッドシートの数式

列内のフィルタリングされたセルの一部を返すスプレッドシートの数式

私は Libreoffice を使用しています。(Excel または GoogleSpreadsheets がソリューションを得る唯一の方法である場合は、切り替えても構いません。ただし、推奨されるプラットフォームは LibreOffice なので、このソフトウェアでソリューションを探しています)。

私が達成したいのは、次のようなスプレッドシートです。

|Date         |Available?   |Length  |
|2/8 9:00     |no           |10
|26/8 9:00    |yes          |5
|28/8 9:00    |no           |2
|29/8 8:00    |yes          |5.5
|30/8 9:00    |yes          |6
|31/8 9:00    |no           |3

ここで、「利用可能」列に「はい」があるすべての日付を抽出します。このシナリオでは異なる月は発生しないため、日付のみが関係します。スプレッドシートの他の部分に結果として表示したいのは次のようになります。

26, 29, 30

さらに少し複雑にするために、もし長さは5以上そして利用可能本当でしょうか?上記の例では、

3

それは可能ですか? VLOOKUP をいろいろ試してみましたが、どこから始めればいいのかわかりません。Excel でも同じように機能すると思います。

ユーザーが手動でフィルター処理する必要なく、これを機能させたいと考えています。アイデアは、データをコピー/貼り付けし、ファイルの別のシートの数式を使用して結果を取得し、そこに請求書を作成することです。

答え1

Excelでは... & この優れたindex() + match()に基づいて参照

この部分の解決策:

「長さが 5 より大きく、利用可能が true である日数をカウントしたい場合、どうすればよいでしょうか? > 3」

長さが 5 より大きい場合、3 ではなく 2 が返されます。長さが 5 以上の場合は、3 のみが返されます。

サンプルデータが A1:C7 にあると仮定すると、答えは次のようになります。

=COUNTIFS(B:B,"yes",C:C,">5")

2個もらえます。

この部分については:

「「利用可能」列に YES があるすべての日付を抽出したい」

「2/8 9:00」のデータが A2 にあり、「31/8 9:00」のデータが A7 にあると仮定すると、すべてのデータ ID 列 A は Excel で日付/時刻形式としてフォーマットされているので、これを D2 に入力します。

=IFERROR(IF(ROWS($A$2:$A2)>1,INDEX(OFFSET($A$2:$A$7,MATCH(D1,$A$2:$A$7,0),0),MATCH("yes",OFFSET($B$2:$B$7,MATCH(D1,$A$2:$A$7,0),0),0)),INDEX($A$2:$A$7,MATCH("yes",$B$2:$B$7,0))),"")

E2では次のようになります:

=IFERROR(DAY(D2),"")

そこには「26、29、30」が表示されます。

関連情報