• 締切済み

仕事の効率化

はじめまして。旅行の仕事で商品企画を行っているものです。 商品の値付けを簡単なエクセルで原価管理を行っているのですが 下記のようなマクロで変換できるような方法があれば教えてほしいです。 例えば下記の出発日のような値段設定をしたとします。 2014/04/01 ¥12000 2014/04/02 ¥15000 2014/04/03 ¥16000 2014/04/04 ¥12000 2014/04/05 ¥12000 2014/04/06 ¥16000 上記をどうにかして ¥12000 2014/04/01,2014/04/04-05 ¥15000 2014/04/02 ¥16000 2014/04/03,2014/04/06 という風に、エクセルの1つのセルの中に同じ値段設定の日付をまとめたいのが今回の趣旨です アドバイスいただけると助かります

みんなの回答

  • googoo900
  • ベストアンサー率44% (82/184)
回答No.3

日付を1つのセルにいれる方法です。 1.添付図のようにA~E列に日付のデータをいれます。(ここでは金額のデータは考慮していません) 2.書式が日付のままでは困難なので、文字列に変換します。F~J列   式  =IF(C9<>"",TEXT(C9,"yyyy/mm/dd"),"")   F8セルに貼りつける 3.文字列に変換した日付を1つのセルにまとめます。これが欲しい答えです。 K列   式 =LEFT(H9&","&I9&","&J9&","&K9&","&L9,COUNTBLANK(H9:L9)*-11+54)   K8セルに貼りつける 出発日がMAX5日までに対応させています。それ以上なら修正する必要があります。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

関数の組み合わせでも処理できます。 但し、出発日を1つのセルに列記するのではなく料金のセルの右側に列記するようにします。 貼付画像で説明すると以下のようになります。 D列には料金区分を抽出します。 D2=IFERROR(SUMPRODUCT(SMALL(B$2:B$10,COUNTIF(B$2:B$7,"<="&MAX(D$1:D1))+1)),"") E列からH列までは出発日をA列に記載されたの順に抽出しています。 E2=IF(COUNT(D2),IFERROR(INDEX($A$1:$A$10,SUMPRODUCT(LARGE(($B$2:$B$10=$D2)*ROW($B$2:$B$10),COUNTIF($B$2:$B$10,$D2)-COLUMNS($E2:E2)+1)),1),""),"") E2セルを右にコピーすれば出発日が順に抽出できます。 D2からH2までを選択して下へ必要数コピーします。 日付のセルは表示形式を日付にしてください。 上記の数式はExcel 2007以降のバージョンに対応しています。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! Sheet1のデータをSheet2に表示するようにしてみました。 ↓の画像で左側がSheet1、右側がSheet2とします。 標準モジュールです。 Sub Sample1() Dim i As Long, c As Range, wS As Worksheet Set wS = Worksheets("Sheet2") wS.Cells.ClearContents With Worksheets("Sheet1") .Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True wS.Range("A:A").Sort key1:=wS.Range("A1"), order1:=xlAscending, Header:=xlYes For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Set c = wS.Range("A:A").Find(what:=.Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole) .Cells(i, "A").Copy wS.Cells(c.Row, Columns.Count).End(xlToLeft).Offset(, 1) Next i End With End Sub こんな感じではどうでしょうか?m(_ _)m

