0

早いものから遅いものまでの時間に基づいて並べ替えたいデータの列があります。

データの形式は次のように表示されます。

0d 22h 41分、

0d 2h 3min

等。

これを行うための最良の方法は何ですか?0、22、41の数字を抽出し、計算を使用して分に変換すると、並べ替えることができますか?

最善の方法をアドバイスし、可能であれば公式も教えてください。

4

3 に答える 3

3

日、時間、分が常に存在すると仮定して、A2のデータを使用して、B2でこの式を試して、時間値に変換します。

=SUM(MID(0&A2,FIND({"d","h","m"},0&A2)-2,2)/{1,24,1440})

合計時間と分を表示するカスタムフォーマットB2 [h]:mm......その後、Bを「キー」として使用して両方の列を並べ替えることができます

これにより、99日もの値に対応できます。日数が多い場合は、このバージョンを試してください。

=LEFT(A2,FIND("d",A2)-1)+SUM(MID(A2,FIND({"h","m"},A2)-2,2)/{24,1440})

于 2013-03-26T19:01:37.567 に答える
1

これは複数の方法で実行できますが、いくつかの単純な文字列操作と連結を数式で使用できます。

仮定

A1 = 0d 22h 41min
A2 = 0d 2h 3min

まず、MID()関数を使用してhhとmmを抽出する必要があります

これを行うには、FIND()関数を使用して、「d」、「h」、および「m」が出現する場所を検索し、それらの間の数値を抽出します。

最後に、「:」を使用して22:41を連結します。

A1の場合(別の列、つまりB1に入力):

=MID(A1, FIND( "d", A1) + 2, SUM( FIND( {"d","h"}, A1) * {-1,1}) - 2 )&":"&IF(LEN(MID(A1, FIND( "h", A1) + 2, SUM( FIND( {"h","m"}, A1) * {-1,1}) - 2))=2,MID(A1, FIND( "h", A1) + 2, SUM( FIND( {"h","m"}, A1) * {-1,1}) - 2 ),"0"&MID(A1, FIND( "h", A1) + 2, SUM( FIND( {"h","m"}, A1) * {-1,1}) - 2 ))

結果は次のようになります

A1 = 0d 22h 41min
A2 = 0d 2h 3min

B1 = 22:41
B2 = 2:03

「3min」が発生した場合、LEN()関数を使用して、分の値が1文字か2文字かを確認することに注意してください。2文字(41文字)の場合はそのままにしておきます。1文字(つまり3)の場合は、その前に0を付けて03を取得します。

お役に立てば幸いです。

于 2013-03-26T18:56:11.583 に答える
0

列A、セルA1、A2などにデータがあるとすると、次の数式を使用して日、時間、分を抽出し、すべてを合計できます。

まず、セルB1に日数を抽出します。

= LEFT(A1、FIND( "d"、A1)-1)

さて、C1に何時間もかかります。

= MID(A1、FIND( "d"、A1)+2、FIND( "h"、A1)-FIND( "d"、A1)-2)

そしてD1の数分:

= MID(A1、FIND( "h"、A1)+ 1、FIND( "min"、A1)-FIND( "h"、A1)-1)

日の合計をE1に入れます:

= B1 * 24 * 60 + C1 * 24 + D1

次に、列Eで並べ替えます。

もう1つの可能性は、正規表現を使用してデータを検索して置換することです。

探す:

([0-9] {1,2})d([0-9] {1,2})h([0-9] {1,2})min

交換:

= \ 1 * 24 * 60 + \ 2 * 24 + \ 3

このページでは、日付操作の例での置換動作について説明します。

于 2013-03-26T19:19:14.570 に答える