• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELについて)

EXCELの関数で表を変換する方法

このQ&Aのポイント
  • EXCELの関数を使用して表のデータを変換する方法について解説します。
  • 例1の表の各時刻にAやBを自動的に入れると、例2のようにデータを変換することができます。
  • また、同様の方法をGoogleスプレッドシートでも実現することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.2

これはエクセルがどうかとい言う前にデータの整理が必要です。 まず、例2の答えは、A4の終了時刻は次のBの開始時刻という意味なのか、それとも10:30の切り上げという意味なのでしょうか。 次にAが2回出てきますが、例2ではどちらのAをとれば良いのは識別できません。同じキーが2つ以上ある場合はそれを判別するデータにしておかなければいずれにしても正解は得られません。 次にデータの構造があります。 例1は次のようにしたほうが、後の式が作りやすいのではないでしょうか。 区分 開始 終了 A  9:00  9:30 B  10:00  10:30 A  11:00 11:30 又例2も下記のようにしたほうがスマートですね。 区分 開始 ~  終了 A  9:00 ~ 10:00 B  10:00 ~ 11:00 A  11:00 ~ 12:00 この形式にすれば例1から例2を出すのは比較的簡単ですね。 これらのデータの定義や構造をもう一度整理されてから考えたらいかがでしょうか。 少なくとも2つのAの判別はこれでは不可能です。

t1309k
質問者

お礼

参考になりました!ありがとうございました!!

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>少なくとも2つのAの判別はこれでは不可能です。  「2つのA」を判別する必要は無いと思います。  判別が必要なのは、B列の値の変わり目です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 今仮に、例1で9:00と入力されているセルがA1セル、 例2で9:00と表示されているセルがD1セル、 であるものとします。  又、I列を作業列として使用するものとします。  まず、I1セルに1と入力して下さい。  次に、I2セルに次の数式を入力して下さい。 =IF($B1=$B2,"",COUNT(I$1:I1)+1)  次に、I2セルをコピーして、I3以下に貼り付けて下さい。  次に、D1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT($I:$I)-1,"",INDEX($A:$A,MATCH(ROWS($1:1),$I:$I)))  次に、E1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT($I:$I)-1,"","~")  次に、F1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT($I:$I)-1,"",INDEX($A:$A,MATCH(ROWS($1:1)+1,$I:$I)))  次に、G1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT($I:$I)-1,"",INDEX($B:$B,MATCH(ROWS($1:1),$I:$I)))  次に、D1~G1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。  以上です。

関連するQ&A