私はMicrosoftExcel2010を使用しています。列E1:E19のように、特定の間隔ではないさまざまな日付があります。開始月の日付のみを検索して、図に示すようにG列に貼り付けるのに役立ちます。
3 に答える
まず、言うことです-K_BとIbrahimOdehの両方が有効で良い試みをしています。これらのオプションは追加の行または手動ツールを使用するため、別のオプションを追加したいだけです。
スクリーンショットに示されているように、これを解決するために私が思いついた式は次のとおりです。1つの列だけで、開始日が記載された行だけです。
G1=SUBTOTAL(5,E$1:E$19)
G2=SUBTOTAL(5,OFFSET(E$1:E$19,MATCH(EOMONTH(G1,0),E$1:E$19,1),0,ROWS(E$1:E$19)-MATCH(EOMONTH(G1,0),E$1:E$19,1)))
次のように、これを列全体に使用できます。
G1=SUBTOTAL(5,E:E)
G2=SUBTOTAL(5,OFFSET(E:E,MATCH(EOMONTH(G1,0),E:E,1),0,ROWS(E:E)-MATCH(EOMONTH(G1,0),E:E,1)))
そして今、いくつかの説明:
まず、 G1の開始点が必要です。したがって、 (5)SUBTOTAL
を使用して、列Eの最も早い日付を取得するために使用します。MIN
ここから、計算に使用する範囲をオフセットし、 (5)SUBTOTAL
を使用しMIN
て、毎月の初めを取得します。
トリックはOFFSET
です。最初のパラメーターは基本範囲外であり、これをオフセットします。次に、オフセットする行数を決定する必要があります。エラーが発生しないように、ROWS(basicRange)
-rowOffsetを使用して常に範囲外にとどまります。
MATCH
を使用してG1から月の最後にリストされた日付の行を検索することにより、必要なオフセットを決定するために使用され ますEOMONTH
。
これで問題が解決することを願っています。
編集:
私はこれを翻訳しなければならないので、ここにオリジナルがあります:
=TEILERGEBNIS(5;E:E)
=TEILERGEBNIS(5;BEREICH.VERSCHIEBEN(E:E;VERGLEICH(MONATSENDE(G1;0);E:E;1);0;ZEILEN(E:E)-VERGLEICH(MONATSENDE(G1;0);E:E;1)))
日付列が例のように並べ替えられている限り、次のようにします。
行1の上に行を挿入します(数式を使用するため)。テーブルにあるすべての行の列Aに数式を入力します。式は次のとおりです。
=If(NOT(YEAR($E2)&MONTH($E2)=YEAR($E1)&MONTH($E1), MAX($F$1:$F1)+1, "")
これにより、1から、その月のテーブルの最初の日付の隣にのみ関係する月の数に増加する数値が追加されます。
次に、G列のテーブルに次のように入力します。
=VLOOKUP(ROW(), A:E, 5)
この数式を好きなだけ下にドラッグできます。この数式は、Gの行番号に一致するA:Eの最初のレコードを検索し(ROW()
G1では1を返します)、次にVLOOKUP()
A:Eの5番目の列(日付のある列E)の値を返します。
列Aの数式は、数式が機能する日付の左側にある必要がありますVLOOKUP()
。
VLOOKUP()
または、右側の列に配置して、 G列の代わりに別の数式を使用することもできます。
=SUMIF(F:F,ROW(),E:E)
これは、Fの値がGのセルの行番号と一致する行のEのすべての値を合計します。
このタスクを実行するには、analysis-toolpakアドオンを使用する必要があると思います。
ロード方法を知る必要がある場合は、次のURLを確認してください。
http://office.microsoft.com/en-us/excel-help/load-the-analysis-toolpak-HP001127724.aspx
よろしく