-1

以下のデータはワークシート 1 に表示されます。ワークシート 2 のデータを 2 つの列に配置する必要があります。最初の列は「月-年」形式で、2 番目の列は対応する月/年の下のデータを出力します。

例えば:

Year    Jan Feb Mar Apr May Jun Jul Aug Sep

1913    9.8 9.8 9.8 9.8 9.7 9.8 9.9 9.9 10.0    

1914   10.0 9.9 9.9 9.8 9.9 9.9 10  10  10

出力は次の形式で読み取る必要があります。

MM-YYYY / Data  
Jan-1913 /    9.8  
Feb-1913 / 9.8  

VBAではなく、Excelの式を使用してこれを行う必要があります。

4

2 に答える 2

0

連結を使用しますか?

=CONCATENATE(B$1,"-",$A2)

数式を上下にドラッグします。

これは、月が最初の行にあり、年が最初の列にあり、B1 が 1 月、A2 が 1913 年であることを前提としています。

または使用:

=B$1&"-"&$A2

ドル記号は行または列をロックしているため、毎回数式を再調整する必要はありません。

編集:1列だけを埋めたいようです...

Jan-1913セル B2 に入力してから、 と入力しFeb-1913ます。両方のセルを選択して下にドラッグします。

ここに画像の説明を入力

日付が として表示されない場合はmm-yyyy、カスタム書式を適用してください。

そして、列Bの内容に値を入力し、コピーして貼り付けます。編集:問題の追加部分への補遺:

上記の方法で最初の列が既にあるため、2 番目の列では次の式を使用します。

=INDEX(Sheet1!$B$2:$M$102,MATCH(RIGHT(TEXT(Sheet2!A2,"mmm-yyyy"),4)*1,Sheet1!$A$2:$A$102,0),MATCH(LEFT(TEXT(Sheet2!A2,"mmm-yyyy"),3),Sheet1!$B$1:$M$1,0))

範囲やワークシート名を適宜置き換えてください。これが を返す場合は、これ#N/Aを試してください:

=INDEX(Sheet1!$B$2:$M$102,MATCH(RIGHT(TEXT(Sheet2!A2,"mmm-yyyy"),4),Sheet1!$A$2:$A$102,0),MATCH(LEFT(TEXT(Sheet2!A2,"mmm-yyyy"),3),Sheet1!$B$1:$M$1,0))

数式が使用MATCH()されていることに注意してください。これは、セルの書式が重要であり、これが原因で機能しない可能性があることを意味します。たとえば、Sheet1 の年がテキスト形式の場合、2 番目の数式が機能します。最初ではなく、その逆も同様です。

于 2013-09-20T19:41:35.013 に答える