私は 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」が表示されます。