関連するQ&A

  • 【Excelマクロ】 文字列から日付型へ変換したい

    AccessデータをExcelへ貼り付ける際、Access側の書式設定がyyyy/mm/ddでしたらExcelでも日付型として認識してくれますが、yyyy/mm/dd(aaa)と曜日を表記したデータはセルの書式を日付型にしても文字列として貼り付けられてしまいます。 ExcelのDATEVALUE関数を使用すれば日付型へ変換できるのは存じていますが、列/行を挿入することができません。 日付型へ変換できるマクロはありませんか? 変換したいセル番地は都度変動しますので、変換したいセル(複数列/行)を選択した状態からマクロを実行したいです。

  • エクセル内の数字(金額)を英字に一括変換は可能?

    エクセルに入力済みのデータを値札として印刷したいのですが、 原価は数字のままではなく、こちらで任意に設定した英字に変換させたいです。 例えば・・・ 1 →ITI 2 →NI 3 →SAN 4 →SI 5... 0 →REI というように設定して 原価30000円の場合は SANREIREIREIREI と表示させたいです。 (もし可能でしたら・・・1000円未満は切捨てて SANREI とできるでしょうか?) 変換させたい原価は既にエクセルに入力済みです。(6千件位) 数字のままの原価を入力しているセルはそのままで、 隣のセルにでも英字変換させたいです。

  • エクセル97で作成したファイルをcsvファイルに変換すると?

    エクセル97で作成したファイルをcsvファイルに変換すると住所の地番を入力したセルが、日付に変換されてしまいます。どのように設定をすればいいのでしょうか。 一つのセルに 1-3-5 と入力をして、csvファイルに変換すると 2001/3/5 となってしまいます。もちろんエクセルでのセルの書式設定は、文字列に設定しております。 1-3-5と変換されるためには、あとどのように設定すればいいのでしょうか?よろしくお願いいたします。

  • Excelでの数式を使った日付変換方法

    Excelでテキストファイルから取り込んだ日付を変換したいのですがうまくいきません。 詳細は下記のとおりです。どうかよろしくお願いします。 テキストファイルでは一区切りに西暦と月が入っています。(日はなし) (例:200604) これをExcelで取り込んで最終的には和暦と月に分けて別セルにしたい。 (例:平成18 と 4) (※月は04の場合4となるように) 年月しかないため日付として認識されず、また認識してもシリアル値からは違う日になってしまうため、うまく変換できません。 取り込む方法、Excelでの使用する数式など細かく教えていただけたらと思います。マクロは使わない方法でお願い致します。

  • excel vba 一番効率の良い方法を教えてください。

    こんにちは。よろしければ教えてください。 VBAで、テキストデータから読み込んだ日付「20080825」を、 エクセルシートに貼り付ける際(又は貼り付けた後)に、 「2008/08/25」と表示すると同時に「日付」として認識できる形 にしたいのです。(つまりシリアル値に変換したいということに なるのかな?) ○読み込むデータは8ケタの数値です。 ○当然ながら、セル1つにつき1つの日付です。 ○データが多いので、一つ一つ変換すると時間がかかります。   (しかしこの方法しか思いつきません;) ○VBAでもワークシート関数でも…方法は問いません。 一番適している方法を教えてください。 よろしくお願い致します。

  • Excel VBAについて

    Excel VBAについて ExcelのセルA1に日付データ(yyyy/mm/dd hh:mm)が入っています。 このエクセルファイルを開いている間、セルA1の日付(時分)が更新されたらマクロを実行するようにしたいのですが、どのようにしたらよいのでしょうか。 セルA1の日付データが更新されるタイミングは決まっていません。 セルA1の日付データが更新されたらマクロ実行というのが難しいのであれば、 10秒おきにマクロを実行というようなことができないでしょうか。 ご教授願います。

  • EXCELマクロで日付をYYYYMMDDに変換

    EXCELマクロで、ドット記号有りの日付を、ドットなしの形式(YYYYMMDD)に変換したいです。 ドット有りとは、たとえば下記のようなものです  2016.9.01  2016.09.1 2016.9.1 2016.09.01 これを、20160901のようにするには、Replaceでうまく置換できれば良いのですが、ゼロが消えてしまったりしてうまくいきません。 マクロでどのように記述すればよいでしょうか? エクセルのバージョンは2010です。

  • CSV出力からエクセルでの日付表示

    CSV出力からエクセルに表示した日付表示 がセル内で20150315、20150314のように 表示されています。 これを2015年3月15日、2015年 3月14日のように変換したいのですが、 セルの書式設定/日付ではうまくいきません。 どのようにすればいいでしょうか。 よろしくお願いします。

  • Excel 2000 のマクロで、日付や文字列を変換する方法について

    Excel 2000 のマクロを使用して、以下のようなことをしようとしているの ですが、方法がよく分かりません。 1.日付タイプのセルに「2008/8/2」と入力されている日付を、数値タイプの   「20020802」に変換したい。 2.文字列タイプのセルに「横浜市西区1-2-3ABCホームズ」と入力されている   文字列を「横浜市西区1-2-3ABCホームズ」に変換したい。   (半角を全角に変換したい) よろしくお願いします。

  • エクセルのセルの書式設定(日付)について

    エクセルで請求書を作っています。 セルの書式設定で、日付を○/○と表示させるように設定しました。 でも、例えば「0108」と入力しても「4/17」と表示されます。 どうも1900年で表示されているようです。どこをどう設定すれば、打ち込んだ日付通りに変換されるでしょうか。 宜しくお願い致します。

専門家に質問してみよう